diff --git a/CHANGELOG.md b/CHANGELOG.md index 89e4d540f6..c41029bb95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.5.24 (15-02-2022) + +#### Improvements +- Improve show updates. Update the complete show when marked updated by indexer, without an indication to update a season. ([10330](https://github.com/pymedusa/Medusa/pull/10330)) + +#### Fixes +- Fix searching for season packs. ([10345](https://github.com/pymedusa/Medusa/pull/10345)) + ## 0.5.23 (11-02-2022) #### New Features diff --git a/medusa/common.py b/medusa/common.py index 983c497096..77461729f8 100644 --- a/medusa/common.py +++ b/medusa/common.py @@ -39,7 +39,7 @@ log.logger.addHandler(logging.NullHandler()) INSTANCE_ID = text_type(uuid.uuid1()) -VERSION = '0.5.23' +VERSION = '0.5.24' USER_AGENT = 'Medusa/{version} ({system}; {release}; {instance})'.format( version=VERSION, system=platform.system(), release=platform.release(), diff --git a/medusa/name_parser/parser.py b/medusa/name_parser/parser.py index ff888c91ab..b296c0cdfe 100644 --- a/medusa/name_parser/parser.py +++ b/medusa/name_parser/parser.py @@ -236,7 +236,7 @@ def _parse_anime(result): # It's possible that we map a parsed result to an anime series, # but the result is not detected/parsed as an anime. In that case, we're using the result.episode_numbers. - else: + elif result.episode_numbers: for episode_number in result.episode_numbers: season = result.season_number episode = episode_number @@ -269,6 +269,9 @@ def _parse_anime(result): 'Anime series {name} using using indexer numbering #{absolute}: {ep}', {'name': result.series.name, 'absolute': idx_abs_ep, 'ep': episode_num(season, episode)} ) + else: + # Treat it as a season pack. + new_season_numbers.append(season_exception or result.season_number) return new_episode_numbers, new_season_numbers, new_absolute_numbers @@ -286,23 +289,27 @@ def _parse_series(result): {'name': result.series.name} ) - for episode_number in result.episode_numbers: - season = ex_season - episode = episode_number + if result.episode_numbers: + for episode_number in result.episode_numbers: + season = ex_season + episode = episode_number - (idx_season, idx_episode) = scene_numbering.get_indexer_numbering( - result.series, - episode_number, - ex_season - ) + (idx_season, idx_episode) = scene_numbering.get_indexer_numbering( + result.series, + episode_number, + ex_season + ) - if idx_season is not None: - season = idx_season - if idx_episode is not None: - episode = idx_episode + if idx_season is not None: + season = idx_season + if idx_episode is not None: + episode = idx_episode - new_season_numbers.append(season) - new_episode_numbers.append(episode) + new_season_numbers.append(season) + new_episode_numbers.append(episode) + else: + # No episode numbers. Treat it like a season pack. + new_season_numbers.append(ex_season) return new_episode_numbers, new_season_numbers, new_absolute_numbers @@ -366,13 +373,13 @@ def _parse_string(self, name): else: new_episode_numbers, new_season_numbers, new_absolute_numbers = self._parse_series(result) - if not new_season_numbers and not new_episode_numbers: - raise InvalidNameException('The result that was found ({result_name}) is not yet supported by Medusa ' - 'and will be skipped. Sorry.'.format(result_name=result.original_name)) - # Remove None from the list of seasons, as we can't sort on that new_season_numbers = sorted({season for season in new_season_numbers if season is not None}) + if not new_season_numbers: + raise InvalidNameException('The result that was found ({result_name}) is not yet supported by Medusa ' + 'and will be skipped. Sorry.'.format(result_name=result.original_name)) + # need to do a quick sanity check here ex. It's possible that we now have episodes # from more than one season (by tvdb numbering), and this is just too much # for the application, so we'd need to flag it. diff --git a/medusa/schedulers/show_updater.py b/medusa/schedulers/show_updater.py index 3088af4fb8..abb2d44747 100644 --- a/medusa/schedulers/show_updater.py +++ b/medusa/schedulers/show_updater.py @@ -38,7 +38,7 @@ def run(self, force=False): # Refresh the exceptions_cache from db. refresh_exceptions_cache() - logger.info(u'Started periodic show updates') + logger.info('Started periodic show updates') # Cache for the indexers list of updated show indexer_updated_shows = {} @@ -48,7 +48,7 @@ def run(self, force=False): # Loop through the list of shows, and per show evaluate if we can use the .get_last_updated_seasons() for show in app.showList: if show.paused: - logger.info(u'The show {show} is paused, not updating it.', show=show.name) + logger.info('The show {show} is paused, not updating it.', show=show.name) continue indexer_name = indexerApi(show.indexer).name @@ -56,8 +56,8 @@ def run(self, force=False): try: indexer_api = indexerApi(show.indexer).indexer(**indexer_api_params) except IndexerUnavailable: - logger.warning(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'connectivity issues. While trying to look for show updates on show: {show}', + logger.warning('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'connectivity issues. While trying to look for show updates on show: {show}', indexer_name=indexer_name, show=show.name) continue @@ -78,30 +78,30 @@ def run(self, force=False): last_updates[indexer_name], update_max_weeks ) except IndexerUnavailable: - logger.warning(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'connectivity issues while trying to look for show updates on show: {show}', + logger.warning('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'connectivity issues while trying to look for show updates on show: {show}', indexer_name=indexer_name, show=show.name) continue except IndexerException as error: - logger.warning(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'issues while trying to get updates for show {show}. Cause: {cause!r}', + logger.warning('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'issues while trying to get updates for show {show}. Cause: {cause!r}', indexer_name=indexer_name, show=show.name, cause=error) continue except RequestException as error: - logger.warning(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'issues while trying to get updates for show {show}. Cause: {cause!r}', + logger.warning('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'issues while trying to get updates for show {show}. Cause: {cause!r}', indexer_name=indexer_name, show=show.name, cause=error) if isinstance(error, HTTPError): if error.response.status_code == 503: - logger.warning(u'API Service offline: ' - u'This service is temporarily offline, try again later.') + logger.warning('API Service offline: ' + 'This service is temporarily offline, try again later.') elif error.response.status_code == 429: - logger.warning(u'Your request count (#) is over the allowed limit of (40).') + logger.warning('Your request count (#) is over the allowed limit of (40).') continue except Exception as error: - logger.exception(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'issues while trying to get updates for show {show}. Cause: {cause!r}.', + logger.exception('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'issues while trying to get updates for show {show}. Cause: {cause!r}.', indexer_name=indexer_name, show=show.name, cause=error) continue @@ -109,15 +109,15 @@ def run(self, force=False): # or were not updated within the last X weeks if show.indexerid not in indexer_updated_shows.get(show.indexer, []): if show.last_update_indexer > time.time() - 604800 * update_max_weeks: - logger.debug(u'Skipping show update for {show}. Show was not in the ' - u'indexers {indexer_name} list with updated shows and it ' - u'was updated within the last {weeks} weeks.', show=show.name, + logger.debug('Skipping show update for {show}. Show was not in the ' + 'indexers {indexer_name} list with updated shows and it ' + 'was updated within the last {weeks} weeks.', show=show.name, indexer_name=indexer_name, weeks=update_max_weeks) continue # If indexer doesn't have season updates. if not hasattr(indexer_api, 'get_last_updated_seasons'): - logger.debug(u'Adding the following show for full update to queue: {show}', show=show.name) + logger.debug('Adding the following show for full update to queue: {show}', show=show.name) refresh_shows.append(show) # Else fall back to per season updates. @@ -127,46 +127,52 @@ def run(self, force=False): updated_seasons = indexer_api.get_last_updated_seasons( [show.indexerid], show.last_update_indexer, update_max_weeks) except IndexerUnavailable: - logger.warning(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'connectivity issues while trying to look for show updates for show: {show}', + logger.warning('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'connectivity issues while trying to look for show updates for show: {show}', indexer_name=indexer_name, show=show.name) continue except IndexerException as error: - logger.warning(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'issues while trying to get updates for show {show}. Cause: {cause!r}', + logger.warning('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'issues while trying to get updates for show {show}. Cause: {cause!r}', indexer_name=indexer_name, show=show.name, cause=error) continue except Exception as error: - logger.exception(u'Problem running show_updater, Indexer {indexer_name} seems to be having ' - u'issues while trying to get updates for show {show}. Cause: {cause!r}', + logger.exception('Problem running show_updater, Indexer {indexer_name} seems to be having ' + 'issues while trying to get updates for show {show}. Cause: {cause!r}', indexer_name=indexer_name, show=show.name, cause=error) continue if updated_seasons[show.indexerid]: - logger.info(u'{show_name}: Adding the following seasons for update to queue: {seasons}', + logger.info('{show_name}: Adding the following seasons for update to queue: {seasons}', show_name=show.name, seasons=updated_seasons[show.indexerid]) season_updates.append((show.indexer, show, updated_seasons[show.indexerid])) + elif show.indexerid in indexer_updated_shows.get(show.indexer, []): + # This show was marked to have an update, but it didn't get a season update. Let's fully + # update the show anyway. + logger.debug('Could not detect a season update, but an update is required. \n' + 'Adding the following show for full update to queue: {show}', show=show.name) + refresh_shows.append(show) pi_list = [] # Full refreshes for show in refresh_shows: - logger.info(u'Full update on show: {show}', show=show.name) + logger.info('Full update on show: {show}', show=show.name) try: pi_list.append(app.show_queue_scheduler.action.updateShow(show)) except (CantUpdateShowException, CantRefreshShowException) as e: - logger.warning(u'Automatic update failed. Error: {error}', error=e) + logger.warning('Automatic update failed. Error: {error}', error=e) except Exception as e: - logger.error(u'Automatic update failed: Error: {error}', error=e) + logger.error('Automatic update failed: Error: {error}', error=e) # Only update expired season for show in season_updates: - logger.info(u'Updating season {season} for show: {show}.', season=show[2], show=show[1].name) + logger.info('Updating season {season} for show: {show}.', season=show[2], show=show[1].name) try: pi_list.append(app.show_queue_scheduler.action.updateShow(show[1], season=show[2])) except CantUpdateShowException as e: - logger.warning(u'Automatic update failed. Error: {error}', error=e) + logger.warning('Automatic update failed. Error: {error}', error=e) except Exception as e: - logger.error(u'Automatic update failed: Error: {error}', error=e) + logger.error('Automatic update failed: Error: {error}', error=e) ui.ProgressIndicators.setIndicator('dailyUpdate', ui.QueueProgressIndicator('Daily Update', pi_list)) @@ -176,20 +182,20 @@ def run(self, force=False): try: app.show_queue_scheduler.action.refreshShow(show, True) except CantRefreshShowException as e: - logger.warning(u'Show refresh on show {show_name} failed. Error: {error}', + logger.warning('Show refresh on show {show_name} failed. Error: {error}', show_name=show.name, error=e) except Exception as e: - logger.error(u'Show refresh on show {show_name} failed: Unexpected Error: {error}', + logger.error('Show refresh on show {show_name} failed: Unexpected Error: {error}', show_name=show.name, error=e) if refresh_shows or season_updates: for indexer in set([s.indexer for s in refresh_shows] + [s[1].indexer for s in season_updates]): indexer_api = indexerApi(indexer) self.update_cache.set_last_indexer_update(indexer_api.name) - logger.info(u'Updated lastUpdate timestamp for {indexer_name}', indexer_name=indexer_api.name) - logger.info(u'Completed scheduling updates on shows') + logger.info('Updated lastUpdate timestamp for {indexer_name}', indexer_name=indexer_api.name) + logger.info('Completed scheduling updates on shows') else: - logger.info(u'Completed scheduling updates on shows, but there was nothing to update') + logger.info('Completed scheduling updates on shows, but there was nothing to update') self.amActive = False diff --git a/medusa/search/core.py b/medusa/search/core.py index 20e752ed2f..c31f5f1563 100644 --- a/medusa/search/core.py +++ b/medusa/search/core.py @@ -724,7 +724,7 @@ def search_providers(series_obj, episodes, forced_search=False, down_cur_quality multi_results, single_results = collect_candidates( found_results, cur_provider, multi_results, single_results ) - found_eps = itertools.chain(*(result.episodes for result in multi_results + single_results)) + found_eps = itertools.chain(*(result.episodes for result in multi_results + single_results if result.episodes)) needed_eps = [ep for ep in episodes if ep not in found_eps] except AuthException as error: diff --git a/themes-default/slim/src/components/manage/change-indexer-row.vue b/themes-default/slim/src/components/manage/change-indexer-row.vue index fca5a3ce0f..6f2b7138b4 100644 --- a/themes-default/slim/src/components/manage/change-indexer-row.vue +++ b/themes-default/slim/src/components/manage/change-indexer-row.vue @@ -79,14 +79,17 @@ export default { parent: this }); - // Bind the 'added' event to the newShow vm. + // Bind the 'selected' event to the searchComponent vm. this.searchComponent.$on('selected', ({ result }) => { this.searchedShow.searched = true; this.searchedShow.indexer = indexerIdToName(result.indexerId); this.searchedShow.id = result.showId; + + // Emit the event + this.$emit('selected', { show, indexer: this.searchedShow.indexer, showId: this.searchedShow.id }); }); - // Bind the 'added' event to the newShow vm. + // Bind the 'close' event to the searchComponent vm. this.searchComponent.$on('close', () => { this.searchComponent.$destroy(); // Remove the element from the DOM diff --git a/themes/dark/assets/js/medusa-runtime.js b/themes/dark/assets/js/medusa-runtime.js index 5d15f7eb04..3f9639467c 100644 --- a/themes/dark/assets/js/medusa-runtime.js +++ b/themes/dark/assets/js/medusa-runtime.js @@ -1,2 +1,2 @@ -(self.webpackChunkslim=self.webpackChunkslim||[]).push([[886],{7707:(e,t,n)=>{"use strict";n.d(t,{rT:()=>a,q1:()=>i,fL:()=>r,ww:()=>l,hi:()=>d});var s=n(9669),o=n.n(s);const a=document.body.getAttribute("web-root"),i=document.body.getAttribute("api-key"),r=o().create({baseURL:a+"/",timeout:6e4,headers:{Accept:"application/json","Content-Type":"application/json"}}),l=o().create({baseURL:a+"/api/v1/"+i+"/",timeout:3e4,headers:{Accept:"application/json","Content-Type":"application/json"}}),d=o().create({baseURL:a+"/api/v2/",timeout:3e4,headers:{Accept:"application/json","Content-Type":"application/json","X-Api-Key":i}})},4967:(e,t,n)=>{"use strict";n.d(t,{FX:()=>s.Z,xR:()=>p,O0:()=>$,un:()=>N,kz:()=>O,JB:()=>q,b_:()=>H,W$:()=>W,G_:()=>g,a3:()=>b,$E:()=>A.Z,Qw:()=>y,rD:()=>x,q4:()=>S,_V:()=>V,fy:()=>Y,Ss:()=>X,Nl:()=>te,zp:()=>ae,mP:()=>re,g5:()=>ue,ko:()=>de,By:()=>me,nH:()=>ge.Z,dY:()=>Ae,TR:()=>fe,J2:()=>_e,ol:()=>Ce,LX:()=>De,EI:()=>Ne,d9:()=>Oe,lU:()=>qe,ki:()=>He,zf:()=>z.Z,M8:()=>We,Iq:()=>Ge});var s=n(8949),o=n(7707),a=n(7059),i=n.n(a);const r={name:"lazy-image",props:{lazyWidth:{type:Number,default:null},lazyHeight:{type:Number,default:null},lazySrc:{type:String,default:null},lazySrcset:{type:String,default:null},lazyDefaultSrc:{type:String,default:null},lazyCls:{type:String,default:""}},data:()=>({loading:!0,error:!1}),computed:{aspectRatio(){return this.width&&this.height?this.height/this.width*100:null},style(){const e={},{lazyWidth:t}=this;t&&(e.width=`${t}px`);return this.loading&&this.aspectRatio&&(e.height=0,e.paddingTop=`${this.aspectRatio}%`),e}},mounted(){const e=()=>{this.loading=!1};this.$el.addEventListener("load",e),this.$once("hook:destroyed",(()=>{this.$el.removeEventListener("load",e)}));i()(this.$el,{loaded:e=>{e.classList.add("loaded");const t=new Image;t.src=e.getAttribute("data-src"),t.addEventListener("error",(()=>{e.classList.add("error"),this.lazyDefaultSrc&&e.setAttribute("src",this.lazyDefaultSrc)}),!1)}}).observe()},methods:{observe(){i()(this.$el).observe()}}};n(2162);var l=n(1900);const d=(0,l.Z)(r,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("img",{staticClass:"app-image",class:e.lazyCls,style:e.style,attrs:{"data-src":e.lazySrc,"data-srcset":e.lazySrcset},on:{error:function(t){e.error=!0}}})}),[],!1,null,"05ed6915",null).exports,c={name:"asset",components:{AppLink:s.Z,LazyImage:d},props:{showSlug:String,type:{type:String,required:!0},defaultSrc:{type:String,required:!0},link:{type:Boolean,default:!1},cls:String,imgWidth:Number,lazy:Boolean,imgStyle:String},data:()=>({error:!1}),computed:{src(){const{defaultSrc:e,error:t,showSlug:n,type:s}=this;return!t&&n&&s?`${o.rT}/api/v2/series/${n}/asset/${s}?api_key=${o.q1}`:e},href(){const{link:e,src:t}=this;if(e)return t.replace("Thumb","")},newCls(){const{cls:e,imgWidth:t}=this;let n=e;return t&&(n+=` width-${t}`),n},newStyle(){const{imgWidth:e,imgStyle:t}=this;let n="";return t&&(n=t),e&&(n+=`;width=${e}px`),n}}};n(7445);const p=(0,l.Z)(c,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.lazy?n("div",{staticStyle:{display:"inherit"}},[e.link?n("app-link",{attrs:{href:e.href}},[n("lazy-image",{attrs:{"lazy-src":e.src,"lazy-cls":e.newCls,"lazy-default-src":e.defaultSrc}})],1):n("lazy-image",{attrs:{"lazy-src":e.src,"lazy-cls":e.newCls,"lazy-default-src":e.defaultSrc,"lazy-width":e.imgWidth}})],1):n("div",{staticStyle:{display:"inherit"}},[e.link?n("app-link",{attrs:{href:e.href}},[n("img",e._b({on:{error:function(t){e.error=!0}}},"img",{src:e.src,class:e.newCls,style:e.imgStyle},!1))]):n("img",e._b({on:{error:function(t){e.error=!0}}},"img",{src:e.src,class:e.cls,class:e.newCls},!1))],1)}),[],!1,null,"2f5931d0",null).exports;var u=n(629),h=n(4355);const m={name:"config-scene-exceptions",directives:{tooltip:h.NS},props:{exceptions:{type:Array,default:()=>[]},show:{type:Object,default:null}},data:()=>({items:[],newItem:"",selectedSeason:-1,warning:""}),computed:{availableSeasons(){const{show:e}=this,{seasonCount:t}=e;return t?[{value:-1,description:"Show Exception"},...e.seasonCount.filter((e=>0!==e.season)).map((e=>({value:e.season,description:`Season ${e.season}`})))]:[]},unique(){const{items:e,newItem:t}=this;return!e.find((e=>e.title===t))}},mounted(){const{exceptions:e}=this;this.items=e},methods:{...(0,u.nv)({addSceneException:"addSceneException",removeSceneException:"removeSceneException"}),addException(){const{addSceneException:e,clear:t,selectedSeason:n,show:s,newItem:o,unique:a}=this;if(!a||""===o)return;e({show:s,exception:{title:o,season:n,custom:!0}}),t()},removeException(e){const{clear:t,removeSceneException:n,show:s}=this;n({show:s,exception:e}),t()},clear(){this.newItem="",this.selectedSeason=-1}},watch:{exceptions(e){this.items=e}}};n(9483);const g=(0,l.Z)(m,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"select-list max-width"},[n("ul",[e._l(e.items,(function(t){return n("li",{key:t.title+"-"+t.season},[n("div",{staticClass:"input-group form-inline",attrs:{disabled:!t.custom}},[n("input",{staticClass:"form-control input-sm",attrs:{type:"text",disabled:!t.custom},domProps:{value:t.title}}),e._v(" "),n("select",{directives:[{name:"model",rawName:"v-model",value:t.season,expression:"exception.season"}],staticClass:"select-season",attrs:{name:"scene-exception-season",disabled:!t.custom},on:{change:function(n){var s=Array.prototype.filter.call(n.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"season",n.target.multiple?s:s[0])}}},e._l(e.availableSeasons,(function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v("\n "+e._s(t.description)+"\n ")])})),0),e._v(" "),t.custom?n("div",{staticClass:"input-group-btn",on:{click:function(n){return e.removeException(t)}}},[e._m(1,!0)]):n("div",{directives:[{name:"tooltip",rawName:"v-tooltip.right",value:"This exception has been automatically added through an automated process sourcing title aliases from medusa github repo, thexem.de or anidb.info",expression:"'This exception has been automatically added through an automated process sourcing title aliases from medusa github repo, thexem.de or anidb.info'",modifiers:{right:!0}}],staticClass:"external-scene-exception"},[e._m(0,!0)])])])})),e._v(" "),n("div",{staticClass:"new-item"},[n("div",{staticClass:"input-group form-inline"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.newItem,expression:"newItem"}],ref:"newItemInput",staticClass:"form-control input-sm",attrs:{type:"text",placeholder:"add new values per line"},domProps:{value:e.newItem},on:{input:function(t){t.target.composing||(e.newItem=t.target.value)}}}),e._v(" "),n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedSeason,expression:"selectedSeason"}],staticClass:"select-season",attrs:{name:"add-exception-season"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedSeason=t.target.multiple?n:n[0]}}},e._l(e.availableSeasons,(function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v("\n "+e._s(t.description)+"\n ")])})),0),e._v(" "),n("div",{staticClass:"input-group-btn",attrs:{disabled:!e.unique},on:{click:function(t){return e.addException()}}},[e._m(2)])])]),e._v(" "),e.unique?e._e():n("div",[e._m(3)]),e._v(" "),e.newItem.length>0&&e.unique?n("div",{staticClass:"new-item-help"},[e._v("\n Click "),n("i",{staticClass:"glyphicon glyphicon-plus"}),e._v(" to add your "),n("b",[e._v(e._s(-1===e.selectedSeason?"Show Exception":"Season Exception"))]),e._v(".\n ")]):e._e()],2)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"align-center"},[t("img",{attrs:{src:"images/ico/favicon-16.png",width:"16",height:"16",alt:"search",title:"This exception has been automatically added through an automated process sourcing title aliases from medusa github repo, thexem.de or anidb.info"}})])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"btn btn-default input-sm",staticStyle:{"font-size":"14px"}},[t("i",{staticClass:"glyphicon glyphicon-remove",attrs:{title:"Remove"}})])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"btn btn-default input-sm",staticStyle:{"font-size":"14px"}},[t("i",{staticClass:"glyphicon glyphicon-plus",attrs:{title:"Add"}})])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[n("b",[e._v("This exception has already been added for this show."),n("br"),e._v("Can't add the same exception twice!")])])}],!1,null,"272125cb",null).exports;var v=n(7010);const f={name:"config-subtitle-languages",components:{VueTagsInput:n.n(v)()},props:{languages:Array},data:()=>({tag:"",wantedLanguages:[]}),mounted(){const{languages:e}=this;this.wantedLanguages=e.map((e=>({text:e.id,name:e.name})))},computed:{...(0,u.rn)({subtitleCodeFilter:e=>e.config.subtitles.codeFilter}),filteredItems(){return this.subtitleCodeFilter.map((e=>({text:e.id,name:e.name}))).filter((e=>e.text.toLowerCase().includes(this.tag.toLowerCase())))}},methods:{updateValue(){const{wantedLanguages:e}=this;this.$emit("input",e)},tagsChanged(e){this.wantedLanguages=e,this.$emit("change",e)}},watch:{languages(e){this.wantedLanguages=e.map((e=>({text:e.id,name:e.name})))}}};n(2716);const b=(0,l.Z)(f,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"config-subtitle-languages"}},[n("vue-tags-input",{attrs:{tags:e.wantedLanguages,"autocomplete-items":e.filteredItems,"add-only-from-autocomplete":"",placeholder:"Write to search a language and select it"},on:{"tags-changed":e.tagsChanged},scopedSlots:e._u([{key:"autocomplete-item",fn:function(t){return n("div",{staticClass:"autocomplete-item",on:{click:function(e){return t.performAdd(t.item)}}},[n("img",{staticStyle:{"vertical-align":"middle !important"},attrs:{src:"images/subtitles/flags/"+t.item.text+".png",onError:"this.onerror=null; this.src='images/flags/unknown.png';"}}),e._v("\n "+e._s(t.item.name)+"\n ")])}},{key:"tag-left",fn:function(e){return n("div",{staticClass:"country-left",on:{click:function(t){return e.performOpenEdit(e.index)}}},[n("img",{staticStyle:{"vertical-align":"middle !important"},attrs:{src:"images/subtitles/flags/"+e.tag.text+".png",onError:"this.onerror=null; this.src='images/flags/unknown.png';"}})])}}]),model:{value:e.tag,callback:function(t){e.tag=t},expression:"tag"}})],1)}),[],!1,null,"0fbc8b46",null).exports;var A=n(4333);const w={name:"config-textbox",props:{label:{type:String,required:!0},id:{type:String,required:!0},explanations:{type:Array,default:()=>[]},value:{type:String,default:""},type:{type:String,default:"text"},disabled:Boolean,inputClass:{type:String,default:"form-control input-sm max-input350"},placeholder:{type:String,default:""},validateUri:Boolean},data:()=>({localValue:null}),mounted(){const{value:e}=this;this.localValue=e},computed:{uriError(){const{localValue:e,validateUri:t}=this;return!(!t||!e)&&!e.match(/^[A-Za-z]{3,5}:\/\//)}},watch:{value(){const{value:e}=this;this.localValue=e}},methods:{updateValue(){const{localValue:e}=this;this.$emit("input",e)}}};n(3422);const y=(0,l.Z)(w,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"config-textbox"}},[n("div",{staticClass:"form-group"},[n("div",{staticClass:"row"},[n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:e.id}},[n("span",[e._v(e._s(e.label))])])]),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("div",{staticClass:"parent",class:e.inputClass},["checkbox"===[e.id,e.type,e.id,e.placeholder,e.disabled][1]?n("input",e._b({directives:[{name:"model",rawName:"v-model",value:e.localValue,expression:"localValue"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.localValue)?e._i(e.localValue,null)>-1:e.localValue},on:{input:function(t){return e.updateValue()},change:function(t){var n=e.localValue,s=t.target,o=!!s.checked;if(Array.isArray(n)){var a=e._i(n,null);s.checked?a<0&&(e.localValue=n.concat([null])):a>-1&&(e.localValue=n.slice(0,a).concat(n.slice(a+1)))}else e.localValue=o}}},"input",{id:e.id,type:e.type,name:e.id,placeholder:e.placeholder,disabled:e.disabled},!1)):"radio"===[e.id,e.type,e.id,e.placeholder,e.disabled][1]?n("input",e._b({directives:[{name:"model",rawName:"v-model",value:e.localValue,expression:"localValue"}],attrs:{type:"radio"},domProps:{checked:e._q(e.localValue,null)},on:{input:function(t){return e.updateValue()},change:function(t){e.localValue=null}}},"input",{id:e.id,type:e.type,name:e.id,placeholder:e.placeholder,disabled:e.disabled},!1)):n("input",e._b({directives:[{name:"model",rawName:"v-model",value:e.localValue,expression:"localValue"}],attrs:{type:[e.id,e.type,e.id,e.placeholder,e.disabled][1]},domProps:{value:e.localValue},on:{input:[function(t){t.target.composing||(e.localValue=t.target.value)},function(t){return e.updateValue()}]}},"input",{id:e.id,type:e.type,name:e.id,placeholder:e.placeholder,disabled:e.disabled},!1)),e._v(" "),n("transition",{attrs:{name:"uri-error"}},[e.uriError?n("div",{staticClass:"uri-error"},[e._v("Make sure to start your URI with http://, https://, scgi://, etc..")]):e._e()]),e._v(" "),e._t("warning")],2),e._v(" "),e._l(e.explanations,(function(t,s){return n("p",{key:s},[e._v(e._s(t))])})),e._v(" "),e._t("default")],2)])])])}),[],!1,null,"1f6251e9",null).exports;const _={name:"config-textbox-number",props:{label:{type:String,required:!0},id:{type:String,required:!0},explanations:{type:Array,default:()=>[]},value:{type:Number,default:10},inputClass:{type:String,default:"form-control input-sm input75"},min:{type:Number,default:10},max:{type:Number,default:null},step:{type:Number,default:1},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1}},data:()=>({localValue:null}),mounted(){const{value:e}=this;this.localValue=e},watch:{value(){const{value:e}=this;this.localValue=e}},methods:{updateValue(){const{localValue:e}=this;this.$emit("input",Number(e))}}};n(997);const x=(0,l.Z)(_,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"config-textbox-number-content"}},[n("div",{staticClass:"form-group"},[n("div",{staticClass:"row"},[n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:e.id}},[n("span",[e._v(e._s(e.label))])])]),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",e._b({directives:[{name:"model",rawName:"v-model",value:e.localValue,expression:"localValue"}],attrs:{type:"number"},domProps:{value:e.localValue},on:{input:[function(t){t.target.composing||(e.localValue=t.target.value)},function(t){return e.updateValue()}]}},"input",{min:e.min,max:e.max,step:e.step,id:e.id,name:e.id,class:e.inputClass,placeholder:e.placeholder,disabled:e.disabled},!1)),e._v(" "),e._l(e.explanations,(function(t,s){return n("p",{key:s},[e._v(e._s(t))])})),e._v(" "),e._t("default")],2)])])])}),[],!1,null,null,null).exports;var C=n(9010);const k={name:"config-toggle-slider",components:{ToggleButton:C.ToggleButton},props:{label:{type:String,required:!0},id:{type:String,required:!0},value:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},explanations:{type:Array,default:()=>[]},experimental:Boolean},data:()=>({localChecked:null}),mounted(){const{value:e}=this;this.localChecked=e},computed:{...(0,u.rn)({experimentalEnabled:e=>e.config.general.experimental})},watch:{value(){const{value:e}=this;this.localChecked=e}},methods:{updateValue(){const{localChecked:e}=this;this.$emit("input",e,this)}}};n(5829);const S=(0,l.Z)(k,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return!e.experimental||e.experimentalEnabled?n("div",{attrs:{id:"config-toggle-slider-content"}},[n("div",{staticClass:"form-group"},[n("div",{staticClass:"row"},[n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:e.id}},[n("span",[e._v(e._s(e.label))])])]),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("toggle-button",e._b({attrs:{width:45,height:22,sync:""},on:{input:function(t){return e.updateValue()}},model:{value:e.localChecked,callback:function(t){e.localChecked=t},expression:"localChecked"}},"toggle-button",{id:e.id,name:e.id,disabled:e.disabled},!1)),e._v(" "),e._l(e.explanations,(function(t,s){return n("p",{key:s},[e._v(e._s(t))])})),e._v(" "),e._t("default"),e._v(" "),e.experimental?n("span",{staticStyle:{color:"red"}},[e._v("This is an experimental feature")]):e._e()],2)])])]):e._e()}),[],!1,null,null,null).exports;var I=n(6602),E=n(7907),P=n.n(E);const T={name:"config-custom-newznab",components:{ConfigTextbox:y,ConfigTemplate:A.Z,Multiselect:P()},data:()=>({saving:!1,selectedProvider:"#add",name:"",url:"",apikey:"",availableCategories:[]}),methods:{async save(){const{provider:e}=this;this.saving=!0;try{await o.hi.patch(`providers/${e.id}`,e.config),this.$snotify.success(`Saved provider ${e.name}`,"Saved",{timeout:5e3})}catch(t){this.$snotify.error(`Error while trying to save provider ${e.name}`,"Error")}finally{this.saving=!1}},async getCategories(){const{currentProvider:e}=this;if(e.name&&e.url&&e.config.apikey)try{const t=await o.hi.post("providers/newznab/operation",{type:"GETCATEGORIES",apikey:e.config.apikey,name:e.name,url:e.url});t.data.result.success&&(this.availableCategories=t.data.result.categories)}catch(t){this.$snotify.error(`Error while trying to get cats for provider ${e.name}`,"Error")}},async addProvider(){const{name:e,apikey:t,url:n}=this;try{const s=await o.hi.post("providers/newznab",{apikey:t,name:e,url:n});this.$store.commit(I.Tm,s.data.result),this.$snotify.success(`Saved provider ${e}`,"Saved",{timeout:5e3}),this.apikey="",this.name="",this.url=""}catch(t){this.$snotify.error(`Error while trying to get cats for provider ${e}`,"Error")}},async removeProvider(){const{currentProvider:e}=this;try{await o.hi.delete(`providers/newznab/${e.id}`),this.$store.commit(I.C6,e.id),this.$snotify.success(`Removed provider ${e.name}`,"Removed",{timeout:5e3}),this.selectedProvider="#add"}catch(t){this.$snotify.error(`Error while trying to remove provider ${e.name}`,"Error")}},addTag(e){if(!Number(e)||Number(e)<1)return;const t={id:e,name:e};this.availableCategories.push(t)}},computed:{...(0,u.rn)({providers:e=>e.provider.providers}),...(0,u.Se)(["providerNameToId"]),newznabProviderOptions(){const{providers:e}=this;return e.filter((e=>"newznab"===e.subType)).map((e=>({value:e.id,text:e.name})))},currentProvider(){const{providers:e,selectedProvider:t}=this;return t?e.find((e=>e.id===t)):null},providerCatIds(){const{currentProvider:e}=this;return e&&0!==e.config.catIds.length?e.config.catIds.every((e=>"string"==typeof e))?e.config.catIds.map((e=>({id:e,name:null}))):e.config.catIds:[]},providerIdAvailable(){const{providerNameToId:e,providers:t,name:n}=this;return 0===t.filter((t=>e(n)===t.id)).length}},watch:{currentProvider(e,t){e&&e!==t&&this.getCategories()}}};n(6947);const $=(0,l.Z)(T,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"custom-newznab"}},[n("config-template",{attrs:{"label-for":"select_newznab_provider",label:"Select Provider"}},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedProvider,expression:"selectedProvider"}],staticClass:"form-control input-sm",attrs:{id:"select-provider"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedProvider=t.target.multiple?n:n[0]}}},[n("option",{attrs:{value:"#add"}},[e._v("--- add new provider ---")]),e._v(" "),e._l(e.newznabProviderOptions,(function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v("\n "+e._s(t.text)+"\n ")])}))],2)]),e._v(" "),e.currentProvider&&"#add"!==e.selectedProvider?n("div",{staticClass:"edit-provider"},[n("config-textbox",{attrs:{disabled:"",label:"Provider name",id:"edit_provider_name"},model:{value:e.currentProvider.name,callback:function(t){e.$set(e.currentProvider,"name",t)},expression:"currentProvider.name"}}),e._v(" "),n("config-textbox",{attrs:{disabled:"",label:"Site Url",id:"edit_provider_url"},model:{value:e.currentProvider.url,callback:function(t){e.$set(e.currentProvider,"url",t)},expression:"currentProvider.url"}}),e._v(" "),n("config-textbox",{attrs:{type:"password",label:"Api key",id:"edit_provider_api"},model:{value:e.currentProvider.config.apikey,callback:function(t){e.$set(e.currentProvider.config,"apikey",t)},expression:"currentProvider.config.apikey"}}),e._v(" "),n("config-template",{attrs:{label:"Categories","label-for":"catids"}},[n("multiselect",{attrs:{value:e.providerCatIds,multiple:!0,options:e.availableCategories,label:"id","track-by":"id",taggable:!0,"tag-placeholder":"Add this as new cat id",placeholder:"Search or add a cat id"},on:{tag:e.addTag,input:function(t){e.currentProvider.config.catIds=t.map((function(e){return e.id}))}},scopedSlots:e._u([{key:"option",fn:function(t){return[t.option.isTag?n("span",[n("strong",[e._v(e._s(t.option.label))])]):n("span",[n("strong",[e._v(e._s(t.option.id))]),e._v(" ("+e._s(t.option.name)+")")])]}}],null,!1,2742372380)})],1),e._v(" "),n("button",{staticClass:"btn-medusa btn-danger newznab_delete",attrs:{disabled:e.currentProvider.default,id:"newznab_delete"},on:{click:e.removeProvider}},[e._v("Delete")]),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter_refresh",on:{click:function(t){return e.$emit("save")}}},[e._v("Save Changes")]),e._v(" "),"prowlarr"===e.currentProvider.manager?n("p",{staticClass:"manager-note"},[n("img",{staticStyle:{width:"16px"},attrs:{src:"images/providers/prowlarr.png"}}),e._v("\n Note! This is a provider configured through the 'Configure Custom Prowlarr Providers' tab.\n ")]):e._e()],1):e._e(),e._v(" "),"#add"===e.selectedProvider?n("div",{staticClass:"add-provider"},[n("config-textbox",{attrs:{label:"Provider name",id:"add_provider_name"},scopedSlots:e._u([{key:"warning",fn:function(){return[n("transition",{attrs:{name:"warning"}},[e.providerIdAvailable?e._e():n("div",{staticClass:"warning"},[e._v("This provider id is already used.")])])]},proxy:!0}],null,!1,3405532282),model:{value:e.name,callback:function(t){e.name=t},expression:"name"}}),e._v(" "),n("config-textbox",{attrs:{label:"Site Url",id:"add_provider_url"},model:{value:e.url,callback:function(t){e.url=t},expression:"url"}}),e._v(" "),n("config-textbox",{attrs:{type:"password",label:"Api key",id:"add_provider_api"},model:{value:e.apikey,callback:function(t){e.apikey=t},expression:"apikey"}}),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",attrs:{disabled:!e.providerIdAvailable},on:{click:e.addProvider}},[e._v("Add Provider")])],1):e._e()],1)}),[],!1,null,"149b4f77",null).exports;var D=n(5206);const B={name:"config-custom-prowlarr",components:{ConfigTextbox:y,VueGoodTable:D.K},data:()=>({saving:!1,url:"",apikey:"",testResult:null,availableProviders:[],columns:[{label:"Added",field:"addedProvider",sortable:!1},{label:"name",field:"name"},{label:"protocol",field:"protocol"},{label:"Action",field:"action",sortable:!1}]}),mounted(){const{getAvailableProviders:e}=this;this.unwatchProp=this.$watch("prowlarr",(t=>{t.url&&t.apikey&&(this.unwatchProp(),e())}))},methods:{...(0,u.nv)({setConfig:"setConfig"}),async addProvider(e){const t="torrent"===e.protocol?"torznab":"newznab";try{const n=await o.hi.post("providers/prowlarr",{subType:t,id:e.id,name:e.name});this.$store.commit(I.Tm,n.data.result),this.$snotify.success(`Saved provider ${e.name}`,"Saved",{timeout:5e3})}catch(t){this.$snotify.error(`Error while trying to get cats for provider ${e.name}`,"Error")}},async removeProvider(e){const t="torrent"===e.protocol?"torznab":"newznab",n=e.localProvider?e.localProvider.id:e.localId;try{await o.hi.delete(`providers/${t}/${n}`),this.$store.commit(I.C6,n),this.$snotify.success(`Removed provider ${e.name}`,"Removed",{timeout:5e3})}catch(t){this.$snotify.error(`Error while trying to remove provider ${e.name}`,"Error")}},async testConnectivity(){const{prowlarr:e}=this;try{await o.hi.post("providers/prowlarr/operation",{type:"TEST",url:e.url,apikey:e.apikey}),this.testResult="connected"}catch(e){this.testResult="could not connect",this.$snotify.error("Error while trying to connect to prowlarr","Error")}},async saveConfig(){const{prowlarr:e,setConfig:t}=this,n={providers:{prowlarr:e}};try{await t({section:"main",config:n}),this.$snotify.success("Saved general config","Saved",{timeout:5e3})}catch(e){this.$snotify.error("Error while trying to save general config",`Error: ${e}`)}},async getAvailableProviders(){const{prowlarr:e}=this;if(e.url&&e.apikey)try{const t=await o.hi.post("providers/prowlarr/operation",{type:"GETINDEXERS",url:e.url,apikey:e.apikey});this.availableProviders=t.data}catch(e){this.$snotify.warning("Could not retrieve available providers","Warning")}}},computed:{...(0,u.rn)({prowlarr:e=>e.config.general.providers.prowlarr,providers:e=>e.provider.providers}),...(0,u.Se)(["providerNameToId"]),prowlarrProviders(){const{providerNameToId:e,providers:t,availableProviders:n}=this,s=t.filter((e=>"prowlarr"===e.manager));return n.map((t=>(t.localProvider=s.find((e=>e.idManager===t.name)),t.localId=e(t.name),t)))}}};n(6347);const N=(0,l.Z)(B,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"custom-prowlarr"}},[n("div",{staticClass:"row"},[n("div",{staticClass:"col-lg-12"},[n("config-textbox",{attrs:{label:"Prowler Url",id:"prowler_url"},model:{value:e.prowlarr.url,callback:function(t){e.$set(e.prowlarr,"url",t)},expression:"prowlarr.url"}}),e._v(" "),n("config-textbox",{attrs:{label:"Api Key",id:"prowler_apikey"},model:{value:e.prowlarr.apikey,callback:function(t){e.$set(e.prowlarr,"apikey",t)},expression:"prowlarr.apikey"}}),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",on:{click:e.saveConfig}},[e._v("Save")]),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",on:{click:e.testConnectivity}},[e._v("Test")]),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",on:{click:e.getAvailableProviders}},[e._v("Get Providers")]),e._v(" "),n("span",{directives:[{name:"show",rawName:"v-show",value:e.testResult,expression:"testResult"}],staticClass:"testresult"},[e._v(e._s(e.testResult))])],1)]),e._v(" "),n("div",{staticClass:"row"},[n("div",{staticClass:"col-lg-12 vgt-table-styling"},[n("h3",[e._v("Available providers")]),e._v(" "),n("vue-good-table",{attrs:{columns:e.columns,rows:e.prowlarrProviders,"search-options":{enabled:!1},"sort-options":{enabled:!0,initialSortBy:{field:"name",type:"asc"}},styleClass:"vgt-table condensed"},scopedSlots:e._u([{key:"table-row",fn:function(t){return["Added"===t.column.label?n("span",{staticClass:"align-center"},[t.row.localProvider?n("img",{attrs:{src:"/images/yes16.png"}}):e._e()]):"Action"===t.column.label?n("span",{staticClass:"align-center"},[t.row.localProvider?n("button",{staticClass:"btn-medusa btn-danger",on:{click:function(n){return e.removeProvider(t.row)}}},[e._v("Remove Provider")]):n("button",{staticClass:"btn-medusa config_submitter",on:{click:function(n){return e.addProvider(t.row)}}},[e._v("Add Provider")])]):e._e()]}}])})],1)])])}),[],!1,null,"66c33d58",null).exports;const L={name:"config-custom-torrentrss",components:{ConfigTextbox:y,ConfigTemplate:A.Z},data:()=>({saving:!1,selectedProvider:"#add",name:"",url:"",cookies:"",searchElement:""}),methods:{async save(){const{provider:e}=this;this.saving=!0;try{await o.hi.patch(`providers/${e.id}`,e.config),this.$snotify.success(`Saved provider ${e.name}`,"Saved",{timeout:5e3})}catch(t){this.$snotify.error(`Error while trying to save provider ${e.name}`,"Error")}finally{this.saving=!1}},async addProvider(){const{name:e,url:t,cookies:n,searchElement:s}=this;try{const a=await o.hi.post("providers/torrentrss",{name:e,url:t,cookies:n,titleTag:s});this.$store.commit(I.Tm,a.data.result),this.$snotify.success(`Saved provider ${e}`,"Saved",{timeout:5e3}),this.apikey="",this.name="",this.url=""}catch(t){this.$snotify.error(`Error while trying to add provider ${e}`,"Error")}},async removeProvider(){const{currentProvider:e}=this;try{await o.hi.delete(`providers/torrentrss/${e.id}`),this.$store.commit(I.C6,e.id),this.$snotify.success(`Removed provider ${e.name}`,"Removed",{timeout:5e3}),this.selectedProvider="#add"}catch(t){this.$snotify.error(`Error while trying to remove provider ${e.name}`,"Error")}}},computed:{...(0,u.rn)({providers:e=>e.provider.providers}),...(0,u.Se)(["providerNameToId"]),torrentrssProviderOptions(){const{providers:e}=this;return e.filter((e=>"torrentrss"===e.subType)).map((e=>({value:e.id,text:e.name})))},currentProvider(){const{providers:e,selectedProvider:t}=this;return t?e.find((e=>e.id===t)):null},providerIdAvailable(){const{providerNameToId:e,providers:t,name:n}=this;return 0===t.filter((t=>e(n)===t.id)).length}}};n(8462);const O=(0,l.Z)(L,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"custom-torrentrss"}},[n("config-template",{attrs:{"label-for":"select_torrentrss_provider",label:"Select Provider"}},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedProvider,expression:"selectedProvider"}],staticClass:"form-control input-sm",attrs:{id:"select-provider"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedProvider=t.target.multiple?n:n[0]}}},[n("option",{attrs:{value:"#add"}},[e._v("--- add new provider ---")]),e._v(" "),e._l(e.torrentrssProviderOptions,(function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v("\n "+e._s(t.text)+"\n ")])}))],2)]),e._v(" "),e.currentProvider&&"#add"!==e.selectedProvider?n("div",{staticClass:"edit-provider"},[n("config-textbox",{attrs:{disabled:"",label:"Provider name",id:"edit_provider_name"},model:{value:e.currentProvider.name,callback:function(t){e.$set(e.currentProvider,"name",t)},expression:"currentProvider.name"}}),e._v(" "),n("config-textbox",{attrs:{disabled:"",label:"Rss Url",id:"edit_provider_url"},model:{value:e.currentProvider.url,callback:function(t){e.$set(e.currentProvider,"url",t)},expression:"currentProvider.url"}}),e._v(" "),n("config-textbox",{attrs:{label:"Cookies (optional)",id:"edit_provider_cookies"},model:{value:e.currentProvider.config.cookies,callback:function(t){e.$set(e.currentProvider.config,"cookies",t)},expression:"currentProvider.config.cookies"}}),e._v(" "),n("config-textbox",{attrs:{label:"Search element",id:"edit_provider_search_element"},model:{value:e.currentProvider.config.titleTag,callback:function(t){e.$set(e.currentProvider.config,"titleTag",t)},expression:"currentProvider.config.titleTag"}}),e._v(" "),n("button",{staticClass:"btn-medusa btn-danger torrentrss_delete",attrs:{id:"torrentrss_delete"},on:{click:e.removeProvider}},[e._v("Delete")]),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter_refresh",on:{click:function(t){return e.$emit("save")}}},[e._v("Save Changes")])],1):e._e(),e._v(" "),"#add"===e.selectedProvider?n("div",{staticClass:"add-provider"},[n("config-textbox",{attrs:{label:"Provider name",id:"add_provider_name"},scopedSlots:e._u([{key:"warning",fn:function(){return[n("transition",{attrs:{name:"warning"}},[e.providerIdAvailable?e._e():n("div",{staticClass:"warning"},[e._v("This provider id is already used.")])])]},proxy:!0}],null,!1,3405532282),model:{value:e.name,callback:function(t){e.name=t},expression:"name"}}),e._v(" "),n("config-textbox",{attrs:{label:"Site Url",id:"add_provider_url"},model:{value:e.url,callback:function(t){e.url=t},expression:"url"}}),e._v(" "),n("config-textbox",{attrs:{label:"Cookies",id:"add_provider_cookies"},model:{value:e.cookies,callback:function(t){e.cookies=t},expression:"cookies"}}),e._v(" "),n("config-textbox",{attrs:{label:"Search element",id:"add_provider_search_element"},model:{value:e.searchElement,callback:function(t){e.searchElement=t},expression:"searchElement"}}),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",attrs:{disabled:!e.providerIdAvailable},on:{click:e.addProvider}},[e._v("Add Provider")])],1):e._e()],1)}),[],!1,null,"6ad09fdf",null).exports;const R={name:"config-custom-torznab",components:{ConfigTextbox:y,ConfigTemplate:A.Z,Multiselect:P()},data:()=>({saving:!1,selectedProvider:"#add",name:"",url:"",apikey:"",availableCategories:[]}),methods:{async save(){const{provider:e}=this;this.saving=!0;try{await o.hi.patch(`providers/${e.id}`,e.config),this.$snotify.success(`Saved provider ${e.name}`,"Saved",{timeout:5e3})}catch(t){this.$snotify.error(`Error while trying to save provider ${e.name}`,"Error")}finally{this.saving=!1}},async getCategories(){const{currentProvider:e}=this;if(e.name&&e.url&&e.config.apikey)try{const t=await o.hi.post("providers/torznab/operation",{type:"GETCATEGORIES",apikey:e.config.apikey,name:e.name,url:e.url});t.data.result.success&&(this.availableCategories=t.data.result.categories)}catch(t){this.$snotify.error(`Error while trying to get cats for provider ${e.name}`,"Error")}},async addProvider(){const{name:e,apikey:t,url:n}=this;try{const s=await o.hi.post("providers/torznab",{apikey:t,name:e,url:n});this.$store.commit(I.Tm,s.data.result),this.$snotify.success(`Saved provider ${e}`,"Saved",{timeout:5e3}),this.apikey="",this.name="",this.url=""}catch(t){this.$snotify.error(`Error while trying to get cats for provider ${e}`,"Error")}},async removeProvider(){const{currentProvider:e}=this;try{await o.hi.delete(`providers/torznab/${e.id}`),this.$store.commit(I.C6,e.id),this.$snotify.success(`Removed provider ${e.name}`,"Removed",{timeout:5e3}),this.selectedProvider="#add"}catch(t){this.$snotify.error(`Error while trying to remove provider ${e.name}`,"Error")}},addTag(e){if(!Number(e)||Number(e)<1)return;const t={id:e,name:e};this.availableCategories.push(t)}},computed:{...(0,u.rn)({providers:e=>e.provider.providers}),...(0,u.Se)(["providerNameToId"]),torznabProviderOptions(){const{providers:e}=this;return e.filter((e=>"torznab"===e.subType)).map((e=>({value:e.id,text:e.name})))},currentProvider(){const{providers:e,selectedProvider:t}=this;return t?e.find((e=>e.id===t)):null},providerCatIds(){const{currentProvider:e}=this;return e&&0!==e.config.catIds.length?e.config.catIds.every((e=>"string"==typeof e))?e.config.catIds.map((e=>({id:e,name:null}))):e.config.catIds:[]},providerIdAvailable(){const{providerNameToId:e,providers:t,name:n}=this;return 0===t.filter((t=>e(n)===t.id)).length}},watch:{currentProvider(e,t){e&&e!==t&&this.getCategories()}}};n(8929);const q=(0,l.Z)(R,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"custom-torznab"}},[n("config-template",{attrs:{"label-for":"select_torznab_provider",label:"Select Provider"}},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedProvider,expression:"selectedProvider"}],staticClass:"form-control input-sm",attrs:{id:"select-provider"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedProvider=t.target.multiple?n:n[0]}}},[n("option",{attrs:{value:"#add"}},[e._v("--- add new provider ---")]),e._v(" "),e._l(e.torznabProviderOptions,(function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v("\n "+e._s(t.text)+"\n ")])}))],2)]),e._v(" "),e.currentProvider&&"#add"!==e.selectedProvider?n("div",{staticClass:"edit-provider"},[n("config-textbox",{attrs:{disabled:"",label:"Provider name",id:"edit_provider_name"},model:{value:e.currentProvider.name,callback:function(t){e.$set(e.currentProvider,"name",t)},expression:"currentProvider.name"}}),e._v(" "),n("config-textbox",{attrs:{disabled:"",label:"Site Url",id:"edit_provider_url"},model:{value:e.currentProvider.url,callback:function(t){e.$set(e.currentProvider,"url",t)},expression:"currentProvider.url"}}),e._v(" "),n("config-textbox",{attrs:{type:"password",label:"Api key",id:"edit_provider_api"},model:{value:e.currentProvider.config.apikey,callback:function(t){e.$set(e.currentProvider.config,"apikey",t)},expression:"currentProvider.config.apikey"}}),e._v(" "),n("config-template",{attrs:{label:"Categories","label-for":"catids"}},[n("multiselect",{attrs:{value:e.providerCatIds,multiple:!0,options:e.availableCategories,label:"id","track-by":"id",taggable:!0,"tag-placeholder":"Add this as new cat id",placeholder:"Search or add a cat id"},on:{tag:e.addTag,input:function(t){e.currentProvider.config.catIds=t.map((function(e){return e.id}))}},scopedSlots:e._u([{key:"option",fn:function(t){return[t.option.isTag?n("span",[n("strong",[e._v(e._s(t.option.label))])]):n("span",[n("strong",[e._v(e._s(t.option.id))]),e._v(" ("+e._s(t.option.name)+")")])]}}],null,!1,2742372380)})],1),e._v(" "),n("button",{staticClass:"btn-medusa btn-danger torznab_delete",attrs:{disabled:e.currentProvider.default,id:"torznab_delete"},on:{click:e.removeProvider}},[e._v("Delete")]),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter_refresh",on:{click:function(t){return e.$emit("save")}}},[e._v("Save Changes")]),e._v(" "),"prowlarr"===e.currentProvider.manager?n("p",{staticClass:"manager-note"},[n("img",{staticStyle:{width:"16px"},attrs:{src:"images/providers/prowlarr.png"}}),e._v("\n Note! This is a provider configured through the 'Configure Custom Prowlarr Providers' tab.\n ")]):e._e()],1):e._e(),e._v(" "),"#add"===e.selectedProvider?n("div",{staticClass:"add-provider"},[n("config-textbox",{attrs:{label:"Provider name",id:"add_provider_name"},scopedSlots:e._u([{key:"warning",fn:function(){return[n("transition",{attrs:{name:"warning"}},[e.providerIdAvailable?e._e():n("div",{staticClass:"warning"},[e._v("This provider id is already used.")])])]},proxy:!0}],null,!1,3405532282),model:{value:e.name,callback:function(t){e.name=t},expression:"name"}}),e._v(" "),n("config-textbox",{attrs:{label:"Site Url",id:"add_provider_url"},model:{value:e.url,callback:function(t){e.url=t},expression:"url"}}),e._v(" "),n("config-textbox",{attrs:{type:"password",label:"Api key",id:"add_provider_api"},model:{value:e.apikey,callback:function(t){e.apikey=t},expression:"apikey"}}),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",attrs:{disabled:!e.providerIdAvailable},on:{click:e.addProvider}},[e._v("Add Provider")])],1):e._e()],1)}),[],!1,null,"16387a4c",null).exports;var z=n(2807);const M={name:"test-provider",components:{StateSwitch:z.Z},props:{providerId:String,providerName:String},data:()=>({testResult:"",loading:!1}),computed:{...(0,u.rn)({layout:e=>e.config.layout})},methods:{async test(){const{providerId:e,providerName:t}=this;this.testResult="",this.loading=!0;try{const t=await o.hi.post("providers/internal/operation",{type:"TESTPROVIDER",providerId:e}).catch((e=>{if([404,401].includes(e.response.status))throw new Error(e.response.data.error);throw e}));this.testResult=t.data}catch(e){this.testResult=e,this.$snotify.error(`Error while trying to test provider ${t} for results`,"Error")}finally{this.loading=!1}}}};n(673);const F=(0,l.Z)(M,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"test-provider"},[n("button",{staticClass:"btn-medusa config_submitter",on:{click:e.test}},[e._v("Test for results")]),e._v(" "),e.loading?n("state-switch",{attrs:{state:"loading",theme:e.layout.themeName}}):n("span",{directives:[{name:"show",rawName:"v-show",value:e.testResult,expression:"testResult"}],staticClass:"testresult"},[e._v(e._s(e.testResult))])],1)}),[],!1,null,"1c908779",null).exports,U={name:"config-provider-nzb",components:{ConfigTextbox:y,ConfigTextboxNumber:x,ConfigTemplate:A.Z,ConfigToggleSlider:S,TestProvider:F},props:{provider:{type:Object,required:!0}},data:()=>({saving:!1,editProvider:{}}),mounted(){const{provider:e}=this;this.editProvider={...e}},methods:{async save(){const{editProvider:e}=this;this.saving=!0;try{await o.hi.patch(`providers/${e.id}`,e.config),this.$snotify.success(`Saved provider ${e.name}`,"Saved",{timeout:5e3})}catch(t){this.$snotify.error(`Error while trying to save provider ${e.name}`,"Error")}finally{this.saving=!1}}}};const H=(0,l.Z)(U,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"provider-options-nzb"}},[Object.keys(e.editProvider).length>0?n("div",{staticClass:"providerDiv",attrs:{id:e.editProvider.id+"Div"}},["username"in e.editProvider.config&&"newznab"!==e.editProvider.subType?n("config-textbox",{attrs:{label:"Username",id:e.editProvider.id+"_username"},model:{value:e.editProvider.config.username,callback:function(t){e.$set(e.editProvider.config,"username",t)},expression:"editProvider.config.username"}}):e._e(),e._v(" "),e.editProvider.default&&e.editProvider.needsAuth?[n("config-template",{attrs:{"label-for":e.editProvider.id+"_url",label:"URL"}},[n("input",{staticClass:"form-control input-sm input350",attrs:{type:"text",id:e.editProvider.id+"_url",disabled:""},domProps:{value:""+e.editProvider.url}})]),e._v(" "),"apikey"in e.editProvider.config?n("config-textbox",{attrs:{type:"password",label:"API key",id:e.editProvider.id+"_url","input-class":"newznab_api_key"},model:{value:e.editProvider.config.apikey,callback:function(t){e.$set(e.editProvider.config,"apikey",t)},expression:"editProvider.config.apikey"}}):e._e()]:"newznab"!==e.editProvider.subType?["apikey"in e.editProvider.config?n("config-textbox",{attrs:{type:"password",label:"API key",id:e.editProvider.id+"_url","input-class":"newznab_api_key"},model:{value:e.editProvider.config.apikey,callback:function(t){e.$set(e.editProvider.config,"apikey",t)},expression:"editProvider.config.apikey"}}):e._e()]:e._e(),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable daily searches",name:e.editProvider.id+"_enable_daily",id:e.editProvider.id+"_enable_daily"},model:{value:e.editProvider.config.search.daily.enabled,callback:function(t){e.$set(e.editProvider.config.search.daily,"enabled",t)},expression:"editProvider.config.search.daily.enabled"}},[n("p",[e._v("enable provider to perform daily searches.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable manual searches",name:e.editProvider.id+"_enable_manual",id:e.editProvider.id+"_enable_manual"},model:{value:e.editProvider.config.search.manual.enabled,callback:function(t){e.$set(e.editProvider.config.search.manual,"enabled",t)},expression:"editProvider.config.search.manual.enabled"}},[n("p",[e._v("enable provider to be used in 'Manual Search' feature.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable backlog searches",name:e.editProvider.id+"_enable_backlog",id:e.editProvider.id+"_enable_backlog"},model:{value:e.editProvider.config.search.backlog.enabled,callback:function(t){e.$set(e.editProvider.config.search.backlog,"enabled",t)},expression:"editProvider.config.search.backlog.enabled"}},[n("p",[e._v("enable provider to perform backlog searches.")])]),e._v(" "),n("config-template",{attrs:{"label-for":"backlog_search_mode",label:"Backlog search mode"}},[n("div",{staticClass:"radio-item"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.editProvider.config.search.mode,expression:"editProvider.config.search.mode"}],attrs:{type:"radio",name:e.editProvider.id+"_search_mode_sponly",id:e.editProvider.id+"_search_mode_sponly",value:"sponly"},domProps:{checked:e._q(e.editProvider.config.search.mode,"sponly")},on:{change:function(t){return e.$set(e.editProvider.config.search,"mode","sponly")}}}),e._v(" "),n("label",{attrs:{for:"one"}},[e._v("Season packs only")])]),e._v(" "),n("div",{staticClass:"radio-item"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.editProvider.config.search.mode,expression:"editProvider.config.search.mode"}],attrs:{type:"radio",name:e.editProvider.id+"_search_mode_eponly",id:e.editProvider.id+"_search_mode_eponly",value:"eponly"},domProps:{checked:e._q(e.editProvider.config.search.mode,"eponly")},on:{change:function(t){return e.$set(e.editProvider.config.search,"mode","eponly")}}}),e._v(" "),n("label",{attrs:{for:"one"}},[e._v("Episodes only")])]),e._v(" "),n("p",[e._v("when searching with backlog you can choose to have it look for season packs only, or choose to have it build a complete season from just single episodes.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable fallback",name:e.editProvider.id+"_enable_fallback",id:e.editProvider.id+"_enable_fallback"},model:{value:e.editProvider.config.search.fallback,callback:function(t){e.$set(e.editProvider.config.search,"fallback",t)},expression:"editProvider.config.search.fallback"}},[n("p",[e._v("when searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable search delay",name:e.editProvider.id+"_enable_search_delay",id:e.editProvider.id+"_enable_search_delay"},model:{value:e.editProvider.config.search.delay.enabled,callback:function(t){e.$set(e.editProvider.config.search.delay,"enabled",t)},expression:"editProvider.config.search.delay.enabled"}},[n("p",[e._v("Enable to delay downloads for this provider for an x amount of hours. The provider will start snatching results for a specific episode after a delay has expired, compared to when it first got a result for the specific episode.")]),e._v(" "),n("p",[e._v("A negative value will have the daily search accepts results before the episode scheduled air date/time.")]),e._v(" "),n("p",[e._v("Proper and Backlog searches are exempted from the delay.")])]),e._v(" "),e.editProvider.config.search.delay.enabled?n("config-textbox-number",{attrs:{value:e.editProvider.config.search.delay.duration/60,label:"Search delay (hours)",id:e.editProvider.id+"_search_delay_duration",min:.5,step:.5},on:{input:function(t){e.editProvider.config.search.delay.duration=60*t}}},[n("p",[e._v("Amount of hours to wait for downloading a result compared to the first result for a specific episode.")])]):e._e()],2):e._e(),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",staticStyle:{float:"left"},attrs:{disabled:e.saving},on:{click:e.save}},[e._v("Save Changes")]),e._v(" "),n("test-provider",{attrs:{"provider-id":e.editProvider.id,"provider-name":e.editProvider.name}})],1)}),[],!1,null,null,null).exports;const Q={name:"config-provider-torrent",components:{AppLink:s.Z,ConfigTextbox:y,ConfigTextboxNumber:x,ConfigTemplate:A.Z,ConfigToggleSlider:S,TestProvider:F},props:{provider:{type:Object,required:!0}},data:()=>({saving:!1,editProvider:{}}),mounted(){const{provider:e}=this;this.editProvider={...e}},methods:{async save(){const{editProvider:e}=this;this.saving=!0;try{await o.hi.patch(`providers/${e.id}`,e.config),this.$snotify.success(`Saved provider ${e.name}`,"Saved",{timeout:5e3})}catch(t){this.$snotify.error(`Error while trying to save provider ${e.name}`,"Error")}finally{this.saving=!1}}}};const W=(0,l.Z)(Q,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"provider-options-torrent"}},[Object.keys(e.editProvider).length>0?n("div",{staticClass:"providerDiv",attrs:{id:e.editProvider.id+"Div"}},["customUrl"in e.editProvider.config?n("config-textbox",{attrs:{label:"Custom Url",id:e.editProvider.id+"_custom_url"},model:{value:e.editProvider.config.customUrl,callback:function(t){e.$set(e.editProvider.config,"customUrl",t)},expression:"editProvider.config.customUrl"}},[n("p",[e._v("The URL should include the protocol (and port if applicable). Examples: http://192.168.1.4/ or http://localhost:3000/")])]):e._e(),e._v(" "),"apikey"in e.editProvider.config&&"torznab"!==e.editProvider.config.subType?n("config-textbox",{attrs:{type:"password",label:"API key",id:e.editProvider.id+"_api_key"},model:{value:e.editProvider.config.apikey,callback:function(t){e.$set(e.editProvider.config,"apikey",t)},expression:"editProvider.config.apikey"}}):e._e(),e._v(" "),"digest"in e.editProvider.config?n("config-textbox",{attrs:{type:"password",label:"Digest",id:e.editProvider.id+"_digest"},model:{value:e.editProvider.config.digest,callback:function(t){e.$set(e.editProvider.config,"digest",t)},expression:"editProvider.config.digest"}}):e._e(),e._v(" "),"hash"in e.editProvider.config?n("config-textbox",{attrs:{label:"Hash",id:e.editProvider.id+"_hash"},model:{value:e.editProvider.config.hash,callback:function(t){e.$set(e.editProvider.config,"hash",t)},expression:"editProvider.config.hash"}}):e._e(),e._v(" "),"username"in e.editProvider.config?n("config-textbox",{attrs:{label:"Username",id:e.editProvider.id+"_username"},model:{value:e.editProvider.config.username,callback:function(t){e.$set(e.editProvider.config,"username",t)},expression:"editProvider.config.username"}}):e._e(),e._v(" "),"password"in e.editProvider.config?n("config-textbox",{attrs:{autocomplete:"no",type:"password",label:"Password",id:e.editProvider.id+"_password"},model:{value:e.editProvider.config.password,callback:function(t){e.$set(e.editProvider.config,"password",t)},expression:"editProvider.config.password"}}):e._e(),e._v(" "),e.editProvider.config.cookies.enabled||"torrentrss"===e.editProvider.subType?n("config-textbox",{attrs:{label:"Cookies",id:e.editProvider.id+"_cookies"},model:{value:e.editProvider.config.cookies.values,callback:function(t){e.$set(e.editProvider.config.cookies,"values",t)},expression:"editProvider.config.cookies.values"}},[e.editProvider.config.cookies.required?[n("p",[e._v("eg. "+e._s(e.editProvider.config.cookies.required.map((function(e){return e+"=xx;"})).join("").slice(0,-1)))]),e._v(" "),n("p",[e._v("This provider requires the following cookies: "+e._s(e.editProvider.config.cookies.required.join(", "))+".\n "),n("br"),e._v("For a step by step guide please follow the link to our "),n("app-link",{attrs:{href:"https://github.com/pymedusa/Medusa/wiki/Configure-Providers-with-captcha-protection"}},[e._v("WIKI")])],1)]:e._e()],2):e._e(),e._v(" "),"passkey"in e.editProvider.config?n("config-textbox",{attrs:{label:"Passkey",id:e.editProvider.id+"_passkey"},model:{value:e.editProvider.config.passkey,callback:function(t){e.$set(e.editProvider.config,"passkey",t)},expression:"editProvider.config.passkey"}}):e._e(),e._v(" "),"pin"in e.editProvider.config?n("config-textbox",{attrs:{type:"password",label:"Pin",id:e.editProvider.id+"_pin"},model:{value:e.editProvider.config.pin,callback:function(t){e.$set(e.editProvider.config,"pin",t)},expression:"editProvider.config.pin"}}):e._e(),e._v(" "),"pid"in e.editProvider.config?n("config-textbox",{attrs:{type:"password",label:"Pid",id:e.editProvider.id+"_pid"},model:{value:e.editProvider.config.pid,callback:function(t){e.$set(e.editProvider.config,"pid",t)},expression:"editProvider.config.pid"}}):e._e(),e._v(" "),"ratio"in e.editProvider.config?n("config-textbox-number",{attrs:{min:-1,step:.1,label:"Seed ratio",id:e.editProvider.id+"_seed_ratio"},model:{value:e.editProvider.config.ratio,callback:function(t){e.$set(e.editProvider.config,"ratio",t)},expression:"editProvider.config.ratio"}},[n("p",[e._v("Configure a desired seeding ratio. Used by the (automated download handler in config - postprocessing)\n "),n("br"),e._v("-1 for provider specific option is disabled.\n "),n("br"),e._v("0 for not using a seed ratio. Actions configured in the download handler, will not wait for finished seeding.\n "),n("br"),e._v("If disabled the global option is used in config - postprocessing (automated download handling))\n ")])]):e._e(),e._v(" "),"minseed"in e.editProvider.config?n("config-textbox-number",{attrs:{label:"Minimum seeders",min:0,step:1,id:e.editProvider.id+"_min_seed"},model:{value:e.editProvider.config.minseed,callback:function(t){e.$set(e.editProvider.config,"minseed",t)},expression:"editProvider.config.minseed"}}):e._e(),e._v(" "),"minleech"in e.editProvider.config?n("config-textbox-number",{attrs:{label:"Minimum leechers",min:0,step:1,id:e.editProvider.id+"_min_leech"},model:{value:e.editProvider.config.minleech,callback:function(t){e.$set(e.editProvider.config,"minleech",t)},expression:"editProvider.config.minleech"}}):e._e(),e._v(" "),"confirmed"in e.editProvider.config?n("config-toggle-slider",{attrs:{label:"Confirmed downloads",name:e.editProvider.id+"_confirmed",id:e.editProvider.id+"_confirmed"},model:{value:e.editProvider.config.confirmed,callback:function(t){e.$set(e.editProvider.config,"confirmed",t)},expression:"editProvider.config.confirmed"}},[n("p",[e._v("only download torrents from trusted or verified uploaders ?")])]):e._e(),e._v(" "),"ranked"in e.editProvider.config?n("config-toggle-slider",{attrs:{label:"Ranked torrents",name:e.editProvider.id+"_ranked",id:e.editProvider.id+"_ranked"},model:{value:e.editProvider.config.ranked,callback:function(t){e.$set(e.editProvider.config,"ranked",t)},expression:"editProvider.config.ranked"}},[n("p",[e._v("only download ranked torrents (trusted releases)")])]):e._e(),e._v(" "),"sorting"in e.editProvider.config?n("config-template",{attrs:{"label-for":"sorting",label:"Sorting results by"}},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.editProvider.config.sorting,expression:"editProvider.config.sorting"}],staticClass:"form-control input-sm",attrs:{id:"sorting"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.editProvider.config,"sorting",t.target.multiple?n:n[0])}}},[n("option",{attrs:{value:"last"}},[e._v("last")]),e._v(" "),n("option",{attrs:{value:"seeders"}},[e._v("seeders")]),e._v(" "),n("option",{attrs:{value:"leechers"}},[e._v("leechers")])])]):e._e(),e._v(" "),"freeleech"in e.editProvider.config?n("config-toggle-slider",{attrs:{label:"Freeleech",name:e.editProvider.id+"_freeleech",id:e.editProvider.id+"_freeleech"},model:{value:e.editProvider.config.freeleech,callback:function(t){e.$set(e.editProvider.config,"freeleech",t)},expression:"editProvider.config.freeleech"}},[n("p",[e._v("only download "),n("b",[e._v('"FreeLeech"')]),e._v(" torrents.")])]):e._e(),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable daily searches",name:e.editProvider.id+"_enable_daily",id:e.editProvider.id+"_enable_daily"},model:{value:e.editProvider.config.search.daily.enabled,callback:function(t){e.$set(e.editProvider.config.search.daily,"enabled",t)},expression:"editProvider.config.search.daily.enabled"}},[n("p",[e._v("enable provider to perform daily searches.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable manual searches",name:e.editProvider.id+"_enable_manual",id:e.editProvider.id+"_enable_manual"},model:{value:e.editProvider.config.search.manual.enabled,callback:function(t){e.$set(e.editProvider.config.search.manual,"enabled",t)},expression:"editProvider.config.search.manual.enabled"}},[n("p",[e._v("enable provider to be used in 'Manual Search' feature.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable backlog searches",name:e.editProvider.id+"_enable_backlog",id:e.editProvider.id+"_enable_backlog"},model:{value:e.editProvider.config.search.backlog.enabled,callback:function(t){e.$set(e.editProvider.config.search.backlog,"enabled",t)},expression:"editProvider.config.search.backlog.enabled"}},[n("p",[e._v("enable provider to perform backlog searches.")])]),e._v(" "),n("config-template",{attrs:{"label-for":"backlog_search_mode",label:"Backlog search mode"}},[n("div",{staticClass:"radio-item"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.editProvider.config.search.mode,expression:"editProvider.config.search.mode"}],attrs:{type:"radio",name:e.editProvider.id+"_search_mode_sponly",id:e.editProvider.id+"_search_mode_sponly",value:"sponly"},domProps:{checked:e._q(e.editProvider.config.search.mode,"sponly")},on:{change:function(t){return e.$set(e.editProvider.config.search,"mode","sponly")}}}),e._v(" "),n("label",{attrs:{for:"one"}},[e._v("Season packs only")])]),e._v(" "),n("div",{staticClass:"radio-item"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.editProvider.config.search.mode,expression:"editProvider.config.search.mode"}],attrs:{type:"radio",name:e.editProvider.id+"_search_mode_eponly",id:e.editProvider.id+"_search_mode_eponly",value:"eponly"},domProps:{checked:e._q(e.editProvider.config.search.mode,"eponly")},on:{change:function(t){return e.$set(e.editProvider.config.search,"mode","eponly")}}}),e._v(" "),n("label",{attrs:{for:"one"}},[e._v("Episodes only")])]),e._v(" "),n("p",[e._v("when searching with backlog you can choose to have it look for season packs only, or choose to have it build a complete season from just single episodes.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable fallback",name:e.editProvider.id+"_enable_fallback",id:e.editProvider.id+"_enable_fallback"},model:{value:e.editProvider.config.search.fallback,callback:function(t){e.$set(e.editProvider.config.search,"fallback",t)},expression:"editProvider.config.search.fallback"}},[n("p",[e._v("when searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Enable search delay",name:e.editProvider.id+"_enable_search_delay",id:e.editProvider.id+"_enable_search_delay"},model:{value:e.editProvider.config.search.delay.enabled,callback:function(t){e.$set(e.editProvider.config.search.delay,"enabled",t)},expression:"editProvider.config.search.delay.enabled"}},[n("p",[e._v("Enable to delay downloads for this provider for an x amount of hours. The provider will start snatching results for a specific episode after a delay has expired, compared to when it first got a result for the specific episode.")]),e._v(" "),n("p",[e._v("A negative value will have the daily search accepts results before the episode scheduled air date/time.")]),e._v(" "),n("p",[e._v("Proper and Backlog searches are exempted from the delay.")])]),e._v(" "),e.editProvider.config.search.delay.enabled?n("config-textbox-number",{attrs:{value:e.editProvider.config.search.delay.duration/60,label:"Search delay (hours)",id:e.editProvider.id+"_search_delay_duration",step:.5},on:{input:function(t){e.editProvider.config.search.delay.duration=60*t}}},[n("p",[e._v("Amount of hours to wait for downloading a result compared to the first result for a specific episode.")])]):e._e()],1):e._e(),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",staticStyle:{float:"left"},attrs:{disabled:e.saving},on:{click:e.save}},[e._v("Save Changes")]),e._v(" "),n("test-provider",{attrs:{"provider-id":e.editProvider.id,"provider-name":e.editProvider.name}})],1)}),[],!1,null,null,null).exports;const j={name:"custom-logs",data:()=>({levels:[{value:10,text:"DEBUG"},{value:20,text:"INFO"},{value:30,text:"WARNING"},{value:40,text:"ERROR"},{value:50,text:"CRITICAL"},{value:0,text:"DEFAULT"}]}),computed:{...(0,u.rn)({logs:e=>e.config.general.logs}),customLogs:{get(){const{logs:e}=this;return Object.keys(e.custom).map((t=>({identifier:t,level:e.custom[t]})))},set(e){const{setCustomLogs:t}=this;t(e)}}},methods:{...(0,u.nv)({setCustomLogs:"setCustomLogs"}),saveLogs(e,t){const{customLogs:n}=this,s=n.map((n=>(n.identifier===t&&(n.level=Number(e.target.value)),n)));this.customLogs=s}}};n(9653);const V=(0,l.Z)(j,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"select-list"},[n("div",{staticClass:"wrapper"},e._l(e.customLogs,(function(t){return n("div",{key:t.identifier},[n("div",{staticClass:"level"},[n("select",{directives:[{name:"model",rawName:"v-model",value:t.level,expression:"customLog.level"}],on:{input:function(n){return e.saveLogs(n,t.identifier)},change:function(n){var s=Array.prototype.filter.call(n.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(t,"level",n.target.multiple?s:s[0])}}},e._l(e.levels,(function(t){return n("option",{key:t.value,domProps:{value:t.value}},[e._v(e._s(t.text)+"\n ")])})),0)]),e._v(" "),n("div",{staticClass:"identifier"},[e._v(e._s(t.identifier))])])})),0)])}),[],!1,null,"12aec99f",null).exports;n(1426);var G=n(9755);const Z={name:"file-browser",props:{name:{type:String,default:"proc_dir"},title:{type:String,default:"Choose Directory"},includeFiles:{type:Boolean,default:!1},showBrowseButton:{type:Boolean,default:!0},autocomplete:{type:Boolean,default:!1},localStorageKey:{type:String,default:""},initialDir:{type:String,default:""}},data(){return{lock:!1,unwatchProp:null,files:[],currentPath:this.initialDir,lastPath:"",url:"browser/",autocompleteUrl:"browser/complete",fileBrowserDialog:null,localStorageSupport:(()=>{try{return Boolean(localStorage.getItem),!0}catch(e){return console.log(e),!1}})()}},created(){this.unwatchProp=this.$watch("initialDir",(e=>{this.unwatchProp(),this.lock=!0,this.currentPath=e,this.$nextTick((()=>{this.lock=!1}))}))},mounted(){const{autocomplete:e,fileBrowser:t,storedPath:n,$refs:s}=this;t(s.locationInput,e).on("autocompleteselect",((e,t)=>{this.currentPath=t.item.value})),!this.currentPath&&n&&(this.currentPath=n)},computed:{storedPath:{get(){const{localStorageSupport:e,localStorageKey:t}=this;return e&&t?localStorage["fileBrowser-"+t]:null},set(e){const{localStorageSupport:t,localStorageKey:n}=this;t&&n&&(localStorage["fileBrowser-"+n]=e)}}},methods:{toggleFolder(e,t){if(e.isFile)return;const n=t.target.children[0]||t.target;n.classList.toggle("ui-icon-folder-open"),n.classList.toggle("ui-icon-folder-collapsed")},fileClicked(e){e.isFile?(this.currentPath=e.path,G(this.$el).find('.browserDialog .ui-button:contains("Ok")').click()):this.browse(e.path)},browse(e){const{url:t,includeFiles:n,fileBrowserDialog:s}=this;G(this.$refs.fileBrowserSearchBox).autocomplete("close"),console.debug("Browsing to "+e),s.dialog("option","dialogClass","browserDialog busy"),s.dialog("option","closeText","");const a={path:e,includeFiles:Number(n)};o.fL.get(t,{params:a}).then((e=>{const{data:t}=e;this.currentPath=t.shift().currentPath,this.files=t,s.dialog("option","dialogClass","browserDialog")})).catch((t=>{console.warning(`Unable to browse to: ${e}\nError: ${t.message}`,t)}))},openFileBrowser(e){const t=this,{browse:n,title:s,fileBrowser:o,$refs:a}=t,{fileBrowserSearchBox:i,fileBrowserFileList:r}=a;t.fileBrowserDialog||(t.fileBrowserDialog=G(a.fileBrowserDialog).dialog({dialogClass:"browserDialog",title:s,position:{my:"center top",at:"center top+100",of:window},minWidth:Math.min(G(document).width()-80,650),height:Math.min(G(document).height()-120,G(window).height()-120),maxHeight:Math.min(G(document).height()-120,G(window).height()-120),maxWidth:G(document).width()-80,modal:!0,autoOpen:!1}),i.removeAttribute("style"),t.fileBrowserDialog.append(i),o(i,!0).on("autocompleteselect",((e,t)=>{n(t.item.value)}))),t.fileBrowserDialog.dialog("option","buttons",[{text:"Ok",class:"medusa-btn",click(){e(t.currentPath),G(this).dialog("close")}},{text:"Cancel",class:"medusa-btn",click(){t.currentPath=t.lastPath,G(this).dialog("close")}}]),t.fileBrowserDialog.dialog("open"),n(t.currentPath),t.lastPath=t.currentPath,r.removeAttribute("style"),t.fileBrowserDialog.append(r)},fileBrowser(e,t){const n=this,{autocompleteUrl:s,includeFiles:o}=n,a=G(e);if(t&&a.autocomplete&&s){let e="";a.autocomplete({position:{my:"top",at:"bottom",collision:"flipfit"},source(t,n){e=G.ui.autocomplete.escapeRegex(t.term),t.includeFiles=Number(o),G.ajax({url:s,data:t,dataType:"json"}).done((t=>{const s=new RegExp("^"+e,"i"),o=G.grep(t,(e=>s.test(e)));n(o)}))},open(){G(n.$el).find(".ui-autocomplete li.ui-menu-item a").removeClass("ui-corner-all")}}).data("ui-autocomplete")._renderItem=(t,n)=>{let s=n.label;const o=new RegExp("(?![^&;]+;)(?!<[^<>]*)("+e+")(?![^<>]*>)(?![^&;]+;)","gi");return s=s.replace(o,(e=>""+e+"")),G("
  • ").data("ui-autocomplete-item",n).append(''+s+"").appendTo(t)}}return a},openDialog(){const{openFileBrowser:e,currentPath:t}=this;e((e=>{this.storedPath=e||t}))}},watch:{currentPath(){this.lock||this.$emit("update",this.currentPath)}}};n(1709);const Y=(0,l.Z)(Z,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"file-browser max-width"},[n("div",{class:e.showBrowseButton?"input-group":"input-group-no-btn"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.currentPath,expression:"currentPath"}],ref:"locationInput",staticClass:"form-control input-sm fileBrowserField",attrs:{name:e.name,type:"text"},domProps:{value:e.currentPath},on:{input:function(t){t.target.composing||(e.currentPath=t.target.value)}}}),e._v(" "),e.showBrowseButton?n("div",{staticClass:"input-group-btn",attrs:{title:e.title,alt:e.title},on:{click:function(t){return t.preventDefault(),e.openDialog.apply(null,arguments)}}},[e._m(0)]):e._e()]),e._v(" "),n("div",{ref:"fileBrowserDialog",staticClass:"fileBrowserDialog",staticStyle:{display:"none"}}),e._v(" "),n("input",{ref:"fileBrowserSearchBox",staticClass:"form-control",staticStyle:{display:"none"},attrs:{type:"text"},domProps:{value:e.currentPath},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.browse(t.target.value)}}}),e._v(" "),n("ul",{ref:"fileBrowserFileList",staticStyle:{display:"none"}},e._l(e.files,(function(t){return n("li",{key:t.name,staticClass:"ui-state-default ui-corner-all"},[n("a",{on:{mouseover:function(n){return e.toggleFolder(t,n)},mouseout:function(n){return e.toggleFolder(t,n)},click:function(n){return e.fileClicked(t)}}},[n("span",{class:"ui-icon "+(t.isFile?"ui-icon-blank":"ui-icon-folder-collapsed")}),e._v(" "+e._s(t.name)+"\n ")])])})),0)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"btn btn-default input-sm",staticStyle:{"font-size":"14px"}},[t("i",{staticClass:"glyphicon glyphicon-open"})])}],!1,null,"eff76864",null).exports;var K=n(9755);const J={name:"language-select",props:{language:{type:String,default:"en"},available:{type:String,default:"en"},blank:{type:Boolean,default:!1},flags:{type:Boolean,default:!1}},mounted(){const e=this;K(this.$el).bfhlanguages({flags:this.flags,language:this.language,available:this.available,blank:this.blank}),K(this.$el).on("change",(t=>{e.$emit("update-language",t.currentTarget.value)}))},watch:{language(){K(this.$el).val(this.language)}}};const X=(0,l.Z)(J,(function(){var e=this.$createElement;return(this._self._c||e)("select")}),[],!1,null,null,null).exports;const ee={name:"load-progress-bar",props:{display:Boolean,current:Number,total:Number,description:{type:String,default:"Shows"}},computed:{loadMsg(){const{current:e,total:t,description:n}=this;return`Loaded ${e} out of ${t} ${n}`},styleProgress(){const{current:e,total:t}=this;return{height:"24px",width:`${Math.round(e/t*100)}%`}}}};n(7361);const te=(0,l.Z)(ee,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.display?n("div",{staticClass:"load-progress-bar-container"},[n("div",{staticClass:"border"},[n("div",{staticClass:"msg"},[e._v(e._s(e.loadMsg))]),e._v(" "),n("div",{staticClass:"progress",style:e.styleProgress})])]):e._e()}),[],!1,null,null,null).exports;var ne=n(1532),se=n(9755);const oe={name:"name-pattern",components:{ToggleButton:C.ToggleButton},props:{namingPattern:{type:String,default:""},namingPresets:{type:Array,default:()=>[]},multiEpStyle:{type:Number},multiEpStyles:{type:Array,default:()=>[]},animeNamingType:{type:Number,default:0},type:{type:String,default:""},enabled:{type:Boolean,default:!0},flagLoaded:{type:Boolean,default:!1}},data:()=>({presets:[],availableMultiEpStyles:[],pattern:"",customName:"",showLegend:!1,namingExample:"",namingExampleMulti:"",isEnabled:!1,selectedMultiEpStyle:1,animeType:0,lastSelectedPattern:""}),methods:{getDateFormat:e=>(0,ne.Z)(new Date,e),testNaming(e,t,n){console.debug(`Test pattern ${e} for ${t?"multi":"single ep"}`);const s={pattern:e,anime_type:n};t&&(s.multi=t);try{return o.fL.get("config/postProcessing/testNaming",{params:s,timeout:2e4}).then((e=>e.data))}catch(e){return console.warn(e),""}},updatePatternSamples(){this.customName||(this.customName=this.lastSelectedPattern);const e=this.isCustom?this.customName:this.pattern;e&&null!==this.animeType&&null!==this.selectedMultiEpStyle&&(this.testNaming(e,!1,this.animeType).then((e=>{this.namingExample=e+".ext"})),this.checkNaming(e,!1,this.animeType),this.isMulti&&(this.testNaming(e,this.selectedMultiEpStyle,this.animeType).then((e=>{this.namingExampleMulti=e+".ext"})),this.checkNaming(e,this.selectedMultiEpStyle,this.animeType)),this.update())},update(){this.flagLoaded&&this.$emit("change",{pattern:this.isCustom?this.customName:this.pattern,type:this.type,multiEpStyle:this.selectedMultiEpStyle,custom:this.isCustom,enabled:this.isEnabled,animeNamingType:Number(this.animeType)})},checkNaming(e,t,n){if(!e)return;const s={pattern:e,anime_type:n};t&&(s.multi=t);const{$el:a}=this,i=se(a);o.fL.get("config/postProcessing/isNamingValid",{params:s,timeout:2e4}).then((e=>{"invalid"===e.data?(i.find("#naming_pattern").qtip("option",{"content.text":"This pattern is invalid.","style.classes":"qtip-rounded qtip-shadow qtip-red"}),i.find("#naming_pattern").qtip("toggle",!0),i.find("#naming_pattern").css("background-color","#FFDDDD")):"seasonfolders"===e.data?(i.find("#naming_pattern").qtip("option",{"content.text":'This pattern would be invalid without the folders, using it will force "Flatten" off for all shows.',"style.classes":"qtip-rounded qtip-shadow qtip-red"}),i.find("#naming_pattern").qtip("toggle",!0),i.find("#naming_pattern").css("background-color","#FFFFDD")):(i.find("#naming_pattern").qtip("option",{"content.text":"This pattern is valid.","style.classes":"qtip-rounded qtip-shadow qtip-green"}),i.find("#naming_pattern").qtip("toggle",!1),i.find("#naming_pattern").css("background-color","#FFFFFF"))})).catch((e=>{console.warn(e)}))},updateCustomName(){this.presetsPatterns.includes(this.pattern)||(this.customName=this.pattern),this.customName||(this.customName=this.lastSelectedPattern)}},computed:{isCustom(){return!!this.pattern&&(!this.presetsPatterns.includes(this.pattern)||"Custom..."===this.pattern)},selectedNamingPattern:{get(){return this.isCustom?"Custom...":(()=>{const e=this.presets.filter((e=>e.pattern===this.pattern));return e.length>0&&e[0].example})()},set(e){this.pattern=this.presets.find((t=>t.example===e)).pattern}},presetsPatterns(){return this.presets.map((e=>e.pattern))},isMulti(){return Boolean(this.multiEpStyle)}},mounted(){this.pattern=this.namingPattern,this.presets=this.namingPresets.concat({pattern:"Custom...",example:"Custom..."}),this.updateCustomName(),this.availableMultiEpStyles=this.multiEpStyles,this.selectedMultiEpStyle=this.multiEpStyle,this.animeType=this.animeNamingType,this.isEnabled=!this.type&&this.enabled,this.updatePatternSamples()},watch:{enabled(){this.isEnabled=this.enabled},namingPattern(e,t){this.lastSelectedPattern=e||t,this.pattern=this.namingPattern,this.updateCustomName(),this.updatePatternSamples()},namingPresets(){this.presets=this.namingPresets},multiEpStyle(){this.selectedMultiEpStyle=this.multiEpStyle,this.updatePatternSamples()},multiEpStyles(){this.availableMultiEpStyles=this.multiEpStyles},animeNamingType(){this.animeType=this.animeNamingType,this.updatePatternSamples()},type(){this.isEnabled=!this.type&&this.enabled}}};const ae=(0,l.Z)(oe,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"name-pattern-wrapper"}},[e.type?n("div",{staticClass:"form-group"},[n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"enable_naming_custom"}},[n("span",[e._v("Custom "+e._s(e.type))])])]),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("toggle-button",{attrs:{width:45,height:22,id:"enable_naming_custom",name:"enable_naming_custom",sync:""},on:{input:function(t){return e.update()}},model:{value:e.isEnabled,callback:function(t){e.isEnabled=t},expression:"isEnabled"}}),e._v(" "),n("span",[e._v("Name "+e._s(e.type)+" shows differently than regular shows?")])],1)]):e._e(),e._v(" "),!e.type||e.isEnabled?n("div",{staticClass:"episode-naming"},[n("div",{staticClass:"form-group"},[e._m(0),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedNamingPattern,expression:"selectedNamingPattern"}],staticClass:"form-control input-sm",attrs:{id:"name_presets"},on:{change:[function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedNamingPattern=t.target.multiple?n:n[0]},e.updatePatternSamples],input:function(t){return e.update()}}},e._l(e.presets,(function(t){return n("option",{key:t.pattern,attrs:{id:t.pattern}},[e._v(e._s(t.example))])})),0)])]),e._v(" "),n("div",{attrs:{id:"naming_custom"}},[e.isCustom?n("div",{staticClass:"form-group",staticStyle:{"padding-top":"0"}},[e._m(1),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.customName,expression:"customName"}],staticClass:"form-control-inline-max input-sm max-input350",attrs:{type:"text",name:"naming_pattern",id:"naming_pattern"},domProps:{value:e.customName},on:{change:e.updatePatternSamples,input:[function(t){t.target.composing||(e.customName=t.target.value)},function(t){return e.update()}]}}),e._v(" "),n("img",{staticClass:"legend",attrs:{src:"images/legend16.png",width:"16",height:"16",alt:"[Toggle Key]",id:"show_naming_key",title:"Toggle Naming Legend"},on:{click:function(t){e.showLegend=!e.showLegend}}})])]):e._e(),e._v(" "),e.showLegend&&e.isCustom?n("div",{staticClass:"nocheck",attrs:{id:"naming_key"}},[n("table",{staticClass:"Key"},[e._m(2),e._v(" "),e._m(3),e._v(" "),n("tbody",[e._m(4),e._v(" "),e._m(5),e._v(" "),e._m(6),e._v(" "),e._m(7),e._v(" "),e._m(8),e._v(" "),e._m(9),e._v(" "),e._m(10),e._v(" "),e._m(11),e._v(" "),e._m(12),e._v(" "),e._m(13),e._v(" "),e._m(14),e._v(" "),e._m(15),e._v(" "),e._m(16),e._v(" "),e._m(17),e._v(" "),e._m(18),e._v(" "),e._m(19),e._v(" "),n("tr",[e._m(20),e._v(" "),n("td",[e._v("%M")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("M")))])]),e._v(" "),n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%D")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("d")))])]),e._v(" "),n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%Y")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("yyyy")))])]),e._v(" "),n("tr",[e._m(21),e._v(" "),n("td",[e._v("%CM")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("M")))])]),e._v(" "),n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%CD")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("d")))])]),e._v(" "),n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%CY")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("yyyy")))])]),e._v(" "),e._m(22),e._v(" "),e._m(23),e._v(" "),e._m(24),e._v(" "),e._m(25),e._v(" "),e._m(26),e._v(" "),e._m(27),e._v(" "),n("tr",{staticClass:"even"},[e._m(28),e._v(" "),n("td",[e._v("%SY")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("yyyy")))])]),e._v(" "),e._m(29),e._v(" "),e._m(30),e._v(" "),e._m(31)])])]):e._e()]),e._v(" "),e.selectedMultiEpStyle?n("div",{staticClass:"form-group"},[e._m(32),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedMultiEpStyle,expression:"selectedMultiEpStyle"}],staticClass:"form-control input-sm",attrs:{id:"naming_multi_ep",name:"naming_multi_ep"},on:{change:[function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedMultiEpStyle=t.target.multiple?n:n[0]},e.updatePatternSamples],input:function(t){return e.update(t)}}},e._l(e.availableMultiEpStyles,(function(t){return n("option",{key:t.value,attrs:{id:"multiEpStyle"},domProps:{value:t.value}},[e._v(e._s(t.text))])})),0)])]):e._e(),e._v(" "),n("div",{staticClass:"form-group row"},[n("h3",{staticClass:"col-sm-12"},[e._v("Single-EP Sample:")]),e._v(" "),n("div",{staticClass:"example col-sm-12"},[n("span",{staticClass:"jumbo",attrs:{id:"naming_example"}},[e._v(e._s(e.namingExample))])])]),e._v(" "),e.isMulti?n("div",{staticClass:"form-group row"},[n("h3",{staticClass:"col-sm-12"},[e._v("Multi-EP sample:")]),e._v(" "),n("div",{staticClass:"example col-sm-12"},[n("span",{staticClass:"jumbo",attrs:{id:"naming_example_multi"}},[e._v(e._s(e.namingExampleMulti))])])]):e._e(),e._v(" "),e.animeType>0?n("div",{staticClass:"form-group"},[e._m(33),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.animeType,expression:"animeType"}],attrs:{type:"radio",name:"naming_anime",id:"naming_anime",value:"1"},domProps:{checked:e._q(e.animeType,"1")},on:{change:[function(t){e.animeType="1"},e.updatePatternSamples]}}),e._v(" "),n("span",[e._v("Add the absolute number to the season/episode format?")]),e._v(" "),n("p",[e._v("Only applies to animes. (e.g. S15E45 - 310 vs S15E45)")])])]):e._e(),e._v(" "),e.animeType>0?n("div",{staticClass:"form-group"},[e._m(34),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.animeType,expression:"animeType"}],attrs:{type:"radio",name:"naming_anime",id:"naming_anime_only",value:"2"},domProps:{checked:e._q(e.animeType,"2")},on:{change:[function(t){e.animeType="2"},e.updatePatternSamples]}}),e._v(" "),n("span",[e._v("Replace season/episode format with absolute number")]),e._v(" "),n("p",[e._v("Only applies to animes.")])])]):e._e(),e._v(" "),e.animeType>0?n("div",{staticClass:"form-group"},[e._m(35),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.animeType,expression:"animeType"}],attrs:{type:"radio",name:"naming_anime",id:"naming_anime_none",value:"3"},domProps:{checked:e._q(e.animeType,"3")},on:{change:[function(t){e.animeType="3"},e.updatePatternSamples]}}),e._v(" "),n("span",[e._v("Don't include the absolute number")]),e._v(" "),n("p",[e._v("Only applies to animes.")])])]):e._e()]):e._e()])}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"name_presets"}},[n("span",[e._v("Name Pattern:")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label"},[n("span",[e._v(" ")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("thead",[n("tr",[n("th",{staticClass:"align-right"},[e._v("Meaning")]),e._v(" "),n("th",[e._v("Pattern")]),e._v(" "),n("th",{attrs:{width:"60%"}},[e._v("Result")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tfoot",[n("tr",[n("th",{attrs:{colspan:"3"}},[e._v("Use lower case if you want lower case names (eg. %sn, %e.n, %q_n etc)")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Show Name:")])]),e._v(" "),n("td",[e._v("%SN")]),e._v(" "),n("td",[e._v("Show Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%S.N")]),e._v(" "),n("td",[e._v("Show.Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%S_N")]),e._v(" "),n("td",[e._v("Show_Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Season Number:")])]),e._v(" "),n("td",[e._v("%S")]),e._v(" "),n("td",[e._v("2")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0S")]),e._v(" "),n("td",[e._v("02")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("XEM Season Number:")])]),e._v(" "),n("td",[e._v("%XS")]),e._v(" "),n("td",[e._v("2")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0XS")]),e._v(" "),n("td",[e._v("02")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Episode Number:")])]),e._v(" "),n("td",[e._v("%E")]),e._v(" "),n("td",[e._v("3")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0E")]),e._v(" "),n("td",[e._v("03")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("XEM Episode Number:")])]),e._v(" "),n("td",[e._v("%XE")]),e._v(" "),n("td",[e._v("3")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0XE")]),e._v(" "),n("td",[e._v("03")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Absolute Episode Number:")])]),e._v(" "),n("td",[e._v("%AB")]),e._v(" "),n("td",[e._v("003")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Xem Absolute Episode Number:")])]),e._v(" "),n("td",[e._v("%XAB")]),e._v(" "),n("td",[e._v("003")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Episode Name:")])]),e._v(" "),n("td",[e._v("%EN")]),e._v(" "),n("td",[e._v("Episode Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%E.N")]),e._v(" "),n("td",[e._v("Episode.Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%E_N")]),e._v(" "),n("td",[e._v("Episode_Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("td",{staticClass:"align-right"},[n("b",[e._v("Air Date:")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("td",{staticClass:"align-right"},[n("b",[e._v("Post-Processing Date:")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Quality:")])]),e._v(" "),n("td",[e._v("%QN")]),e._v(" "),n("td",[e._v("720p BluRay")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%Q.N")]),e._v(" "),n("td",[e._v("720p.BluRay")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%Q_N")]),e._v(" "),n("td",[e._v("720p_BluRay")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Scene Quality:")])]),e._v(" "),n("td",[e._v("%SQN")]),e._v(" "),n("td",[e._v("720p HDTV x264")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%SQ.N")]),e._v(" "),n("td",[e._v("720p.HDTV.x264")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%SQ_N")]),e._v(" "),n("td",[e._v("720p_HDTV_x264")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("td",{staticClass:"align-right"},[n("b",[e._v("Show premiere year:")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("i",{staticClass:"glyphicon glyphicon-info-sign",attrs:{title:"Multi-EP style is ignored"}}),e._v(" "),n("b",[e._v("Release Name:")])]),e._v(" "),n("td",[e._v("%RN")]),e._v(" "),n("td",[e._v("Show.Name.S02E03.HDTV.x264-RLSGROUP")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("i",{staticClass:"glyphicon glyphicon-info-sign",attrs:{title:"UNKNOWN_RELEASE_GROUP is used in place of RLSGROUP if it could not be properly detected"}}),e._v(" "),n("b",[e._v("Release Group:")])]),e._v(" "),n("td",[e._v("%RG")]),e._v(" "),n("td",[e._v("RLSGROUP")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("i",{staticClass:"glyphicon glyphicon-info-sign",attrs:{title:"If episode is proper/repack add 'proper' to name."}}),e._v(" "),n("b",[e._v("Release Type:")])]),e._v(" "),n("td",[e._v("%RT")]),e._v(" "),n("td",[e._v("PROPER")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"naming_multi_ep"}},[n("span",[e._v("Multi-Episode Style:")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"naming_anime"}},[n("span",[e._v("Add Absolute Number")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"naming_anime_only"}},[n("span",[e._v("Only Absolute Number")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"naming_anime_none"}},[n("span",[e._v("No Absolute Number")])])])}],!1,null,null,null).exports;const ie={name:"plot-info",directives:{tooltip:h.NS},props:{description:{type:String,required:!0}},computed:{plotInfoClass(){return""===this.description?"plotInfoNone":"plotInfo"}}};n(9223);const re=(0,l.Z)(ie,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return""!==e.description?n("img",{directives:[{name:"tooltip",rawName:"v-tooltip.right",value:{content:e.description},expression:"{content: description}",modifiers:{right:!0}}],class:e.plotInfoClass,attrs:{src:"images/info32.png",width:"16",height:"16",alt:""}}):e._e()}),[],!1,null,null,null).exports;const le={props:{text:String,title:String,percentage:[String,Number]},computed:{normalisedPercentage(){const e=Number(this.percentage);return 100===e?100:e>80?80:e>60?60:e>40?40:20}}};n(3553);const de=(0,l.Z)(le,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",e._b({staticClass:"progressbar hidden-print ui-progressbar ui-corner-all ui-widget ui-widget-content",attrs:{role:"progressbar"}},"div",{title:e.title},!1),[e.text?n("div",{staticClass:"progressbarText"},[e._v(e._s(e.text))]):e._e(),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.normalisedPercentage>=1,expression:"normalisedPercentage >= 1"}],class:["ui-progressbar-value","ui-corner-left","ui-widget-header","progress-"+e.normalisedPercentage],style:{width:e.percentage+"%"}})])}),[],!1,null,"2a6be2d2",null).exports;var ce=n(9755);const pe={name:"poster-size-slider",props:{min:{type:Number,default:75},max:{type:Number,default:250}},mounted(){const{setLayoutLocal:e,min:t,max:n}=this;let s;"undefined"!=typeof Storage&&(s=Number.parseInt(localStorage.getItem("posterSize"),10)),("number"!=typeof s||Number.isNaN(s))&&(s=188),e({key:"posterSize",value:s}),ce(this.$el).find("#posterSizeSlider").slider({min:t,max:n,value:s,change(t,n){"undefined"!=typeof Storage&&localStorage.setItem("posterSize",n.value),e({key:"posterSize",value:n.value})}})},methods:{...(0,u.nv)({setLayoutLocal:"setLayoutLocal"})}};const ue=(0,l.Z)(pe,(function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"show-option pull-right"},[e._v("\n Poster Size:\n "),n("div",{staticStyle:{width:"100px",display:"inline-block","margin-left":"7px"},attrs:{id:"posterSizeSlider"}})])}],!1,null,null,null).exports;const he={name:"quality-chooser",components:{AppLink:s.Z},props:{overallQuality:{type:Number,default:window.qualityChooserInitialQuality},keep:{type:String,default:null,validator:e=>["keep","show"].includes(e)},showSlug:{type:String}},data:()=>({lock:!1,allowedQualities:[],preferredQualities:[],curQualityPreset:null,archive:!1,archivedStatus:"",archiveButton:{text:"Archive episodes",disabled:!1}}),computed:{...(0,u.rn)({qualityValues:e=>e.config.consts.qualities.values,qualityPresets:e=>e.config.consts.qualities.presets,defaultQuality:e=>e.config.general.showDefaults.quality}),...(0,u.Se)(["getQualityPreset","splitQuality"]),initialQuality(){return void 0===this.overallQuality?this.defaultQuality:this.overallQuality},selectedQualityPreset:{get(){return this.curQualityPreset},set(e){const{curQualityPreset:t,setQualityFromPreset:n}=this,[s,o]=Array.isArray(e)?e:[e,t];n(s,o),this.curQualityPreset=s}},explanation(){const{allowedQualities:e,preferredQualities:t,qualityValues:n}=this;return n.reduce(((n,s)=>{let{value:o,name:a}=s;const i=t.includes(o);return(e.includes(o)||i)&&n.allowed.push(a),i&&n.preferred.push(a),n}),{allowed:[],preferred:[]})},validQualities(){return this.qualityValues.filter((e=>{let{key:t}=e;return"na"!==t}))}},asyncComputed:{async backloggedEpisodes(){const{showSlug:e,allowedQualities:t,preferredQualities:n}=this;if(!e)return null;if(t.length+n.length===0)return null;const s=`series/${e}/legacy/backlogged`,a={allowed:t.join(","),preferred:n.join(",")};let i,r=!1;try{i=await o.hi.get(s,{params:a})}catch(e){return{status:r,html:"Failed to get backlog prediction
    "+String(e)}}const l=i.data.new,d=i.data.existing,c=Math.abs(l-d);let p="Current backlog: "+d+" episodes
    ";if(-1===l||-1===d)p="No qualities selected";else if(l===d)p+="This change won't affect your backlogged episodes",r=!0;else{p+="
    New backlog: "+l+" episodes",p+="

    ";let e="";l>d?(p+="WARNING: ",e="increase",this.archive=!0):e="decrease",p+="Backlog will "+e+" by "+c+" episodes."}return{status:r,html:p}}},mounted(){this.setInitialPreset(this.initialQuality)},methods:{isQualityPreset(e){return void 0!==this.getQualityPreset({value:e})},setInitialPreset(e){const{isQualityPreset:t,keep:n}=this,s="keep"===n?"keep":t(e)?e:0;this.selectedQualityPreset=[s,e]},async archiveEpisodes(){this.archivedStatus="Archiving...";const e=`series/${this.showSlug}/operation`,t=await o.hi.post(e,{type:"ARCHIVE_EPISODES"});201===t.status?(this.archivedStatus="Successfully archived episodes",this.$asyncComputed.backloggedEpisodes.update()):204===t.status&&(this.archivedStatus="No episodes to be archived"),this.archiveButton.text="Finished",this.archiveButton.disabled=!0},setQualityFromPreset(e,t){if(null==e)return;"keep"===e?e=0:0===e&&"keep"===t?e=this.initialQuality:0!==e&&this.isQualityPreset(e)||null===t||(e=t);const{allowed:n,preferred:s}=this.splitQuality(e);this.allowedQualities=n,this.preferredQualities=s}},watch:{overallQuality(e){this.lock||this.setInitialPreset(e)},allowedQualities(e){0===e.length&&this.preferredQualities.length>0&&(this.preferredQualities=[]),this.lock=!0,this.$emit("update:quality:allowed",e),this.$nextTick((()=>{this.lock=!1}))},preferredQualities(e){this.lock=!0,this.$emit("update:quality:preferred",e),this.$nextTick((()=>{this.lock=!1}))}}};n(960);const me=(0,l.Z)(he,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("select",{directives:[{name:"model",rawName:"v-model.number",value:e.selectedQualityPreset,expression:"selectedQualityPreset",modifiers:{number:!0}}],staticClass:"form-control form-control-inline input-sm",attrs:{name:"quality_preset"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(t){var n="_value"in t?t._value:t.value;return e._n(n)}));e.selectedQualityPreset=t.target.multiple?n:n[0]}}},[e.keep?n("option",{attrs:{value:"keep"}},[e._v("< Keep >")]):e._e(),e._v(" "),n("option",{domProps:{value:0}},[e._v("Custom")]),e._v(" "),e._l(e.qualityPresets,(function(t){return n("option",{key:"quality-preset-"+t.key,domProps:{value:t.value}},[e._v("\n "+e._s(t.name)+"\n ")])}))],2),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:0===e.selectedQualityPreset,expression:"selectedQualityPreset === 0"}],attrs:{id:"customQualityWrapper"}},[e._m(0),e._v(" "),n("div",[n("h5",[e._v("Allowed")]),e._v(" "),n("select",{directives:[{name:"model",rawName:"v-model.number",value:e.allowedQualities,expression:"allowedQualities",modifiers:{number:!0}}],staticClass:"form-control form-control-inline input-sm",attrs:{name:"allowed_qualities",multiple:"multiple",size:e.validQualities.length},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(t){var n="_value"in t?t._value:t.value;return e._n(n)}));e.allowedQualities=t.target.multiple?n:n[0]}}},e._l(e.validQualities,(function(t){return n("option",{key:"quality-list-"+t.key,domProps:{value:t.value}},[e._v("\n "+e._s(t.name)+"\n ")])})),0)]),e._v(" "),n("div",[n("h5",[e._v("Preferred")]),e._v(" "),n("select",{directives:[{name:"model",rawName:"v-model.number",value:e.preferredQualities,expression:"preferredQualities",modifiers:{number:!0}}],staticClass:"form-control form-control-inline input-sm",attrs:{name:"preferred_qualities",multiple:"multiple",size:e.validQualities.length,disabled:0===e.allowedQualities.length},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(t){var n="_value"in t?t._value:t.value;return e._n(n)}));e.preferredQualities=t.target.multiple?n:n[0]}}},e._l(e.validQualities,(function(t){return n("option",{key:"quality-list-"+t.key,domProps:{value:t.value}},[e._v("\n "+e._s(t.name)+"\n ")])})),0)])]),e._v(" "),"keep"!==e.selectedQualityPreset?n("div",[e.allowedQualities.length+e.preferredQualities.length>=1?n("div",{attrs:{id:"qualityExplanation"}},[e._m(1),e._v(" "),0===e.preferredQualities.length?n("h5",[e._v("\n This will download "),n("b",[e._v("any")]),e._v(" of these qualities and then stops searching:\n "),n("label",{attrs:{id:"allowedExplanation"}},[e._v(e._s(e.explanation.allowed.join(", ")))])]):[n("h5",[e._v("\n Downloads "),n("b",[e._v("any")]),e._v(" of these qualities:\n "),n("label",{attrs:{id:"allowedPreferredExplanation"}},[e._v(e._s(e.explanation.allowed.join(", ")))])]),e._v(" "),n("h5",[e._v("\n But it will stop searching when one of these is downloaded:\n "),n("label",{attrs:{id:"preferredExplanation"}},[e._v(e._s(e.explanation.preferred.join(", ")))])])]],2):n("div",[e._v("Please select at least one allowed quality.")])]):e._e(),e._v(" "),e.backloggedEpisodes?n("div",[n("h5",{staticClass:"{ 'red-text': !backloggedEpisodes.status }",domProps:{innerHTML:e._s(e.backloggedEpisodes.html)}})]):e._e(),e._v(" "),e.archive?n("div",{attrs:{id:"archive"}},[n("h5",[n("b",[e._v("Archive downloaded episodes that are not currently in\n "),n("app-link",{staticClass:"backlog-link",attrs:{href:"manage/backlogOverview/",target:"_blank"}},[e._v("backlog")]),e._v(".")],1),e._v(" "),n("br"),e._v("Avoids unnecessarily increasing your backlog\n "),n("br")]),e._v(" "),n("button",{staticClass:"btn-medusa btn-inline",attrs:{disabled:e.archiveButton.disabled},on:{click:function(t){return t.preventDefault(),e.archiveEpisodes.apply(null,arguments)}}},[e._v("\n "+e._s(e.archiveButton.text)+"\n ")]),e._v(" "),n("h5",[e._v(e._s(e.archivedStatus))])]):e._e()])}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[n("b",[n("strong",[e._v("Preferred")])]),e._v(" qualities will replace those in "),n("b",[n("strong",[e._v("allowed")])]),e._v(", even if they are lower.\n ")])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("h5",[n("b",[e._v("Quality setting explanation:")])])}],!1,null,"7f0de7f3",null).exports;var ge=n(345);const ve={name:"scene-number-input",props:{show:Object,initialEpisode:Object},data(){return{sceneSeason:this.initialEpisode.scene.season,sceneEpisode:this.initialEpisode.scene.episode,isValid:null,numberingFrom:"indexer"}},mounted(){this.getSceneNumbering()},methods:{changeSceneNumbering(e){let{value:t}=e.currentTarget;t=t.replace(/[^\dXx]*/g,"");const n=this.initialEpisode.season,s=this.initialEpisode.episode;if(""===t)return void this.setEpisodeSceneNumbering(n,s,null,null);const o=t.match(/^(\d+)x(\d+)$/i),a=t.match(/^(\d+)$/i);let i=null,r=null;o?(i=o[1],r=o[2],this.isValid=!0):a?(i=n,r=a[1],this.isValid=!0):this.isValid=!1,this.isValid&&(this.sceneSeason=i,this.sceneEpisode=r,this.setEpisodeSceneNumbering(n,s,i,r))},async setEpisodeSceneNumbering(e,t,n,s){const{$snotify:a,show:i}=this;i.config.scene||a.warning("To change episode scene numbering you need to enable the show option `scene` first","Warning",{timeout:0}),""===n&&(n=null),""===s&&(s=null);try{const{data:r}=await o.fL.get("home/setSceneNumbering",{params:{showslug:i.id.slug,for_season:e,for_episode:t,scene_season:n,scene_episode:s}});r.success?null===r.sceneSeason||null===r.sceneEpisode?(this.sceneSeason="",this.sceneEpisode=""):(this.sceneSeason=r.sceneSeason,this.sceneEpisode=r.sceneEpisode):r.errorMessage?a.error(r.errorMessage,"Error"):a.error("Update failed","Error")}catch(e){a.error(`Could not set scene numbering for show ${i.id.slug} to ${n}x${s}`,"Error")}},getSceneNumbering(){const{show:e,initialEpisode:t}=this,{sceneNumbering:n,xemNumbering:s}=e,{season:o,episode:a}=t;if(e.config.scene||(this.sceneSeason=0,this.sceneEpisode=0),n.length>0){const e=n.filter((e=>e.source.season===o&&e.source.episode===a));e.length>0&&(this.sceneSeason=e[0].destination.season,this.sceneEpisode=e[0].destination.episode,this.numberingFrom="custom")}else if(s.length>0){const e=s.filter((e=>e.source.season===o&&e.source.episode===a));e.length>0&&(this.sceneSeason=e[0].destination.season,this.sceneEpisode=e[0].destination.episode,this.numberingFrom="xem")}}}};n(8892);const fe=(0,l.Z)(ve,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("input",{staticClass:"sceneSeasonXEpisode form-control input-scene addQTip",class:[!0===e.isValid?"isValid":"",!1===e.isValid?"isInvalid":"","custom"===e.numberingFrom?"isCustom":""],staticStyle:{padding:"0","text-align":"center","max-width":"60px"},attrs:{type:"text",placeholder:(e.sceneSeason||e.initialEpisode.season)+"x"+(e.sceneEpisode||e.initialEpisode.episode),size:"6",maxlength:"8",title:"Change this value if scene numbering differs from the indexer episode numbering. Generally used for non-anime shows."},domProps:{value:(e.sceneSeason||e.initialEpisode.season)+"x"+(e.sceneEpisode||e.initialEpisode.episode)},on:{change:e.changeSceneNumbering}})}),[],!1,null,"34e5a9e3",null).exports;const be={name:"scene-number-anime-input",props:{show:Object,initialEpisode:Object},data(){return{sceneAbsolute:this.initialEpisode.scene.absoluteNumber,isValid:null,numberingFrom:"indexer"}},mounted(){this.getSceneAbsoluteNumbering()},methods:{changeSceneNumbering(e){let{value:t}=e.currentTarget;t=t.replace(/[^\dXx]*/g,"");const n=this.initialEpisode.absoluteNumber,s=t.match(/^(\d{1,3})$/i);let o=null;s&&(o=s[1],this.isValid=!0,this.sceneAbsolute=o,this.setAbsoluteSceneNumbering(n,o))},async setAbsoluteSceneNumbering(e,t){const{$snotify:n,show:s}=this;s.config.scene||n.warning("To change an anime episode scene numbering you need to enable the show option `scene` first","Warning",{timeout:0}),""===t&&(t=null);try{const{data:a}=await o.fL.get("home/setSceneNumbering",{params:{showslug:s.id.slug,for_absolute:e,scene_absolute:t}});a.success?null===a.sceneAbsolute?this.sceneAbsolute="":this.sceneAbsolute=a.sceneAbsolute:a.errorMessage?n.error(a.errorMessage,"Error"):n.error("Update failed","Error")}catch(e){n.error(`Could not set absolute scene numbering for show ${s.id.slug} to ${t}`,"Error")}},getSceneAbsoluteNumbering(){const{initialEpisode:e,show:t}=this,{sceneAbsoluteNumbering:n,xemAbsoluteNumbering:s}=t;if(t.config.anime&&t.config.scene)if(Object.keys(n).length>0){const t=n.filter((t=>t.absolute===e.absoluteNumber));0!==t.length&&(this.sceneAbsolute=t[0].sceneAbsolute,this.numberingFrom="custom")}else if(Object.keys(s).length>0){const t=s.filter((t=>t.absolute===e.absoluteNumber));0!==t.length&&(this.sceneAbsolute=t[0].sceneAbsolute,this.numberingFrom="xem")}}}};n(5566);const Ae=(0,l.Z)(be,(function(){var e=this,t=e.$createElement;return(e._self._c||t)("input",{staticClass:"sceneAbsolute form-control input-scene addQTip",class:[!0===e.isValid?"isValid":"",!1===e.isValid?"isInvalid":"","custom"===e.numberingFrom?"isCustom":""],staticStyle:{padding:"0","text-align":"center","max-width":"60px"},attrs:{type:"text",placeholder:e.sceneAbsolute,size:"6",maxlength:"8",title:"Change this value if scene absolute numbering differs from the indexer absolute numbering. Generally used for anime shows."},domProps:{value:e.sceneAbsolute},on:{change:e.changeSceneNumbering}})}),[],!1,null,"d394b1e8",null).exports;var we=n(9755);const ye={name:"scroll-buttons",data:()=>({showToTop:!1,showLeftRight:!1}),methods:{scrollTop(){const{scrollTo:e}=this;e(we("body"))},scrollLeft(){we("div.horizontal-scroll").animate({scrollLeft:"-=153"},1e3,"easeOutQuad")},scrollRight(){we("div.horizontal-scroll").animate({scrollLeft:"+=153"},1e3,"easeOutQuad")},scrollTo(e){we("html, body").animate({scrollTop:we(e).offset().top},500,"linear")},initHorizontalScroll(){const e=we("div.horizontal-scroll").get();if(0===e.length)return;const t=e.map((e=>e.scrollWidth>e.clientWidth)).indexOf(!0);this.showLeftRight=t>=0}},mounted(){const{initHorizontalScroll:e}=this;e(),we(window).on("resize",(()=>{e()})),we(document).on("scroll",(()=>{we(window).scrollTop()>100?this.showToTop=!0:this.showToTop=!1}))}};n(968);const _e=(0,l.Z)(ye,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"scroll-buttons-wrapper"}},[n("div",{staticClass:"scroll-wrapper top",class:{show:e.showToTop},on:{click:function(t){return t.preventDefault(),e.scrollTop.apply(null,arguments)}}},[e._m(0)]),e._v(" "),n("div",{staticClass:"scroll-wrapper left",class:{show:e.showLeftRight}},[n("span",{staticClass:"scroll-left-inner"},[n("i",{staticClass:"glyphicon glyphicon-circle-arrow-left",on:{click:function(t){return t.preventDefault(),e.scrollLeft.apply(null,arguments)}}})])]),e._v(" "),n("div",{staticClass:"scroll-wrapper right",class:{show:e.showLeftRight}},[n("span",{staticClass:"scroll-right-inner"},[n("i",{staticClass:"glyphicon glyphicon-circle-arrow-right",on:{click:function(t){return t.preventDefault(),e.scrollRight.apply(null,arguments)}}})])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"scroll-top-inner"},[t("i",{staticClass:"glyphicon glyphicon-circle-arrow-up"})])}],!1,null,null,null).exports;const xe={name:"select-list",components:{AppLink:s.Z},props:{searchType:{type:String,default:"forced",required:!0,validator:e=>["backlog","manual"].includes(e)},showSlug:{type:String,required:!0},episode:{type:Object,required:!0}},data:()=>({subtitleComponentInstance:null,failedSearchEpisodes:[],backlogSearchEpisodes:[]}),computed:{...(0,u.rn)({stateSearch:e=>e.config.search})},methods:{retryDownload(e){const{stateSearch:t}=this;return t.general.failedDownloads.enabled&&["Snatched","Snatched (Proper)","Snatched (Best)","Downloaded"].includes(e.status)},search(e,t){const{showSlug:n}=this;let s={};s={showSlug:n,episodes:[e.slug],options:{}},this.$refs[`search-${e.slug}`].src="images/loading16-dark.gif",api.put(`search/${t}`,s).then((t=>{console.info(`started search for show: ${n} episode: ${e.slug}`),this.$refs[`search-${e.slug}`].src="images/queued.png",this.$refs[`search-${e.slug}`].disabled=!0})).catch((t=>{console.error(String(t)),this.$refs[`search-${e.slug}`].src="images/no16.png"})).finally((()=>{this.failedSearchEpisodes=[],this.backlogSearchEpisodes=[]}))},queueSearch(e){const{$modal:t,search:n,retryDownload:s}=this,o=e.slug;if(e){if(!0===this.$refs[`search-${o}`].disabled)return;s(e)?t.show("query-mark-failed-and-search",{episode:e}):n(e,"backlog")}},beforeBacklogSearchModalClose(e){this.backlogSearchEpisodes=e.params.episodes},beforeFailedSearchModalClose(e){this.failedSearchEpisodes=e.params.episodes}}};n(1527);const Ce=(0,l.Z)(xe,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"search-wrapper"},["backlog"===e.searchType?n("img",{ref:"search-"+e.episode.slug,staticClass:"epForcedSearch",attrs:{id:e.showSlug+"x"+e.episode.season+"x"+e.episode.episode,name:e.showSlug+"x"+e.episode.season+"x"+e.episode.episode,src:"images/search16.png",height:"16",alt:e.retryDownload(e.episode)?"retry":"search",title:e.retryDownload(e.episode)?"Retry Download":"Forced Seach"},on:{click:function(t){return e.queueSearch(e.episode)}}}):e._e(),e._v(" "),"manual"===e.searchType?n("app-link",{staticClass:"epManualSearch",attrs:{id:e.showSlug+"x"+e.episode.episode,name:e.showSlug+"x"+e.episode.season+"x"+e.episode.episode,href:"home/snatchSelection?showslug="+e.showSlug+"&season="+e.episode.season+"&episode="+e.episode.episode}},[n("img",{attrs:{"data-ep-manual-search":"",src:"images/manualsearch.png",width:"16",height:"16",alt:"search",title:"Manual Search"}})]):e._e(),e._v(" "),n("modal",{attrs:{name:"query-start-backlog-search",height:"auto",width:"80%"},on:{"before-open":e.beforeBacklogSearchModalClose}},[n("transition",{attrs:{name:"modal"}},[n("div",{staticClass:"modal-mask"},[n("div",{staticClass:"modal-wrapper"},[n("div",{staticClass:"modal-content"},[n("div",{staticClass:"modal-header"},[n("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"modal","aria-hidden":"true"}},[e._v("×")]),e._v(" "),n("h4",{staticClass:"modal-title"},[e._v("Start search?")])]),e._v(" "),n("div",{staticClass:"modal-body"},[n("p",[e._v("Some episodes have been changed to 'Wanted'. Do you want to trigger a backlog search for these "+e._s(e.backlogSearchEpisodes.length)+" episode(s)")])]),e._v(" "),n("div",{staticClass:"modal-footer"},[n("button",{staticClass:"btn-medusa btn-danger",attrs:{type:"button","data-dismiss":"modal"},on:{click:function(t){return e.$modal.hide("query-start-backlog-search")}}},[e._v("No")]),e._v(" "),n("button",{staticClass:"btn-medusa btn-success",attrs:{type:"button","data-dismiss":"modal"},on:{click:function(t){e.search(e.backlogSearchEpisodes,"backlog"),e.$modal.hide("query-start-backlog-search")}}},[e._v("Yes")])])])])])])],1),e._v(" "),n("modal",{attrs:{name:"query-mark-failed-and-search",height:"auto",width:"80%"},on:{"before-open":e.beforeFailedSearchModalClose}},[n("transition",{attrs:{name:"modal"}},[n("div",{staticClass:"modal-mask"},[n("div",{staticClass:"modal-wrapper"},[n("div",{staticClass:"modal-content"},[n("div",{staticClass:"modal-header"},[e._v("\n Mark episode as failed and search?\n ")]),e._v(" "),n("div",{staticClass:"modal-body"},[n("p",[e._v("Starting to search for the episode")]),e._v(" "),e.failedSearchEpisodes&&1===e.failedSearchEpisodes.length?n("p",[e._v("Would you also like to mark episode "+e._s(e.failedSearchEpisodes[0].slug)+' as "failed"? This will make sure the episode cannot be downloaded again')]):e.failedSearchEpisodes?n("p",[e._v("Would you also like to mark episodes "+e._s(e.failedSearchEpisodes.map((function(e){return e.slug})).join(", "))+' as "failed"? This will make sure the episode cannot be downloaded again')]):e._e()]),e._v(" "),n("div",{staticClass:"modal-footer"},[n("button",{staticClass:"btn-medusa btn-danger",attrs:{type:"button","data-dismiss":"modal"},on:{click:function(t){e.search(e.failedSearchEpisodes,"backlog"),e.$modal.hide("query-mark-failed-and-search")}}},[e._v("No")]),e._v(" "),n("button",{staticClass:"btn-medusa btn-success",attrs:{type:"button","data-dismiss":"modal"},on:{click:function(t){e.search(e.failedSearchEpisodes,"failed"),e.$modal.hide("query-mark-failed-and-search")}}},[e._v("Yes")]),e._v(" "),n("button",{staticClass:"btn-medusa btn-danger",attrs:{type:"button","data-dismiss":"modal"},on:{click:function(t){return e.$modal.hide("query-mark-failed-and-search")}}},[e._v("Cancel")])])])])])])],1)],1)}),[],!1,null,"9ee8b12a",null).exports;var ke=n(7879),Se=n(3279),Ie=n.n(Se);const Ee={name:"search-template-custom",directives:{tooltip:h.NS},plugins:{AsyncComputed:ke.Z},props:{format:{type:String,default:""},show:{type:Object,default:null},animeType:{type:Number,default:3}},data:()=>({showFormat:null,patternExample:"",validated:!1,isValidMessage:"",seasonPattern:!1,showExample:!1,selectedTitle:null,addPattern:"",enabled:!0,separator:" ",episodeOrSeason:"episode",notification:""}),watch:{addPattern(e){e&&(this.notification="testing the pattern as soon as you stop typing",this.debouncedIsValid(),this.debouncedTestNaming())}},created(){this.debouncedIsValid=Ie()(this.isValid,500),this.debouncedTestNaming=Ie()(this.testNaming,500)},mounted(){const{show:e}=this,{title:t}=e;this.selectedTitle={indexer:e.indexer,seriesId:e.id[e.indexer],season:-1,title:t}},computed:{selectTitles(){const{show:e}=this,{config:t,title:n}=e,{aliases:s}=t;return[{indexer:e.indexer,seriesId:e.id[e.indexer],season:-1,title:n},...s]},templateExists(){const{addPattern:e,selectedTitle:t,show:n}=this,{config:s}=n,o=`%SN${e}`;return s.searchTemplates.find((e=>e.title===t.title&&e.season===t.season&&e.template===o))}},methods:{titleOptionDescription(e){let t="";return e.season>-1&&(t=` (Season ${e.season} exception)`),e.title+t},async testNaming(){const{animeType:e,addPattern:t,format:n,selectedTitle:s}=this;if(!t)return;console.debug(`Test pattern ${t}`);let a={pattern:`${s.title}${t}`};const i=new Map([["anime",{anime_type:e}],["sports",{sports:!0}],["airByDate",{abd:!0}]]);""!==n&&(a={...a,...i.get(n)});let r="";try{r=await o.fL.get("config/postProcessing/testNaming",{params:a,timeout:2e4}),this.patternExample=r.data}catch(e){console.warn(e)}},isValid(){const{addPattern:e}=this;if(e){if(!e.startsWith(" ")&&!e.startsWith("."))return this.validated=!1,void(this.isValidMessage="Dont forget to start the pattern with a separator. For example a dot or space.");if(this.templateExists)return this.validated=!1,void(this.isValidMessage="This template combination is already in use");this.validated=!0,this.isValidMessage=""}},add(){const{show:e,addPattern:t,episodeOrSeason:n,enabled:s,selectedTitle:o}=this,{title:a}=e;this.$emit("input",{pattern:`%SN${t}`,seasonSearch:"season"===n,enabled:s,title:o}),this.selectedTitle={indexer:e.indexer,seriesId:e.id[e.indexer],season:-1,title:a},this.addPattern="",this.episodeOrSeason="episode"}}};n(1670);const Pe=(0,l.Z)(Ee,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"form-group",attrs:{id:"search-template-custom"}},[e._m(0),e._v(" "),n("div",{staticClass:"row"},[n("div",{staticClass:"col-lg-12 content"},[n("div",{staticClass:"row"},[e._m(1),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedTitle,expression:"selectedTitle"}],staticClass:"form-control input-sm",attrs:{id:"default_page",name:"default_page"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedTitle=t.target.multiple?n:n[0]}}},e._l(e.selectTitles,(function(t){return n("option",{key:t.title,domProps:{value:t}},[e._v(e._s(e.titleOptionDescription(t))+"\n ")])})),0)])]),e._v(" "),n("div",{staticClass:"row"},[e._m(2),e._v(" "),n("div",{staticClass:"col-sm-10"},[n("div",{staticClass:"checkbox"},[n("label",{attrs:{for:"episode"}},[e._v("Episode")]),e._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:e.episodeOrSeason,expression:"episodeOrSeason"}],attrs:{type:"radio",id:"episode"},domProps:{value:"episode",checked:e._q(e.episodeOrSeason,"episode")},on:{change:function(t){e.episodeOrSeason="episode"}}}),e._v(" "),n("label",{attrs:{for:"episode"}},[e._v("Season")]),e._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:e.episodeOrSeason,expression:"episodeOrSeason"}],attrs:{type:"radio",id:"season"},domProps:{value:"season",checked:e._q(e.episodeOrSeason,"season")},on:{change:function(t){e.episodeOrSeason="season"}}})])])]),e._v(" "),n("div",{staticClass:"row"},[e._m(3),e._v(" "),n("div",{staticClass:"col-sm-10 pattern"},[e.selectedTitle?n("span",{ref:"inputTitle"},[e._v("%SN")]):e._e(),e._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:e.addPattern,expression:"addPattern"}],staticClass:"form-control-inline-max input-sm max-input350 search-pattern",staticStyle:{"padding-left":"50px"},attrs:{type:"text",name:"new_pattern",disabled:!e.selectedTitle},domProps:{value:e.addPattern},on:{input:function(t){t.target.composing||(e.addPattern=t.target.value)}}}),e._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:e.enabled,expression:"enabled"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.enabled)?e._i(e.enabled,null)>-1:e.enabled},on:{change:function(t){var n=e.enabled,s=t.target,o=!!s.checked;if(Array.isArray(n)){var a=e._i(n,null);s.checked?a<0&&(e.enabled=n.concat([null])):a>-1&&(e.enabled=n.slice(0,a).concat(n.slice(a+1)))}else e.enabled=o}}}),e._v(" "),!e.validated&&e.isValidMessage?n("p",[e._v(e._s(e.isValidMessage))]):e._e()])]),e._v(" "),n("div",{staticClass:"row"},[e._m(4),e._v(" "),n("div",{staticClass:"col-sm-10",class:{"error-message":!e.validated}},[e._v("\n "+e._s(e.patternExample)+"\n ")])]),e._v(" "),n("div",{staticClass:"row"},[n("div",{staticClass:"col-sm-2"}),e._v(" "),n("div",{staticClass:"col-sm-10 vertical-align"},[n("input",{staticClass:"btn-medusa pull-left button",attrs:{id:"submit",type:"submit",value:"Add custom exception",disabled:!e.validated},on:{click:e.add}}),e._v(" "),n("p",[e._v(e._s(e.notification))])])])])])])}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"row"},[n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"default_templates"}},[n("span",[e._v("Add Custom Template")])])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label"},[n("span",[e._v("Title:")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label"},[n("span",[e._v("Episode or Season search:")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label"},[n("span",[e._v("Search Template:")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label"},[n("span",[e._v("example:")])])])}],!1,null,"306c900d",null).exports;const Te={name:"search-template-pattern",directives:{tooltip:h.NS},props:{format:{type:String,default:""},template:{type:Object},season:{type:Boolean,default:!1},animeType:{type:Number,default:3}},data:()=>({showFormat:null,searchTemplate:"",searchTemplateExample:"",showExample:!1,validated:!0,seasonPattern:!1}),computed:{tooltipContent(){const{searchTemplate:e}=this;return e.default?"This template has been generated based on a scene exception / title. It's a default template and cannot be modified. It can only be enabled/disabled.":"You can modify this template."}},methods:{getDateFormat:e=>(0,ne.Z)(new Date,e),async testNaming(){const{animeType:e,searchTemplate:t,showFormat:n}=this;console.debug(`Test pattern ${t.template}`);let s={pattern:t.template};const a=new Map([["anime",{anime_type:e}],["sports",{sports:!0}],["airByDate",{abd:!0}]]);""!==n&&(s={...s,...a.get(n)});let i="";try{i=await o.fL.get("config/postProcessing/testNaming",{params:s,timeout:2e4}),this.searchTemplateExample=i.data}catch(e){console.warn(e)}return i},updateExample(){const{debouncedTestNaming:e}=this;e()},update(){this.$nextTick((()=>{this.$emit("change",{template:this.searchTemplate,format:this.showFormat})}))}},mounted(){const{format:e,season:t,template:n}=this;this.searchTemplate=n,this.showFormat=e,this.seasonPattern=t,this.updateExample()},created(){this.debouncedTestNaming=Ie()(this.testNaming,500)},watch:{template(e){this.searchTemplate=e,this.updateExample()},animeType(){this.updateExample()}}};n(9310);const $e={name:"search-template-container",components:{SearchTemplateCustom:Pe,SearchTemplatePattern:(0,l.Z)(Te,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"search-template-pattern"}},[n("div",{staticClass:"row"},[n("div",{staticClass:"col-sm-12 content"},[n("div",{staticClass:"template-wrapper"},[n("span",{staticClass:"template-title"},[e._v(e._s(e.searchTemplate.title))]),e._v(" "),n("img",{directives:[{name:"tooltip",rawName:"v-tooltip.right",value:{content:-1===e.searchTemplate.season?"Show Exception":"Season "+e.searchTemplate.season+" Exception"},expression:"{\n content: searchTemplate.season === -1 ? 'Show Exception' : `Season ${searchTemplate.season} Exception`\n }",modifiers:{right:!0}}],staticStyle:{"margin-bottom":"2px"},attrs:{src:"images/info32.png",width:"16",height:"16",alt:""}}),e._v(" "),e.searchTemplate.default?e._e():n("img",{staticClass:"template-remove",attrs:{src:"images/no16.png"},on:{click:function(t){return e.$emit("remove",e.searchTemplate)}}}),e._v(" "),n("div",{directives:[{name:"tooltip",rawName:"v-tooltip.right",value:{content:e.tooltipContent},expression:"{ content: tooltipContent }",modifiers:{right:!0}}],staticClass:"tooltip-wrapper-pattern"},[n("div",{staticClass:"template-body"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.searchTemplate.template,expression:"searchTemplate.template"}],staticClass:"form-control-inline-max input-sm max-input350 search-pattern",class:{invalid:!e.validated},attrs:{type:"text",name:"search_pattern",disabled:"disabled"},domProps:{value:e.searchTemplate.template},on:{input:function(t){t.target.composing||e.$set(e.searchTemplate,"template",t.target.value)}}}),e._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:e.searchTemplate.enabled,expression:"searchTemplate.enabled"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.searchTemplate.enabled)?e._i(e.searchTemplate.enabled,null)>-1:e.searchTemplate.enabled},on:{change:function(t){var n=e.searchTemplate.enabled,s=t.target,o=!!s.checked;if(Array.isArray(n)){var a=e._i(n,null);s.checked?a<0&&e.$set(e.searchTemplate,"enabled",n.concat([null])):a>-1&&e.$set(e.searchTemplate,"enabled",n.slice(0,a).concat(n.slice(a+1)))}else e.$set(e.searchTemplate,"enabled",o)}}}),e._v(" "),n("i",{staticClass:"show-template glyphicon",class:"glyphicon-eye-"+(e.showExample?"close":"open"),attrs:{title:"Show template example"},on:{click:function(t){e.showExample=!e.showExample}}})])])]),e._v(" "),e.showExample?n("span",{staticClass:"template-example",class:{invalid:!e.validated},attrs:{name:"search_pattern"}},[e._v("Example: "+e._s(e.searchTemplateExample)+"\n ")]):e._e()])])])}),[],!1,null,"3d65af5e",null).exports},props:{show:{type:Object,default:null}},data:()=>({animeType:3,newTemplate:"",newTemplateShowExample:!1,newTemplateEnabled:!0}),computed:{searchTemplates(){const{show:e}=this,{config:t}=e,{searchTemplates:n}=t;return n},defaultEpisodeTemplates(){const{searchTemplates:e}=this;return e?e.filter((e=>e.default&&!e.seasonSearch)):[]},defaultSeasonTemplates(){const{searchTemplates:e}=this;return e?e.filter((e=>e.default&&e.seasonSearch)):[]},customTemplates(){const{searchTemplates:e}=this;return e?e.filter((e=>!e.default)):[]},showFormat(){const{show:e}=this,{config:t}=e;return["anime","sports","airByDate"].find((e=>t[e]))}},methods:{...(0,u.nv)(["addSearchTemplate","removeSearchTemplate"]),getDateFormat:e=>(0,ne.Z)(new Date,e),update(){const{templates:e,format:t}=this;this.$nextTick((()=>{this.$emit("change",{templates:e,format:t})}))},add(e){const{show:t,addSearchTemplate:n}=this;this.searchTemplates.find((t=>t.template===e.pattern&&t.title===e.title))?this.$snotify.error("Error while trying to add the template","Can't add a pattern that already exists!"):(n({show:t,template:{title:e.title.title,template:e.pattern,enabled:e.enabled,season:e.title.season,default:!1,seasonSearch:e.seasonSearch}}),this.update())},remove(e){const{show:t,removeSearchTemplate:n}=this;n({show:t,template:e}),this.update()}}};n(4121);const De=(0,l.Z)($e,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"search-template-container"}},[n("vue-snotify"),e._v(" "),n("div",{staticClass:"form-group"},[n("div",{staticClass:"row"},[e._m(0),e._v(" "),n("div",{staticClass:"col-sm-10 content"},e._l(e.defaultEpisodeTemplates,(function(t){return n("search-template-pattern",e._b({key:t.id},"search-template-pattern",{template:t,format:e.showFormat,animeType:e.animeType},!1))})),1)])]),e._v(" "),n("div",{staticClass:"form-group"},[n("div",{staticClass:"row"},[e._m(1),e._v(" "),n("div",{staticClass:"col-sm-10 content"},e._l(e.defaultSeasonTemplates,(function(t){return n("search-template-pattern",e._b({key:t.id},"search-template-pattern",{template:t,format:e.showFormat,animeType:e.animeType},!1))})),1)])]),e._v(" "),n("div",{staticClass:"form-group"},[n("div",{staticClass:"row"},[e._m(2),e._v(" "),n("div",{staticClass:"col-sm-10 content"},e._l(e.customTemplates,(function(t){return n("search-template-pattern",e._b({key:t.template,on:{remove:e.remove}},"search-template-pattern",{template:t,format:e.showFormat,animeType:e.animeType},!1))})),1)])]),e._v(" "),n("search-template-custom",e._b({on:{input:e.add}},"search-template-custom",{show:e.show,animeType:e.animeType,format:e.showFormat},!1)),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:"anime"===e.showFormat,expression:"showFormat === 'anime'"}]},[n("div",{staticClass:"row"},[e.animeType>0?n("div",{staticClass:"form-group"},[e._m(3),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.animeType,expression:"animeType"}],attrs:{type:"radio",name:"naming_anime",id:"naming_anime"},domProps:{value:1,checked:e._q(e.animeType,1)},on:{change:function(t){e.animeType=1}}}),e._v(" "),n("span",[e._v("Add the absolute number to the season/episode format?")]),e._v(" "),n("p",[e._v("Only applies to animes. (e.g. S15E45 - 310 vs S15E45)")])])]):e._e()]),e._v(" "),n("div",{staticClass:"row"},[e.animeType>0?n("div",{staticClass:"form-group"},[e._m(4),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.animeType,expression:"animeType"}],attrs:{type:"radio",name:"naming_anime",id:"naming_anime_only"},domProps:{value:2,checked:e._q(e.animeType,2)},on:{change:function(t){e.animeType=2}}}),e._v(" "),n("span",[e._v("Replace season/episode format with absolute number")]),e._v(" "),n("p",[e._v("Only applies to animes.")])])]):e._e()]),e._v(" "),n("div",{staticClass:"row"},[e.animeType>0?n("div",{staticClass:"form-group"},[e._m(5),e._v(" "),n("div",{staticClass:"col-sm-10 content"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.animeType,expression:"animeType"}],attrs:{type:"radio",name:"naming_anime",id:"naming_anime_none"},domProps:{value:3,checked:e._q(e.animeType,3)},on:{change:function(t){e.animeType=3}}}),e._v(" "),n("span",[e._v("Don't include the absolute number")]),e._v(" "),n("p",[e._v("Only applies to animes.")])])]):e._e()])]),e._v(" "),n("div",{staticClass:"nocheck",attrs:{id:"naming-key"}},[n("table",{staticClass:"Key"},[e._m(6),e._v(" "),e._m(7),e._v(" "),n("tbody",[e._m(8),e._v(" "),e._m(9),e._v(" "),e._m(10),e._v(" "),e._m(11),e._v(" "),e._m(12),e._v(" "),e._m(13),e._v(" "),e._m(14),e._v(" "),e._m(15),e._v(" "),e._m(16),e._v(" "),e._m(17),e._v(" "),e._m(18),e._v(" "),e._m(19),e._v(" "),e._m(20),e._v(" "),e._m(21),e._v(" "),e._m(22),e._v(" "),e._m(23),e._v(" "),n("tr",[e._m(24),e._v(" "),n("td",[e._v("%M")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("M")))])]),e._v(" "),n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%D")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("d")))])]),e._v(" "),n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%Y")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("yyyy")))])]),e._v(" "),n("tr",[e._m(25),e._v(" "),n("td",[e._v("%CM")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("M")))])]),e._v(" "),n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%CD")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("d")))])]),e._v(" "),n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%CY")]),e._v(" "),n("td",[e._v(e._s(e.getDateFormat("yyyy")))])]),e._v(" "),e._m(26),e._v(" "),e._m(27),e._v(" "),e._m(28),e._v(" "),e._m(29),e._v(" "),e._m(30),e._v(" "),e._m(31),e._v(" "),e._m(32),e._v(" "),e._m(33),e._v(" "),e._m(34)])])])],1)}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"default_templates"}},[n("span",[e._v("Default Episode Templates")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"default_templates"}},[n("span",[e._v("Default Season Templates")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-sm-2"},[n("label",{staticClass:"control-label",attrs:{for:"default_templates"}},[n("span",[e._v("Custom Templates")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"col-sm-2 control-label",attrs:{for:"naming_anime"}},[n("span",[e._v("Add Absolute Number")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"col-sm-2 control-label",attrs:{for:"naming_anime_only"}},[n("span",[e._v("Only Absolute Number")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"col-sm-2 control-label",attrs:{for:"naming_anime_none"}},[n("span",[e._v("No Absolute Number")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("thead",[n("tr",[n("th",{staticClass:"align-right"},[e._v("Meaning")]),e._v(" "),n("th",[e._v("Pattern")]),e._v(" "),n("th",{attrs:{width:"60%"}},[e._v("Result")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tfoot",[n("tr",[n("th",{attrs:{colspan:"3"}},[e._v("\n Use lower case if you want lower case names (eg.\n %sn, %e.n, %q_n etc)\n ")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Show Name:")])]),e._v(" "),n("td",[e._v("%SN")]),e._v(" "),n("td",[e._v("Show Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%S.N")]),e._v(" "),n("td",[e._v("Show.Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%S_N")]),e._v(" "),n("td",[e._v("Show_Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Season Number:")])]),e._v(" "),n("td",[e._v("%S")]),e._v(" "),n("td",[e._v("2")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0S")]),e._v(" "),n("td",[e._v("02")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("XEM Season Number:")])]),e._v(" "),n("td",[e._v("%XS")]),e._v(" "),n("td",[e._v("2")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0XS")]),e._v(" "),n("td",[e._v("02")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Episode Number:")])]),e._v(" "),n("td",[e._v("%E")]),e._v(" "),n("td",[e._v("3")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0E")]),e._v(" "),n("td",[e._v("03")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("XEM Episode Number:")])]),e._v(" "),n("td",[e._v("%XE")]),e._v(" "),n("td",[e._v("3")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%0XE")]),e._v(" "),n("td",[e._v("03")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Absolute Episode Number:")])]),e._v(" "),n("td",[e._v("%AB")]),e._v(" "),n("td",[e._v("003")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Xem Absolute Episode Number:")])]),e._v(" "),n("td",[e._v("%XAB")]),e._v(" "),n("td",[e._v("003")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("b",[e._v("Episode Name:")])]),e._v(" "),n("td",[e._v("%EN")]),e._v(" "),n("td",[e._v("Episode Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%E.N")]),e._v(" "),n("td",[e._v("Episode.Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%E_N")]),e._v(" "),n("td",[e._v("Episode_Name")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("td",{staticClass:"align-right"},[n("b",[e._v("Air Date:")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("td",{staticClass:"align-right"},[n("b",[e._v("Post-Processing Date:")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Quality:")])]),e._v(" "),n("td",[e._v("%QN")]),e._v(" "),n("td",[e._v("720p BluRay")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%Q.N")]),e._v(" "),n("td",[e._v("720p.BluRay")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%Q_N")]),e._v(" "),n("td",[e._v("720p_BluRay")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("b",[e._v("Scene Quality:")])]),e._v(" "),n("td",[e._v("%SQN")]),e._v(" "),n("td",[e._v("720p HDTV x264")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%SQ.N")]),e._v(" "),n("td",[e._v("720p.HDTV.x264")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",[e._v(" ")]),e._v(" "),n("td",[e._v("%SQ_N")]),e._v(" "),n("td",[e._v("720p_HDTV_x264")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("i",{staticClass:"glyphicon glyphicon-info-sign",attrs:{title:"Multi-EP style is ignored"}}),e._v(" "),n("b",[e._v("Release Name:")])]),e._v(" "),n("td",[e._v("%RN")]),e._v(" "),n("td",[e._v("Show.Name.S02E03.HDTV.x264-RLSGROUP")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",[n("td",{staticClass:"align-right"},[n("i",{staticClass:"glyphicon glyphicon-info-sign",attrs:{title:"UNKNOWN_RELEASE_GROUP is used in place of RLSGROUP if it could not be properly detected"}}),e._v(" "),n("b",[e._v("Release Group:")])]),e._v(" "),n("td",[e._v("%RG")]),e._v(" "),n("td",[e._v("RLSGROUP")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{staticClass:"even"},[n("td",{staticClass:"align-right"},[n("i",{staticClass:"glyphicon glyphicon-info-sign",attrs:{title:"If episode is proper/repack add 'proper' to name."}}),e._v(" "),n("b",[e._v("Release Type:")])]),e._v(" "),n("td",[e._v("%RT")]),e._v(" "),n("td",[e._v("PROPER")])])}],!1,null,null,null).exports;const Be={name:"select-list",props:{listItems:{type:Array,default:()=>[],required:!0},unique:{type:Boolean,default:!0,required:!1},csvEnabled:{type:Boolean,default:!1,required:!1},disabled:{type:Boolean,default:!1}},data(){return{editItems:[],newItem:"",indexCounter:0,csv:"",csvMode:this.csvEnabled}},mounted(){this.editItems=this.sanitize(this.listItems),this.csv=this.editItems.map((e=>e.value)).join(", ")},created(){const e=this.$watch("listItems",(()=>{e(),this.editItems=this.sanitize(this.listItems),this.csv=this.editItems.map((e=>e.value)).join(", ")}))},methods:{addItem(e){this.unique&&this.editItems.find((t=>t.value===e))||(this.editItems.push({id:this.indexCounter,value:e}),this.indexCounter+=1)},addNewItem(){const{newItem:e,editItems:t}=this;""!==this.newItem&&(this.addItem(e),this.newItem="",this.$emit("change",t))},deleteItem(e){this.editItems=this.editItems.filter((t=>t!==e)),this.$refs.newItemInput.focus(),this.$emit("change",this.editItems)},removeEmpty(e){return""===e.value&&this.deleteItem(e)},sanitize(e){return e?e.map((e=>"string"==typeof e?(this.indexCounter+=1,{id:this.indexCounter-1,value:e}):e)):[]},syncValues(){this.csvMode?(this.editItems=[],this.csv.split(",").forEach((e=>{e.trim()&&this.addItem(e.trim())})),this.$emit("change",this.editItems)):this.csv=this.editItems.map((e=>e.value)).join(", ")},switchFields(){this.syncValues(),this.csvMode=!this.csvMode}},watch:{csv(){this.syncValues()},listItems(){this.editItems=this.sanitize(this.listItems),this.newItem=""}}};n(8402);const Ne=(0,l.Z)(Be,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",e._b({staticClass:"select-list max-width"},"div",{disabled:e.disabled},!1),[n("i",{staticClass:"switch-input glyphicon glyphicon-refresh",attrs:{title:"Switch between a list and comma separated values"},on:{click:function(t){return e.switchFields()}}}),e._v(" "),e.csvMode?n("div",{staticClass:"csv"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.csv,expression:"csv"}],staticClass:"form-control input-sm",attrs:{type:"text",placeholder:"add values comma separated"},domProps:{value:e.csv},on:{input:function(t){t.target.composing||(e.csv=t.target.value)}}})]):n("ul",[e._l(e.editItems,(function(t){return n("li",{key:t.id},[n("div",{staticClass:"input-group"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.value,expression:"item.value"}],staticClass:"form-control input-sm",attrs:{disabled:"",type:"text"},domProps:{value:t.value},on:{input:[function(n){n.target.composing||e.$set(t,"value",n.target.value)},function(n){return e.removeEmpty(t)}]}}),e._v(" "),n("div",{staticClass:"input-group-btn",on:{click:function(n){return e.deleteItem(t)}}},[e._m(0,!0)])])])})),e._v(" "),n("div",{staticClass:"new-item"},[n("div",{staticClass:"input-group"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.newItem,expression:"newItem"}],ref:"newItemInput",staticClass:"form-control input-sm",attrs:{type:"text",placeholder:"add new values per line"},domProps:{value:e.newItem},on:{input:function(t){t.target.composing||(e.newItem=t.target.value)}}}),e._v(" "),n("div",{staticClass:"input-group-btn",on:{click:function(t){return e.addNewItem()}}},[e._m(1)])])]),e._v(" "),e.newItem.length>0?n("div",{staticClass:"new-item-help"},[e._v("\n Click "),n("i",{staticClass:"glyphicon glyphicon-plus"}),e._v(" to finish adding the value.\n ")]):e._e()],2)])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"btn btn-default input-sm",staticStyle:{"font-size":"14px","background-color":"rgb(238, 238, 238)"}},[t("i",{staticClass:"glyphicon glyphicon-remove",attrs:{title:"Remove"}})])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"btn btn-default input-sm",staticStyle:{"font-size":"14px"}},[t("i",{staticClass:"glyphicon glyphicon-plus",attrs:{title:"Add"}})])}],!1,null,"1843461f",null).exports;const Le={name:"select-trakt-list",computed:{...(0,u.rn)({availableLists:e=>e.config.general.recommended.trakt.availableLists,selectedLists:e=>e.config.general.recommended.trakt.selectedLists,general:e=>e.config.general})},methods:{...(0,u.nv)(["setTraktSelectedLists"]),saveLists(e,t){const{selectedLists:n,setTraktSelectedLists:s}=this,o=e.currentTarget.checked;o&&!n.includes(t)&&n.push(t);s(n.filter((e=>e!==t||t&&o)))}}};n(9209);const Oe=(0,l.Z)(Le,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"select-trakt-list max-width"},[n("ul",e._l(e.availableLists,(function(t){return n("li",{key:t},[n("div",{staticClass:"trakt-list-group"},[n("input",{staticClass:"form-control input-sm available-list",attrs:{disabled:"",type:"text"},domProps:{value:t}}),e._v(" "),n("input",{attrs:{type:"checkbox"},domProps:{checked:e.selectedLists.find((function(e){return e===t}))},on:{input:function(n){return e.saveLists(n,t)}}})])])})),0)])}),[],!1,null,"20efe074",null).exports;const Re={name:"show-selector",props:{showSlug:String,followSelection:{type:Boolean,default:!1},placeHolder:String,selectClass:{type:String,default:"select-show form-control input-sm-custom"}},data:()=>({$_selectedShow:""}),computed:{...(0,u.rn)({layout:e=>e.config.layout,shows:e=>e.shows.shows}),...(0,u.Se)({showsInLists:"showsInLists"}),selectedShowSlug:{get(){const{placeHolder:e,showSlug:t,$_selectedShow:n}=this;return n||t||e},set(e){this.$_selectedShow=e}},sortedLists(){const{layout:e,showsInLists:t}=this,{sortArticle:n}=e,s=[...t],o=e=>(n?e:e.replace(/^((?:the|a|an)\s)/i,"")).toLowerCase(),a=(e,t)=>{const n=o(e.title),s=o(t.title);return ns?1:0};return s.forEach((e=>{e.shows.sort(a)})),s}},methods:{...(0,u.nv)({setCurrentShow:"setCurrentShow"}),async changeRoute(e){const{followSelection:t,shows:n,selectedShowSlug:s,setCurrentShow:o}=this;if(this.$emit("change",e),!t)return;n.find((t=>t.id.slug===e))&&s!==e&&(await o(e),this.$router.push({query:{showslug:e}}))}},watch:{showSlug(e){this.selectedShowSlug=e}}};n(3261);const qe=(0,l.Z)(Re,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"show-selector form-inline hidden-print"},[n("div",{staticClass:"select-show-group pull-left top-5 bottom-5"},[0===e.shows.length?n("select",{class:e.selectClass,attrs:{disabled:""}},[n("option",[e._v("Loading...")])]):n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedShowSlug,expression:"selectedShowSlug"}],class:e.selectClass,on:{change:[function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedShowSlug=t.target.multiple?n:n[0]},function(t){return e.changeRoute(t.target.value)}]}},[e.placeHolder?n("option",{attrs:{disabled:"",hidden:""},domProps:{value:e.placeHolder,selected:!e.selectedShowSlug}},[e._v(e._s(e.placeHolder))]):e._e(),e._v(" "),e.sortedLists&&e.sortedLists.length>1?e._l(e.sortedLists,(function(t){return n("optgroup",{key:t.listTitle,attrs:{label:t.listTitle}},e._l(t.shows,(function(t){return n("option",{key:t.id.slug,domProps:{value:t.id.slug}},[e._v(e._s(t.title))])})),0)})):e._l(e.sortedLists[0].shows,(function(t){return n("option",{key:t.id.slug,domProps:{value:t.id.slug}},[e._v(e._s(t.title))])}))],2)])])}),[],!1,null,null,null).exports;var ze=n(9980),Me=n.n(ze),Fe=n(7810);const Ue={name:"sorted-select-list",components:{Draggable:Me(),FontAwesomeIcon:Fe.GN},props:{listItems:{type:Array,default:()=>[],required:!0},unique:{type:Boolean,default:!0},disabled:Boolean,sorted:Boolean},data:()=>({editItems:[],newItem:"",indexCounter:0,dragging:!1}),mounted(){this.editItems=this.sanitize(this.listItems)},created(){const e=this.$watch("listItems",(()=>{e(),this.editItems=this.sanitize(this.listItems)}))},methods:{addItem(e){this.unique&&this.editItems.find((t=>t.value===e))||(this.editItems.push({id:this.indexCounter,value:e}),this.indexCounter+=1)},addNewItem(){const{newItem:e,editItems:t}=this;""!==this.newItem&&(this.addItem(e),this.newItem="",this.$emit("change",t))},deleteItem(e){this.editItems=this.editItems.filter((t=>t!==e)),this.$refs.newItemInput.focus(),this.$emit("change",this.editItems)},removeEmpty(e){return""===e.value&&this.deleteItem(e)},sanitize(e){return e?e.map((e=>"string"==typeof e?(this.indexCounter+=1,{id:this.indexCounter-1,value:e}):e)):[]}},watch:{listItems(){this.editItems=this.sanitize(this.listItems),this.newItem=""},dragging(e){const{editItems:t}=this;e||this.$emit("change",t)}}};n(7138);const He=(0,l.Z)(Ue,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",e._b({staticClass:"sorted-select-list max-width"},"div",{disabled:e.disabled},!1),[n("draggable",{staticClass:"list-group",attrs:{tag:"ul",handle:".handle"},on:{start:function(t){e.dragging=!0},end:function(t){e.dragging=!1}},model:{value:e.editItems,callback:function(t){e.editItems=t},expression:"editItems"}},e._l(e.editItems,(function(t){return n("li",{key:t.id,staticClass:"draggable-list"},[n("font-awesome-icon",{staticClass:"handle",attrs:{icon:"align-justify"}}),e._v(" "),n("div",{staticClass:"draggable-input-group"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.value,expression:"item.value"}],staticClass:"form-control input-sm",attrs:{type:"text"},domProps:{value:t.value},on:{input:[function(n){n.target.composing||e.$set(t,"value",n.target.value)},function(n){return e.removeEmpty(t)}]}}),e._v(" "),n("div",{staticClass:"input-group-btn",on:{click:function(n){return e.deleteItem(t)}}},[n("div",{staticClass:"btn btn-default input-sm",staticStyle:{"font-size":"14px"}},[n("i",{staticClass:"glyphicon glyphicon-remove",attrs:{title:"Remove"}})])])])],1)})),0),e._v(" "),n("div",{staticClass:"new-item"},[n("div",{staticClass:"draggable-input-group"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.newItem,expression:"newItem"}],ref:"newItemInput",staticClass:"form-control input-sm",attrs:{type:"text",placeholder:"add new values per line"},domProps:{value:e.newItem},on:{input:function(t){t.target.composing||(e.newItem=t.target.value)}}}),e._v(" "),n("div",{staticClass:"input-group-btn",on:{click:function(t){return e.addNewItem()}}},[e._m(0)])])]),e._v(" "),e.newItem.length>0?n("div",{staticClass:"new-item-help"},[e._v("\n Click "),n("i",{staticClass:"glyphicon glyphicon-plus"}),e._v(" to finish adding the value.\n ")]):e._e()],1)}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"btn btn-default input-sm",staticStyle:{"font-size":"14px"}},[t("i",{staticClass:"glyphicon glyphicon-plus",attrs:{title:"Add"}})])}],!1,null,"48a6e4c2",null).exports;const Qe={name:"test-guessit",data:()=>({releaseName:"",guessitResult:{}}),methods:{async testReleaseName(){const{releaseName:e}=this;try{const{data:t}=await o.hi.get("guessit",{params:{release:e}});this.guessitResult=t}catch(e){console.log("Woops")}}}};n(6225);const We=(0,l.Z)(Qe,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e._m(0),e._v(" "),n("div",{staticClass:"row"},[e._m(1),e._v(" "),n("div",{staticClass:"col-lg-10"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.releaseName,expression:"releaseName"}],staticClass:"form-control input-sm",attrs:{type:"text"},domProps:{value:e.releaseName},on:{input:function(t){t.target.composing||(e.releaseName=t.target.value)}}})])]),e._v(" "),n("div",{staticClass:"row"},[n("div",{staticClass:"col-lg-12"},[n("pre",[e._v(e._s(JSON.stringify(e.guessitResult,void 0,4)))])])]),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",on:{click:function(t){return t.preventDefault(),e.testReleaseName.apply(null,arguments)}}},[e._v("Test Release Name")])])}),[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"row"},[n("div",{staticClass:"col-lg-12"},[n("p",[e._v("Guessit is a library used for parsing release names. As a minimum Medusa requires a show title, season and episode (if not parsed as a season pack).")]),e._v(" "),n("p",[e._v("You can fill in your release name and click the `Test Release Name` button, to get the guessit response.")])])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"col-lg-2"},[n("span",[e._v("Release name:")])])}],!1,null,"44a40dd8",null).exports;var je=n(9755);const Ve={components:{ConfigToggleSlider:S,ConfigTemplate:A.Z,ConfigTextboxNumber:x,ConfigTextbox:y},props:{authOnly:Boolean},data:()=>({traktRequestSend:!1,traktRequestAuthenticated:!1,traktUserCode:"",traktRequestMessage:"",traktMethodOptions:[{text:"Skip all",value:0},{text:"Download pilot only",value:1},{text:"Get whole show",value:2}],saving:!1,testTraktResult:"Click below to test.",traktBlacklistClass:""}),computed:{...(0,u.rn)({indexers:e=>e.config.indexers,trakt:e=>e.config.notifiers.trakt}),traktIndexersOptions(){const{indexers:e}=this,{traktIndexers:t}=e.main;return Object.keys(e.indexers).filter((e=>t[e])).map((t=>({text:t,value:e.indexers[t].id})))}},methods:{...(0,u.nv)(["setConfig"]),async TraktRequestDeviceCode(){this.traktUserCode="",this.traktRequestAuthenticated=!1;const e=await(0,o.fL)("home/requestTraktDeviceCodeOauth");e.data&&(this.traktVerificationUrl=e.data.verification_url,window.open(e.data.verification_url,"popUp","toolbar=no, scrollbars=no, resizable=no, top=200, left=200, width=650, height=550"),this.traktRequestSend=!0,this.traktUserCode=e.data.user_code,this.checkTraktAuthenticated())},checkTraktAuthenticated(){let e=0;const t=setInterval((()=>{(0,o.fL)("home/checkTrakTokenOauth").then((e=>{e.data&&(this.traktRequestMessage=e.data.result,e.data.error||(clearInterval(t),this.traktRequestAuthenticated=!0,this.traktUserCode=""))})),e++,12===e&&(clearInterval(t),this.traktRequestAuthenticated=!1,this.traktUserCode="")}),5e3)},testTrakt(){const{trakt:e}=this,{blacklistName:t}=e;if(/\s/g.test(t))return this.testTraktResult="Check blacklist name; the value needs to be a trakt slug",void(this.traktBlacklistClass="warning");this.traktBlacklistClass="",(0,o.fL)(`home/testTrakt?blacklist_name=${t}`).then((e=>{this.testTraktResult=e.data}))},traktForceSync(){je.getJSON("home/forceTraktSync",(e=>{this.testTraktResult=e.result}))},async save(){const{trakt:e,setConfig:t}=this;this.saving=!0;const n={notifiers:{trakt:e}};try{await t({section:"main",config:n}),this.$snotify.success("Saved Trakt config","Saved",{timeout:5e3})}catch(e){this.$snotify.error("Error while trying to save Trakt config","Error")}finally{this.saving=!1}}}};const Ge=(0,l.Z)(Ve,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("config-toggle-slider",{attrs:{label:"Enable",id:"use_trakt",explanations:["Send Trakt.tv notifications?"]},on:{change:function(t){return e.save()}},model:{value:e.trakt.enabled,callback:function(t){e.$set(e.trakt,"enabled",t)},expression:"trakt.enabled"}}),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.trakt.enabled,expression:"trakt.enabled"}],attrs:{id:"content-use-trakt-client"}},[n("config-template",{attrs:{"label-for":"trakt_request_auth",label:""}},[n("input",{staticClass:"btn-medusa",attrs:{type:"button",value:"Connect to your trakt account",id:"Trakt"},on:{click:e.TraktRequestDeviceCode}}),e._v(" "),e.traktRequestSend&&e.traktUserCode?n("span",{staticStyle:{display:"inline"}},[e._v("Use this code in the popup: "+e._s(e.traktUserCode))]):e._e(),e._v(" "),e.traktRequestSend&&e.traktUserCode&&e.traktRequestMessage?n("p",[e._v("Trakt request status: "+e._s(e.traktRequestMessage))]):e._e(),e._v(" "),e.traktRequestAuthenticated&&e.traktRequestMessage?n("p",[e._v(e._s(e.traktRequestMessage))]):e._e()]),e._v(" "),e.authOnly?e._e():[n("config-textbox-number",{attrs:{label:"API Timeout",id:"trakt_timeout",explanations:["Seconds to wait for Trakt API to respond. (Use 0 to wait forever)"]},model:{value:e.trakt.timeout,callback:function(t){e.$set(e.trakt,"timeout",t)},expression:"trakt.timeout"}}),e._v(" "),n("config-template",{attrs:{"label-for":"trakt_default_indexer",label:"Default indexer"}},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.trakt.defaultIndexer,expression:"trakt.defaultIndexer"}],staticClass:"form-control",attrs:{id:"trakt_default_indexer",name:"trakt_default_indexer"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.trakt,"defaultIndexer",t.target.multiple?n:n[0])}}},e._l(e.traktIndexersOptions,(function(t){return n("option",{key:t.key,domProps:{value:t.value}},[e._v("\n "+e._s(t.text)+"\n ")])})),0)]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Sync libraries",id:"trakt_sync"},on:{change:function(t){return e.save()}},model:{value:e.trakt.sync,callback:function(t){e.$set(e.trakt,"sync",t)},expression:"trakt.sync"}},[n("p",[e._v("Sync your Medusa show library with your Trakt collection.")]),e._v(" "),n("p",[e._v("Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.")]),e._v(" "),n("p",[e._v("Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.")])]),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.trakt.sync,expression:"trakt.sync"}],attrs:{id:"content-use-trakt-client"}},[n("config-toggle-slider",{attrs:{label:"Remove Episodes From Collection",id:"trakt_remove_watchlist",explanations:["Remove an Episode from your Trakt Collection if it is not in your Medusa Library.","Note:Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library."]},on:{change:function(t){return e.save()}},model:{value:e.trakt.removeWatchlist,callback:function(t){e.$set(e.trakt,"removeWatchlist",t)},expression:"trakt.removeWatchlist"}})],1),e._v(" "),n("config-toggle-slider",{attrs:{label:"Sync watchlist",id:"trakt_sync_watchlist"},on:{change:function(t){return e.save()}},model:{value:e.trakt.syncWatchlist,callback:function(t){e.$set(e.trakt,"syncWatchlist",t)},expression:"trakt.syncWatchlist"}},[n("p",[e._v("Sync your Medusa library with your Trakt Watchlist (either Show and Episode).")]),e._v(" "),n("p",[e._v("Episode will be added on watch list when wanted or snatched and will be removed when downloaded")]),e._v(" "),n("p",[e._v("Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.")])]),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.trakt.syncWatchlist,expression:"trakt.syncWatchlist"}],attrs:{id:"content-use-trakt-client"}},[n("config-template",{attrs:{"label-for":"trakt_default_indexer",label:"Watchlist add method"}},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.trakt.methodAdd,expression:"trakt.methodAdd"}],staticClass:"form-control",attrs:{id:"trakt_method_add",name:"trakt_method_add"},on:{change:function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.$set(e.trakt,"methodAdd",t.target.multiple?n:n[0])}}},e._l(e.traktMethodOptions,(function(t){return n("option",{key:t.key,domProps:{value:t.value}},[e._v("\n "+e._s(t.text)+"\n ")])})),0),e._v(" "),n("p",[e._v("method in which to download episodes for new shows.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Remove episode",id:"trakt_remove_watchlist"},on:{change:function(t){return e.save()}},model:{value:e.trakt.removeWatchlist,callback:function(t){e.$set(e.trakt,"removeWatchlist",t)},expression:"trakt.removeWatchlist"}},[n("p",[e._v("remove an episode from your watchlist after it's downloaded.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Remove series",id:"trakt_remove_serieslist"},on:{change:function(t){return e.save()}},model:{value:e.trakt.removeSerieslist,callback:function(t){e.$set(e.trakt,"removeSerieslist",t)},expression:"trakt.removeSerieslist"}},[n("p",[e._v("remove the whole series from your watchlist after any download.")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Remove watched show",id:"trakt_remove_show_from_application"},on:{change:function(t){return e.save()}},model:{value:e.trakt.removeShowFromApplication,callback:function(t){e.$set(e.trakt,"removeShowFromApplication",t)},expression:"trakt.removeShowFromApplication"}},[n("p",[e._v("remove the show from Medusa if it\\'s ended and completely watched")])]),e._v(" "),n("config-toggle-slider",{attrs:{label:"Start paused",id:"trakt_start_paused"},on:{change:function(t){return e.save()}},model:{value:e.trakt.startPaused,callback:function(t){e.$set(e.trakt,"startPaused",t)},expression:"trakt.startPaused"}},[n("p",[e._v("shows grabbed from your trakt watchlist start paused.")])])],1),e._v(" "),n("config-textbox",{class:e.traktBlacklistClass,attrs:{label:"Trakt blackList name",id:"trakt_blacklist_name"},on:{change:function(t){return e.save()}},model:{value:e.trakt.blacklistName,callback:function(t){e.$set(e.trakt,"blacklistName",t)},expression:"trakt.blacklistName"}},[n("p",[e._v("Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages")])])],e._v(" "),n("div",{staticClass:"testNotification",attrs:{id:"testTrakt-result"}},[e._v(e._s(e.testTraktResult))]),e._v(" "),n("input",{attrs:{type:"hidden",id:"trakt_pin_url"},domProps:{value:e.trakt.pinUrl}}),e._v(" "),n("button",{staticClass:"btn-medusa",attrs:{id:"testTrakt"},on:{click:e.testTrakt}},[e._v("Test Trakt")]),e._v(" "),e.authOnly?e._e():n("button",{staticClass:"btn-medusa",attrs:{id:"forceSync"},on:{click:e.traktForceSync}},[e._v("Force Sync")]),e._v(" "),n("button",{staticClass:"btn-medusa config_submitter",attrs:{disabled:e.saving},on:{click:e.save}},[e._v("Save Changes")])],2)],1)}),[],!1,null,"543318bb",null).exports},6738:(e,t,n)=>{"use strict";n.d(t,{du:()=>i.Z,qR:()=>r.Z,gV:()=>x,qh:()=>E,tf:()=>D,FX:()=>s.FX,xR:()=>s.xR,FE:()=>B.Z,$E:()=>s.$E,Qw:()=>s.Qw,rD:()=>s.rD,q4:()=>s.q4,fy:()=>s.fy,Ss:()=>s.Ss,Nl:()=>s.Nl,WD:()=>N.default,mP:()=>s.mP,By:()=>s.By,nH:()=>s.nH,u7:()=>L.Z,Pf:()=>O.default,J2:()=>s.J2,EI:()=>s.EI,lU:()=>s.lU,zf:()=>s.zf,Wd:()=>z});var s=n(4967);const o={name:"add-recommended",components:{AppLink:s.FX},computed:{header(){return this.$route.meta.header}}};var a=n(1900);(0,a.Z)(o,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"addShowPortal"}},[n("app-link",{staticClass:"btn-medusa btn-large",attrs:{href:"addShows/trendingShows/?traktList=anticipated",id:"btnNewShow"}},[n("div",{staticClass:"button"},[n("div",{staticClass:"add-list-icon-addtrakt"})]),e._v(" "),n("div",{staticClass:"buttontext"},[n("h3",[e._v("Add From Trakt Lists")]),e._v(" "),n("p",[e._v("For shows that you haven't downloaded yet, this option lets you choose from a show from one of the Trakt lists to add to Medusa .")])])]),e._v(" "),n("app-link",{staticClass:"btn-medusa btn-large",attrs:{href:"addShows/popularShows/",id:"btnNewShow"}},[n("div",{staticClass:"button"},[n("div",{staticClass:"add-list-icon-addimdb"})]),e._v(" "),n("div",{staticClass:"buttontext"},[n("h3",[e._v("Add From IMDB's Popular Shows")]),e._v(" "),n("p",[e._v("View IMDB's list of the most popular shows. This feature uses IMDB's MOVIEMeter algorithm to identify popular TV Shows.")])])]),e._v(" "),n("app-link",{staticClass:"btn-medusa btn-large",attrs:{href:"addShows/popularAnime/",id:"btnNewShow"}},[n("div",{staticClass:"button"},[n("div",{staticClass:"add-list-icon-addanime"})]),e._v(" "),n("div",{staticClass:"buttontext"},[n("h3",[e._v("Add From Anidb's Hot Anime list")]),e._v(" "),n("p",[e._v('View Anidb\'s list of the most popular anime shows. Anidb provides lists for Popular Anime, using the "Hot Anime" list.')])])])],1)}),[],!1,null,null,null).exports;var i=n(964),r=(n(771),n(4794));const l={name:"app"};var d=n(3379),c=n.n(d),p=n(7795),u=n.n(p),h=n(569),m=n.n(h),g=n(3565),v=n.n(g),f=n(9216),b=n.n(f),A=n(4589),w=n.n(A),y=n(3958),_={};_.styleTagTransform=w(),_.setAttributes=v(),_.insert=m().bind(null,"head"),_.domAPI=u(),_.insertStyleElement=b();c()(y.Z,_);y.Z&&y.Z.locals&&y.Z.locals;const x=(0,a.Z)(l,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("vue-snotify"),e._v(" "),e.$route.meta.header?n("h1",{staticClass:"header"},[e._v(e._s(e.$route.meta.header))]):e._e(),e._v(" "),n("router-view",{key:e.$route.meta.nocache?e.$route.fullPath:e.$route.name})],1)}),[],!1,null,null,null).exports;var C=n(629),k=n(1532),S=n(4054);const I={name:"app-footer",components:{AppLink:s.FX},computed:{...(0,C.rn)({layout:e=>e.config.layout,system:e=>e.config.system,stats:e=>e.stats}),...(0,C.Se)(["getStatus","getScheduler"]),snatchedStatus(){const e=this.getStatus({key:"snatched"});return e?e.value:""},episodePercentage(){const{downloaded:e,total:t}=this.stats.overall.episodes;if(!t)return"";return(e/t*100).toFixed(1)+"%"},nowInUserPreset(){const{dateStyle:e,timeStyle:t}=this.layout,n=(0,S.fc)(`${e} ${t}`);return(0,k.Z)(new Date,n)}},methods:{schedulerNextRun(e){const{nextRun:t}=this.getScheduler(e);return void 0===t?"??:??:??":null===t?"Disabled":this.formatTimeDuration(t)},formatTimeDuration(e){const t=Number.parseInt(e/864e5,10);let n="";t>0&&(n=String(t)+(t>1?" days, ":" day, "));const s=new Date(e%864e5),o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return String(e).padStart(t,"0")};return n+[String(s.getUTCHours()),o(s.getUTCMinutes()),o(s.getUTCSeconds()+Math.round(s.getUTCMilliseconds()/1e3))].join(":")}}};const E=(0,a.Z)(I,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("footer",[n("div",{staticClass:"footer clearfix"},[n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.stats.overall.shows.total))]),e._v(" Shows ("),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.stats.overall.shows.active))]),e._v(" Active)\n | "),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.stats.overall.episodes.downloaded))]),e._v(" "),e.stats.overall.episodes.snatched?[n("span",{staticClass:"footerhighlight"},[n("app-link",{attrs:{href:"manage/episodeStatuses?status="+e.snatchedStatus,title:"View overview of snatched episodes"}},[e._v("+"+e._s(e.stats.overall.episodes.snatched))])],1),e._v("\n Snatched\n ")]:e._e(),e._v("\n / "),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.stats.overall.episodes.total))]),e._v(" Episodes Downloaded "),e.episodePercentage?n("span",{staticClass:"footerhighlight"},[e._v("("+e._s(e.episodePercentage)+")")]):e._e(),e._v("\n | Daily Search: "),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.schedulerNextRun("dailySearch")))]),e._v("\n | Backlog Search: "),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.schedulerNextRun("backlog")))]),e._v(" "),n("div",[e.system.memoryUsage?[e._v("\n Memory used: "),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.system.memoryUsage))]),e._v(" |\n ")]:e._e(),e._v(" "),e._v("\n Branch: "),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.system.branch||"Unknown"))]),e._v(" |\n Now: "),n("span",{staticClass:"footerhighlight"},[e._v(e._s(e.nowInUserPreset))])],2)],2)])}),[],!1,null,"5cf1e725",null).exports;var P=n(7707),T=n(9755);const $={name:"app-header",components:{AppLink:s.FX},computed:{...(0,C.rn)({config:e=>e.config.general,subtitles:e=>e.config.subtitles,clients:e=>e.config.clients,notifiers:e=>e.config.notifiers,postprocessing:e=>e.config.postprocessing,search:e=>e.config.search,system:e=>e.config.system,isAuthenticated:e=>e.auth.isAuthenticated,username:e=>e.auth.user.username,warningLevel:e=>e.config.general.logs.loggingLevels.warning}),currentShowRoute(){const{$route:e}=this;return{name:e.name,query:e.query}},recentShows(){const{config:e,currentShowRoute:t}=this,{recentShows:n}=e;return n.filter((e=>!("show"===t.name&&e.showSlug===t.query.showslug))).map((e=>{const t=`home/displayShow?showslug=${e.showSlug}`;return{name:e.name,link:t}}))},topMenu(){return this.$route.meta.topMenu},toolsBadgeCount(){const{config:e}=this,{system:t}=this,{logs:n}=e,{news:s}=t;return n.numErrors+n.numWarnings+s.unread},toolsBadgeClass(){const{config:e}=this,{logs:t}=e;return t.numErrors>0?" btn-danger":t.numWarnings>0?" btn-warning":""},linkVisible(){const{clients:e,notifiers:t,search:n,subtitles:s}=this,{general:o}=n,{kodi:a,plex:i,emby:r}=t;return{plex:i.server.enabled&&0!==i.server.host.length,kodi:a.enabled&&0!==a.host.length,emby:r.enabled&&r.host,manageTorrents:e.torrents.enabled&&"blackhole"!==e.torrents.method,failedDownloads:o.failedDownloads.enabled,subtitleMissed:s.enabled}}},mounted(){const{$el:e}=this;e.clickCloseMenus=e=>{const{target:t}=e;if(t.matches("#main_nav a.router-link, #main_nav a.router-link *")&&("true"===t.ariaExpanded||null===t.ariaExpanded)){const e=t.closest(".dropdown");e&&(e.querySelector(".dropdown-toggle").setAttribute("aria-expanded",!1),e.querySelector(".dropdown-menu").style.display="none"),T("#main_nav").collapse("hide")}},e.addEventListener("click",e.clickCloseMenus,{passive:!0}),T(e).on({mouseenter(e){const t=T(e.currentTarget);t.find(".dropdown-menu").stop(!0,!0).delay(200).fadeIn(500,(()=>{t.find(".dropdown-toggle").attr("aria-expanded","true")}))},mouseleave(e){const t=T(e.currentTarget);t.find(".dropdown-toggle").attr("aria-expanded","false"),t.find(".dropdown-menu").stop(!0,!0).delay(200).fadeOut(500)}},"ul.nav li.dropdown")},destroyed(){const{$el:e}=this;e.removeEventListener("click",e.clickCloseMenus),T(e).off("mouseenter mouseleave","ul.nav li.dropdown"),(navigator.maxTouchPoints||0)<2&&T(e).off("click",".dropdown-toggle")},methods:{confirmDialog(e,t){const n={confirmButton:"Yes",cancelButton:"Cancel",dialogClass:"modal-dialog",post:!1,button:T(e.currentTarget||e.target),confirm(e){window.location.href=e[0].href}};if("newversion"===t)n.title="New version",n.text="New version available, update now?";else{if("logout"!==t)return;n.title="Logout",n.text="Are you sure you want to logout from Medusa?"}T.confirm(n,e)},async checkForupdates(e){const{confirmDialog:t}=this;try{this.$snotify.info("Checking for a new version..."),await P.hi.post("system/operation",{type:"CHECKFORUPDATE"}),t(e,"newversion")}catch(e){this.$snotify.info("You are already on the latest version")}},async updateKodi(){try{await P.hi.post("notifications/kodi/update")}catch(e){this.$snotify.info("Error trying to update kodi")}},async updateEmby(){try{await P.hi.post("notifications/emby/update")}catch(e){this.$snotify.info("Error trying to update emby")}},async updatePlex(){try{await P.hi.post("notifications/plex/update")}catch(e){this.$snotify.info("Error trying to update plex")}}}};n(1687);const D=(0,a.Z)($,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("nav",{staticClass:"navbar navbar-default navbar-fixed-top hidden-print",attrs:{role:"navigation"}},[n("div",{staticClass:"container-fluid"},[n("div",{staticClass:"navbar-header"},[n("button",{staticClass:"navbar-toggle collapsed",attrs:{type:"button","data-toggle":"collapse","data-target":"#main_nav"}},[e.toolsBadgeCount>0?n("span",{class:"floating-badge"+e.toolsBadgeClass},[e._v(e._s(e.toolsBadgeCount))]):e._e(),e._v(" "),n("span",{staticClass:"sr-only"},[e._v("Toggle navigation")]),e._v(" "),n("span",{staticClass:"icon-bar"}),e._v(" "),n("span",{staticClass:"icon-bar"}),e._v(" "),n("span",{staticClass:"icon-bar"})]),e._v(" "),n("app-link",{staticClass:"navbar-brand",attrs:{href:"home/",title:"Medusa"}},[n("img",{staticClass:"img-responsive pull-left",staticStyle:{height:"50px"},attrs:{alt:"Medusa",src:"images/medusa.png"}})])],1),e._v(" "),e.isAuthenticated?n("div",{staticClass:"collapse navbar-collapse",attrs:{id:"main_nav"}},[n("ul",{staticClass:"nav navbar-nav navbar-right"},[n("li",{staticClass:"navbar-split dropdown",class:{active:"home"===e.topMenu},attrs:{id:"NAVhome"}},[n("app-link",{staticClass:"dropdown-toggle",attrs:{"aria-haspopup":"true","data-toggle":"dropdown","data-hover":"dropdown"}},[n("span",[e._v("Shows")]),e._v(" "),n("b",{staticClass:"caret"})]),e._v(" "),n("ul",{staticClass:"dropdown-menu"},[n("li",[n("app-link",{attrs:{href:"home/"}},[n("i",{staticClass:"menu-icon-home"}),e._v(" Show List")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"addShows/"}},[n("i",{staticClass:"menu-icon-addshow"}),e._v(" Add Shows")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"addRecommended/"}},[n("i",{staticClass:"menu-icon-addshow"}),e._v(" Add Recommended Shows")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"home/postprocess/"}},[n("i",{staticClass:"menu-icon-postprocess"}),e._v(" Manual Post-Processing")])],1),e._v(" "),e.recentShows.length>0?n("li",{staticClass:"divider",attrs:{role:"separator"}}):e._e(),e._v(" "),e._l(e.recentShows,(function(t){return n("li",{key:t.link},[n("app-link",{attrs:{href:t.link}},[n("i",{staticClass:"menu-icon-addshow"}),e._v(" "+e._s(t.name)+"\n ")])],1)}))],2),e._v(" "),n("div",{staticStyle:{clear:"both"}})],1),e._v(" "),n("li",{staticClass:"navbar-split",class:{active:"schedule"===e.topMenu},attrs:{id:"NAVschedule"}},[n("app-link",{attrs:{href:"schedule/"}},[e._v("Schedule")])],1),e._v(" "),n("li",{staticClass:"navbar-split",class:{active:"history"===e.topMenu},attrs:{id:"NAVhistory"}},[n("app-link",{attrs:{href:"history/"}},[e._v("History")])],1),e._v(" "),n("li",{staticClass:"navbar-split dropdown",class:{active:"manage"===e.topMenu},attrs:{id:"NAVmanage"}},[n("app-link",{staticClass:"dropdown-toggle",attrs:{"aria-haspopup":"true","data-toggle":"dropdown","data-hover":"dropdown"}},[n("span",[e._v("Manage")]),e._v(" "),n("b",{staticClass:"caret"})]),e._v(" "),n("ul",{staticClass:"dropdown-menu"},[n("li",[n("app-link",{attrs:{href:"manage/"}},[n("i",{staticClass:"menu-icon-manage"}),e._v(" Mass Update")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"manage/changeIndexer/"}},[n("i",{staticClass:"menu-icon-manage-change"}),e._v(" Change Indexer")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"manage/backlogOverview/"}},[n("i",{staticClass:"menu-icon-backlog-view"}),e._v(" Backlog Overview")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"manage/manageSearches/"}},[n("i",{staticClass:"menu-icon-manage-searches"}),e._v(" Manage Searches")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"manage/episodeStatuses/"}},[n("i",{staticClass:"menu-icon-manage2"}),e._v(" Episode Status Management")])],1),e._v(" "),e.linkVisible.plex?n("li",[n("a",{attrs:{href:"home/updatePLEX/"},on:{click:function(t){return t.preventDefault(),e.updatePlex.apply(null,arguments)}}},[n("i",{staticClass:"menu-icon-plex"}),e._v(" Update PLEX")])]):e._e(),e._v(" "),e.linkVisible.kodi?n("li",[n("a",{attrs:{href:"home/updateKODI/"},on:{click:function(t){return t.preventDefault(),e.updateKodi.apply(null,arguments)}}},[n("i",{staticClass:"menu-icon-kodi"}),e._v(" Update KODI")])]):e._e(),e._v(" "),e.linkVisible.emby?n("li",[n("a",{attrs:{href:"home/updateEMBY/"},on:{click:function(t){return t.preventDefault(),e.updateEmby.apply(null,arguments)}}},[n("i",{staticClass:"menu-icon-emby"}),e._v(" Update Emby")])]):e._e(),e._v(" "),e.linkVisible.manageTorrents?n("li",[n("app-link",{attrs:{href:"manage/manageTorrents/",target:"_blank"}},[n("i",{staticClass:"menu-icon-bittorrent"}),e._v(" Manage Torrents")])],1):e._e(),e._v(" "),e.linkVisible.failedDownloads?n("li",[n("app-link",{attrs:{href:"manage/failedDownloads/"}},[n("i",{staticClass:"menu-icon-failed-download"}),e._v(" Failed Downloads")])],1):e._e(),e._v(" "),e.linkVisible.subtitleMissed?n("li",[n("app-link",{attrs:{href:"manage/subtitleMissed/"}},[n("i",{staticClass:"menu-icon-backlog"}),e._v(" Missed Subtitle Management")])],1):e._e()]),e._v(" "),n("div",{staticStyle:{clear:"both"}})],1),e._v(" "),n("li",{staticClass:"navbar-split dropdown",class:{active:"config"===e.topMenu},attrs:{id:"NAVconfig"}},[n("app-link",{staticClass:"dropdown-toggle",attrs:{"aria-haspopup":"true","data-toggle":"dropdown","data-hover":"dropdown"}},[n("span",{staticClass:"visible-xs-inline"},[e._v("Config")]),n("img",{staticClass:"navbaricon hidden-xs",attrs:{src:"images/menu/system18.png"}}),e._v(" "),n("b",{staticClass:"caret"})]),e._v(" "),n("ul",{staticClass:"dropdown-menu"},[n("li",[n("app-link",{attrs:{href:"config/"}},[n("i",{staticClass:"menu-icon-help"}),e._v(" Help & Info")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/general/"}},[n("i",{staticClass:"menu-icon-config"}),e._v(" General")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/backuprestore/"}},[n("i",{staticClass:"menu-icon-backup"}),e._v(" Backup & Restore")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/search/"}},[n("i",{staticClass:"menu-icon-manage-searches"}),e._v(" Search Settings")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/providers/"}},[n("i",{staticClass:"menu-icon-provider"}),e._v(" Search Providers")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/subtitles/"}},[n("i",{staticClass:"menu-icon-backlog"}),e._v(" Subtitles Settings")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/postProcessing/"}},[n("i",{staticClass:"menu-icon-postprocess"}),e._v(" Post-Processing")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/notifications/"}},[n("i",{staticClass:"menu-icon-notification"}),e._v(" Notifications")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"config/anime/"}},[n("i",{staticClass:"menu-icon-anime"}),e._v(" Anime")])],1)]),e._v(" "),n("div",{staticStyle:{clear:"both"}})],1),e._v(" "),n("li",{staticClass:"navbar-split dropdown",class:{active:"system"===e.topMenu},attrs:{id:"NAVsystem"}},[n("app-link",{staticClass:"padding-right-15 dropdown-toggle",attrs:{"aria-haspopup":"true","data-toggle":"dropdown","data-hover":"dropdown"}},[n("span",{staticClass:"visible-xs-inline"},[e._v("Tools")]),n("img",{staticClass:"navbaricon hidden-xs",attrs:{src:"images/menu/system18-2.png"}}),e._v(" "),e.toolsBadgeCount>0?n("span",{class:"badge"+e.toolsBadgeClass},[e._v(e._s(e.toolsBadgeCount))]):e._e(),e._v(" "),n("b",{staticClass:"caret"})]),e._v(" "),n("ul",{staticClass:"dropdown-menu"},[n("li",[n("app-link",{attrs:{href:"news/"}},[n("i",{staticClass:"menu-icon-news"}),e._v(" News "),e.system.news.unread>0?n("span",{staticClass:"badge"},[e._v(e._s(e.system.news.unread))]):e._e()])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"IRC/"}},[n("i",{staticClass:"menu-icon-irc"}),e._v(" IRC")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"changes/"}},[n("i",{staticClass:"menu-icon-changelog"}),e._v(" Changelog")])],1),e._v(" "),n("li",{staticClass:"divider",attrs:{role:"separator"}}),e._v(" "),e.config.logs.numErrors>0?n("li",[n("app-link",{attrs:{href:"errorlogs/"}},[n("i",{staticClass:"menu-icon-error"}),e._v(" View Errors "),n("span",{staticClass:"badge btn-danger"},[e._v(e._s(e.config.logs.numErrors))])])],1):e._e(),e._v(" "),e.config.logs.numWarnings>0?n("li",[n("app-link",{attrs:{href:"errorlogs/?level="+e.warningLevel}},[n("i",{staticClass:"menu-icon-viewlog-errors"}),e._v(" View Warnings "),n("span",{staticClass:"badge btn-warning"},[e._v(e._s(e.config.logs.numWarnings))])])],1):e._e(),e._v(" "),n("li",[n("app-link",{attrs:{href:"errorlogs/viewlog/"}},[n("i",{staticClass:"menu-icon-viewlog"}),e._v(" View Log")])],1),e._v(" "),n("li",{staticClass:"divider",attrs:{role:"separator"}}),e._v(" "),n("li",[n("app-link",{attrs:{href:"home/update"},nativeOn:{click:function(t){return t.preventDefault(),e.checkForupdates(t)}}},[n("i",{staticClass:"menu-icon-update"}),e._v(" Check For Updates")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"home/restart"}},[n("i",{staticClass:"menu-icon-restart"}),e._v(" Restart")])],1),e._v(" "),n("li",[n("app-link",{attrs:{href:"home/shutdown"},on:{click:function(t){return t.preventDefault(),e.$router.push({name:"shutdown"})}}},[n("i",{staticClass:"menu-icon-shutdown"}),e._v(" Shutdown")])],1),e._v(" "),e.username?n("li",[n("app-link",{attrs:{href:"logout"},nativeOn:{click:function(t){return t.preventDefault(),e.confirmDialog(t,"logout")}}},[n("i",{staticClass:"menu-icon-shutdown"}),e._v(" Logout")])],1):e._e(),e._v(" "),n("li",{staticClass:"divider",attrs:{role:"separator"}}),e._v(" "),n("li",[n("app-link",{attrs:{href:"home/status/"}},[n("i",{staticClass:"menu-icon-info"}),e._v(" Server Status")])],1)]),e._v(" "),n("div",{staticStyle:{clear:"both"}})],1)])]):e._e()])])}),[],!1,null,null,null).exports;var B=n(5711),N=(n(5574),n(4273),n(1146),n(1885),n(8285),n(9895),n(9532),n(4566),n(6704),n(641),n(9086),n(2380),n(9517),n(2637),n(8556),n(3768),n(2517),n(1571),n(4406),n(6169),n(9754),n(3387),n(6396),n(5497),n(732),n(8241),n(502),n(1170),n(3753)),L=(n(8146),n(9003),n(6519),n(9254),n(3856),n(512)),O=n(5139),R=(n(2322),n(5766),n(9661),n(8817),n(2722),n(9755));const q={name:"sub-menu",components:{AppLink:s.FX,ShowSelector:s.lU},computed:{...(0,C.Se)({getCurrentShow:"getCurrentShow"}),subMenu(){const{$route:e}=this;let t=e.meta.subMenu||[];"function"==typeof t&&(t=t(this));return t.reduceRight(((e,t)=>void 0===t.requires||t.requires?e.concat(t):e),[])},curShowSlug(){return this.$route.query.slug},showForRoutes(){const{$route:e}=this;return["show","editShow"].includes(e.name)}},methods:{...(0,C.nv)({removeShow:"removeShow"}),clickEventCond:e=>e.confirm||e.method?"click":null,async runMethod(e,t){const n={confirmButton:"Yes",cancelButton:"Cancel",dialogClass:"modal-dialog",post:!1,button:R(e.currentTarget),confirm(e){window.location.href=e[0].href}};if("removeshow"===t.confirm){const{getCurrentShow:e,removeShow:t,$router:s}=this;n.title="Remove Show",n.text=`Are you sure you want to remove ${e.title} from the database?

    \n Check to delete files as well. IRREVERSIBLE`,n.confirm=async()=>{t(e);const n={showslug:e.id.slug};document.querySelector("#deleteFiles").checked&&(n.full=1),await P.fL.get("home/deleteShow",{params:n}),s.push({name:"home",query:void 0})}}else if("clearhistory"===t.confirm)n.title="Clear History",n.text="Are you sure you want to clear all download history?";else if("trimhistory"===t.confirm)n.title="Trim History",n.text="Are you sure you want to trim all download history older than 30 days?";else if("submiterrors"===t.confirm)n.title="Submit Errors",n.text='Are you sure you want to submit these errors?

    \n Make sure Medusa is updated and trigger
    \n this error with debug enabled before submitting
    ';else{if("updatekodi"!==t.method)return;try{await P.hi.post("notifications/kodi/update"),this.$snotify.success("Update kodi library","Success")}catch(e){this.$snotify.warning("Error Update kodi library, check your logs","Warning")}}t.confirm&&R.confirm(n,e)}}};n(6546);const z=(0,a.Z)(q,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.subMenu.length>0?n("div",{staticClass:"row",attrs:{id:"sub-menu-wrapper"}},[n("div",{staticClass:"col-md-12 shadow",attrs:{id:"sub-menu-container"}},[n("div",{staticClass:"submenu-default hidden-print",attrs:{id:"sub-menu"}},[e._l(e.subMenu,(function(t){return n("app-link",{key:"sub-menu-"+t.title,staticClass:"btn-medusa top-5 bottom-5",attrs:{href:t.path},nativeOn:e._d({},[e.clickEventCond(t),function(n){return n.preventDefault(),e.runMethod(n,t)}])},[n("span",{class:["pull-left",t.icon]}),e._v(" "+e._s(t.title)+"\n ")])})),e._v(" "),e.showForRoutes?n("show-selector",{attrs:{"show-slug":e.$route.query.showslug,"follow-selection":""}}):e._e()],2)]),e._v(" "),n("div",{staticClass:"btn-group"})]):e._e()}),[],!1,null,"ab9bd198",null).exports;n(2216),n(186),n(3077),n(5502),n(8441),n(9632)},9632:(e,t,n)=>{"use strict";n.d(t,{f:()=>p});var s=n(538),o=n(629);const a={name:"select-indexer",props:{show:Object,searchedShow:Object},data:()=>({selectedIndexer:"--select--",searchedIndexer:null,searchedIndexerId:null,allowedIndexers:["tvdb","tmdb","tvmaze"]}),computed:{externalsOptions(){const{allowedIndexers:e,searchedShow:t,show:n}=this,{externals:s}=n;let o=[];if(o=Object.keys(s).filter((t=>e.includes(t))).filter((e=>e!==n.indexer)).map((e=>({text:e,value:s[e]}))),o.push({text:"--search--",value:"--search--"}),t&&t.searched){const e=o.find((e=>e.text===t.indexer));e?(e.value=t.id,e.searched=!0):o.push({text:t.indexer,value:t.id,searched:!0})}return o}},watch:{searchedShow:{handler(e){e&&e.searched&&(this.selectedIndexer={value:e.id,text:e.indexer})},deep:!0}}};n(7335);var i=n(1900);const r=(0,i.Z)(a,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"align-center"},[n("select",{directives:[{name:"model",rawName:"v-model",value:e.selectedIndexer,expression:"selectedIndexer"}],attrs:{name:"indexer"},on:{change:[function(t){var n=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){return"_value"in e?e._value:e.value}));e.selectedIndexer=t.target.multiple?n:n[0]},function(t){return e.$emit("change",e.selectedIndexer)}]}},[n("option",{attrs:{disabled:"",value:"--select--"}},[e._v("--select--")]),e._v(" "),e._l(e.externalsOptions,(function(t){return n("option",{key:t.value,domProps:{value:{value:t.value,text:t.text}}},[e._v("\n "+e._s(t.text)+"\n ")])}))],2),e._v(" "),e.searchedShow&&e.searchedShow.searched?n("div",{staticClass:"star",attrs:{title:"This indexer was manually selected"}},[e._v("*")]):e._e()])}),[],!1,null,"408d8306",null).exports;var l=n(9003),d=n(4967);const c={name:"change-indexer-row",components:{AppLink:d.FX,SelectIndexer:r,StateSwitch:d.zf},props:{show:Object},data(){return{currentShow:this.show,searchedShow:{searched:!1,indexer:null,id:null},displaySearch:!1,searchComponent:null,state:!1}},computed:{...(0,o.rn)({queueitems:e=>e.shows.queueitems}),...(0,o.Se)(["indexerIdToName"])},methods:{selectIndexerChange(e){let{text:t,value:n}=e;const{show:s}=this;this.displaySearch="--search--"===t,"--search--"===t?this.displaySearchComponent():this.$emit("selected",{show:s,indexer:t,showId:n})},displaySearchComponent(){const e=s.Z.extend(l.Z),{indexerIdToName:t,show:n}=this;this.searchComponent=new e({propsData:{providedInfo:{showName:n.name},fromChangeIndexer:!0},parent:this}),this.searchComponent.$on("selected",(e=>{let{result:n}=e;this.searchedShow.searched=!0,this.searchedShow.indexer=t(n.indexerId),this.searchedShow.id=n.showId})),this.searchComponent.$on("close",(()=>{this.searchComponent.$destroy(),this.searchComponent.$el.closest("tr").remove()}));const o=document.createElement("tr");o.style.columnSpan="all";const a=document.createElement("td");a.setAttribute("colspan","9999");const i=document.createElement("div");o.append(a),a.append(i),this.$refs.changeIndexerRow.after(o),this.searchComponent.$mount(i)}},watch:{queueitems(e){const{show:t}=this;if(!("changeStatus"in t))return;const n=e.find((e=>e.identifier===t.changeStatus.identifier));n&&(s.Z.set(t.changeStatus,"steps",n.step),n.inProgress&&(this.state="loading"),null!==n.success&&(this.state="yes"))}}};n(1029);const p=(0,i.Z)(c,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("tr",{ref:"changeIndexerRow"},[n("td",[n("input",{directives:[{name:"model",rawName:"v-model",value:e.currentShow.checked,expression:"currentShow.checked"}],attrs:{type:"checkbox","data-slug":e.show.id.slug},domProps:{checked:Array.isArray(e.currentShow.checked)?e._i(e.currentShow.checked,null)>-1:e.currentShow.checked},on:{change:function(t){var n=e.currentShow.checked,s=t.target,o=!!s.checked;if(Array.isArray(n)){var a=e._i(n,null);s.checked?a<0&&e.$set(e.currentShow,"checked",n.concat([null])):a>-1&&e.$set(e.currentShow,"checked",n.slice(0,a).concat(n.slice(a+1)))}else e.$set(e.currentShow,"checked",o)}}})]),e._v(" "),n("td",[n("app-link",{attrs:{href:"home/displayShow?showslug="+e.show.id.slug}},[e._v(e._s(e.show.name))])],1),e._v(" "),n("td",[e._v(e._s(e.show.indexer))]),e._v(" "),n("td",[n("select-indexer",e._b({on:{change:e.selectIndexerChange}},"select-indexer",{show:e.show,searchedShow:e.searchedShow},!1))],1),e._v(" "),n("td",{staticClass:"align-center"},[e.state?n("div",{staticClass:"step-container"},[n("div",{staticClass:"state"},[n("state-switch",{attrs:{state:e.state}})],1),e._v(" "),n("div",{staticClass:"stepdisplay"},[n("ul",e._l(e.show.changeStatus.steps,(function(t){return n("li",{key:t},[e._v(e._s(t))])})),0)])]):e._e()])])}),[],!1,null,"0c39cdb8",null).exports},1468:(e,t,n)=>{"use strict";n.d(t,{VZ:()=>b,zb:()=>A,ZP:()=>w});var s=n(538),o=n(7879),a=n(7356),i=n(5995),r=n(6123),l=n.n(r),d=n(7611),c=n.n(d),p=n(4355),u=n(582),h=n(1436),m=n(6024),g=n(6738),v=n(6516),f=n(4054);u.vI.add([h.z1q,h.l9f,m.nY]);const b=()=>{let{components:e=[]}=window;e=e.concat([g.gV,g.qh,g.tf,g.J2,g.Wd]),e=e.concat([g.du,g.qR,g.FX,g.xR,g.FE,g.$E,g.Qw,g.rD,g.q4,g.fy,g.Ss,g.Nl,g.mP,g.By,g.nH,g.u7,g.EI,g.lU,g.zf]),e=e.concat([g.Pf]),e.forEach((e=>{f.yG&&console.debug(`Registering ${e.name}`),s.Z.component(e.name,e)}))},A=()=>{s.Z.use(o.Z),s.Z.use(a.Z),s.Z.use(i.ZP),s.Z.use(l()),s.Z.use(c(),{dynamicDefault:{height:"auto"}}),s.Z.use(p.NS),s.Z.$cookies.config("10y")},w=()=>{const e=(e,t)=>`${e} is using the global Vuex '${t}' state, please replace that with a local one using: mapState(['${t}'])`;s.Z.mixin({data(){return this.$root===this?{globalLoading:!0,pageComponent:!1,showsLoading:!1}:{}},mounted(){if(this.$root===this&&!window.location.pathname.includes("/login")){const{username:e}=window;Promise.all([v.Z.dispatch("login",{username:e}),v.Z.dispatch("getConfig"),v.Z.dispatch("getStats")]).then((e=>{let[t,n]=e;this.$root.$emit("loaded");const s=new CustomEvent("medusa-config-loaded",{detail:{general:n.main,layout:n.layout}});window.dispatchEvent(s)})).catch((e=>{console.debug(e),alert("Unable to connect to Medusa!")}))}this.$root.$once("loaded",(()=>{this.$root.globalLoading=!1}))},computed:{auth(){return f.yG&&!this.__VUE_DEVTOOLS_UID__&&console.warn(e(this._name,"auth")),this.$store.state.auth},config(){return f.yG&&!this.__VUE_DEVTOOLS_UID__&&console.warn(e(this._name,"config")),this.$store.state.config}}}),f.yG&&console.debug("Loading local Vue"),A(),b()}},9265:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});const s=e=>({methods:{getCookie(t){if(t.includes(e))return JSON.parse(t);try{return JSON.parse(this.$cookies.get(`${e}-${t}`))}catch{return null}},setCookie(t,n){return this.$cookies.set(`${e}-${t}`,JSON.stringify(n))},saveSorting(e){const{setCookie:t}=this;t("sort-field",e.map((e=>e.field))),t("sort-type",e.map((e=>e.type)))},getSortBy(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"title",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"asc";const{getCookie:n}=this,s=n("sort-field"),o=n("sort-type"),a=[];return Array.isArray(s)&&2===s.length?(s.forEach(((n,i)=>{a.push({field:s[i]||e,type:o[i]||t})})),a):null===s||null===o?{field:e,type:t}:{field:s[0]||e,type:o[0]||t}}},created(){this.$watch((()=>this.columns),(e=>{const{setCookie:t}=this;for(const n of e)n&&t(n.label,n.hidden)}),{deep:!0})}})},7103:(e,t,n)=>{"use strict";n.d(t,{E:()=>i});var s=n(8600),o=n.n(s),a=n(629);const i={data(){const{getCookie:e}=this;return{columns:[{label:"Next Ep",field:"nextAirDate",type:"date",sortable:!0,dateInputFormat:"yyyy-MM-dd'T'HH:mm:ssXXX",dateOutputFormat:"yyyy-MM-dd'T'HH:mm:ssXXX",sortFn:this.sortDateNext,hidden:e("Next Ep")},{label:"Prev Ep",field:"prevAirDate",type:"date",sortable:!0,dateInputFormat:"yyyy-MM-dd'T'HH:mm:ssXXX",dateOutputFormat:"yyyy-MM-dd'T'HH:mm:ssXXX",sortFn:this.sortDatePrev,hidden:e("Prev Ep")},{label:"Show",field:"title",filterOptions:{enabled:!0},sortFn:this.sortTitle,hidden:e("Show")},{label:"Network",field:"network",filterOptions:{enabled:!0},hidden:e("Network")},{label:"Indexer",field:"indexer",filterOptions:{enabled:!0,filterDropdownItems:["tvdb","tvmaze","tmdb"]},hidden:e("Indexer")},{label:"Quality",field:"config.qualities",filterOptions:{enabled:!0,filterFn:this.qualityColumnFilterFn},sortable:!1,hidden:e("Quality")},{label:"Downloads",field:"stats.tooltip.percentage",sortFn:this.sortDownloads,type:"boolean",hidden:e("Downloads")},{label:"Size",type:"number",field:"stats.episodes.size",hidden:e("Size")},{label:"Active",field:this.fealdFnActive,filterOptions:{enabled:!0,filterDropdownItems:[{value:!0,text:"yes"},{value:!1,text:"no"}]},type:"boolean",hidden:e("Active")},{label:"Status",field:"status",filterOptions:{enabled:!0},hidden:e("Status")},{label:"Xem",field:this.fealdFnXem,filterOptions:{enabled:!0,filterDropdownItems:[{value:!0,text:"yes"},{value:!1,text:"no"}]},type:"boolean",hidden:e("Xem")}]}},computed:{...(0,a.rn)({config:e=>e.config.general,indexerConfig:e=>e.config.indexers.indexers,stateLayout:e=>e.config.layout,qualityValues:e=>e.config.consts.qualities.values}),...(0,a.Se)({fuzzyParseDateTime:"fuzzyParseDateTime",showsInLists:"showsInLists"}),maxNextAirDate(){const{shows:e}=this;return Math.max(...e.filter((e=>e.nextAirDate)).map((e=>Date.parse(e.nextAirDate))))}},methods:{prettyBytes:e=>o()(e),showIndexerUrl(e){const{indexerConfig:t}=this;if(!e.indexer)return;const n=e.id[e.indexer];return`${t[e.indexer].showUrl}${n}`},parsePrevDateFn(e){const{fuzzyParseDateTime:t}=this;return e.prevAirDate?(console.log(`Calculating time for show ${e.title} prev date: ${e.prevAirDate}`),t(e.prevAirDate)):""},parseNextDateFn(e){const{fuzzyParseDateTime:t}=this;return e.nextAirDate?(console.log(`Calculating time for show ${e.title} next date: ${e.nextAirDate}`),t(e.nextAirDate)):""},fealdFnXem:e=>e.xemNumbering&&0!==e.xemNumbering.length,fealdFnActive:e=>e.config&&!e.config.paused&&"Continuing"===e.status,sortDateNext(e,t){const{maxNextAirDate:n}=this;return null===e&&null===t?0:null===e||null===t?null===e?1:-1:(e=Date.parse(e),t=Date.parse(t),et?1:0)},sortDatePrev(e,t){if(null===e&&null===t)return 0;if(e=e?Date.parse(e):0,t=t?Date.parse(t):0,null===e||null===t)return null===e?-1:1;const n=e-Date.now(),s=t-Date.now();return ns?1:0},sortTitle(e,t){const{stateLayout:n}=this,{sortArticle:s}=n;let o=e,a=t;return s||(o=o.replace(/^((?:a(?!\s+to)n?)|the)\s/i,"").toLowerCase(),a=a.replace(/^((?:a(?!\s+to)n?)|the)\s/i,"").toLowerCase()),oa?1:0},sortDownloads:(e,t,n,s,o)=>0!==e&&100!==e||e!==t?et?1:0:s.stats.episodes.totaln.find((t=>t.value===e)).name.includes(t))).some((e=>e))}}}},1083:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,Z:()=>c});var s=n(538),o=n(8345);const a=[{title:"General",path:"config/general/",icon:"menu-icon-config"},{title:"Backup/Restore",path:"config/backuprestore/",icon:"menu-icon-backup"},{title:"Search Settings",path:"config/search/",icon:"menu-icon-manage-searches"},{title:"Search Providers",path:"config/providers/",icon:"menu-icon-provider"},{title:"Subtitles Settings",path:"config/subtitles/",icon:"menu-icon-backlog"},{title:"Post-Processing",path:"config/postProcessing/",icon:"menu-icon-postprocess"},{title:"Notifications",path:"config/notifications/",icon:"menu-icon-notification"},{title:"Anime",path:"config/anime/",icon:"menu-icon-anime"}],i=e=>{const{$route:t,$store:n}=e,{config:s}=n.state,{notifiers:o}=s,a=t.params.showSlug||t.query.showslug,i=n.getters.getCurrentShow,{showQueueStatus:r}=i,l=e=>!!r&&Boolean(r.find((t=>t.action===e&&!0===t.active))),d=l("isBeingAdded"),c=l("isBeingUpdated"),p=l("isBeingSubtitled");let u=[{title:"Edit",path:`home/editShow?showslug=${a}`,icon:"ui-icon ui-icon-pencil"}];return d||c||(u=u.concat([{title:i.config.paused?"Resume":"Pause",path:`home/togglePause?showslug=${a}`,icon:"ui-icon ui-icon-"+(i.config.paused?"play":"pause")},{title:"Remove",path:`home/deleteShow?showslug=${a}`,confirm:"removeshow",icon:"ui-icon ui-icon-trash"},{title:"Re-scan files",path:`home/refreshShow?showslug=${a}`,icon:"ui-icon ui-icon-refresh"},{title:"Force Full Update",path:`home/updateShow?showslug=${a}`,icon:"ui-icon ui-icon-transfer-e-w"},{title:"Update show in KODI",path:`home/updateKODI?showslug=${a}`,method:"updatekodi",requires:o.kodi.enabled&&o.kodi.update.library,icon:"menu-icon-kodi"},{title:"Update show in Emby",path:`home/updateEMBY?showslug=${a}`,requires:o.emby.enabled,icon:"menu-icon-emby"},{title:"Preview Rename",path:`home/testRename?showslug=${a}`,icon:"ui-icon ui-icon-tag"},{title:"Download Subtitles",path:`home/subtitleShow?showslug=${a}`,requires:s.subtitles.enabled&&!p&&i.config.subtitlesEnabled,icon:"menu-icon-backlog"}])),u},r=[...[{path:"/home",name:"home",meta:{title:"Home",topMenu:"home",converted:!0},component:()=>Promise.resolve().then(n.bind(n,3768))},{path:"/home/editShow",name:"editShow",meta:{topMenu:"home",subMenu:i,converted:!0,nocache:!0},component:()=>Promise.resolve().then(n.bind(n,2380))},{path:"/home/displayShow",name:"show",meta:{topMenu:"home",subMenu:i,converted:!0,nocache:!0},component:()=>Promise.resolve().then(n.bind(n,641))},{path:"/home/snatchSelection",name:"snatchSelection",meta:{topMenu:"home",subMenu:i,converted:!0,nocache:!0},component:()=>Promise.resolve().then(n.bind(n,8817))},{path:"/home/testRename",name:"testRename",meta:{topMenu:"home",subMenu:i,title:"Preview Rename",header:"Preview Rename",converted:!0},component:()=>Promise.resolve().then(n.bind(n,186))},{path:"/home/postprocess",name:"postprocess",meta:{title:"Manual Post-Processing",header:"Manual Post-Processing",topMenu:"home",converted:!0},component:()=>Promise.resolve().then(n.bind(n,1170))},{path:"/home/status",name:"status",meta:{title:"Status",topMenu:"system",converted:!0},component:()=>Promise.resolve().then(n.bind(n,2722))},{path:"/home/restart",name:"restart",meta:{title:"Restarting...",header:"Performing Restart",topMenu:"system",converted:!0},component:()=>Promise.resolve().then(n.bind(n,3856))},{path:"/home/shutdown",name:"shutdown",meta:{header:"Shutting down",topMenu:"system",converted:!0},component:()=>Promise.resolve().then(n.bind(n,3856)),props:{shutdown:!0}},{path:"/home/update",name:"update",meta:{header:"Update Medusa",topMenu:"system",converted:!0},component:()=>Promise.resolve().then(n.bind(n,3077))}],...[{path:"/config",name:"config",meta:{title:"Help & Info",header:"Medusa Configuration",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,5574))},{path:"/config/anime",name:"configAnime",meta:{title:"Config - Anime",header:"Anime",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,4273))},{path:"/config/backuprestore",name:"configBackupRestore",meta:{title:"Config - Backup/Restore",header:"Backup/Restore",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,1146))},{path:"/config/general",name:"configGeneral",meta:{title:"Config - General",header:"General Configuration",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,1885))},{path:"/config/notifications",name:"configNotifications",meta:{title:"Config - Notifications",header:"Notifications",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,9532))},{path:"/config/postProcessing",name:"configPostProcessing",meta:{title:"Config - Post-Processing",header:"Post-Processing",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,8285))},{path:"/config/providers",name:"configSearchProviders",meta:{title:"Config - Providers",header:"Search Providers",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,9895))},{path:"/config/search",name:"configSearchSettings",meta:{title:"Config - Episode Search",header:"Search Settings",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,4566))},{path:"/config/subtitles",name:"configSubtitles",meta:{title:"Config - Subtitles",header:"Subtitles",topMenu:"config",subMenu:a,converted:!0},component:()=>Promise.resolve().then(n.bind(n,6704))}],...[{path:"/addShows",name:"addShows",meta:{title:"Add Shows",header:"Add Shows",topMenu:"home",converted:!0},component:()=>Promise.resolve().then(n.bind(n,771))},{path:"/addShows/existingShows",name:"addExistingShows",meta:{title:"Add Existing Shows",header:"Add Existing Shows",topMenu:"home",converted:!0},component:()=>Promise.resolve().then(n.bind(n,8146))},{path:"/addShows/newShow",name:"addNewShow",meta:{title:"Add New Show",header:"Add New Show",topMenu:"home",converted:!0},props:e=>({...e.params}),component:()=>Promise.resolve().then(n.bind(n,3753))}],{path:"/login",name:"login",meta:{title:"Login"},component:()=>Promise.resolve().then(n.bind(n,1571))},{path:"/addRecommended",name:"addRecommended",meta:{title:"Add Recommended Shows",header:"Add Recommended Shows",topMenu:"home",converted:!0},component:()=>Promise.resolve().then(n.bind(n,6519))},{path:"/schedule",name:"schedule",meta:{title:"Schedule",header:"Schedule",topMenu:"schedule",converted:!0},component:()=>Promise.resolve().then(n.bind(n,5139))},{path:"/history",name:"history",meta:{title:"History",header:"History",topMenu:"history",subMenu:[{title:"Clear History",path:"history/clearHistory",icon:"ui-icon ui-icon-trash",confirm:"clearhistory"},{title:"Trim History",path:"history/trimHistory",icon:"menu-icon-cut",confirm:"trimhistory"}],converted:!0},component:()=>Promise.resolve().then(n.bind(n,9517))},{path:"/downloads",name:"downloads",meta:{title:"Downloads",header:"Downloads",converted:!0},component:()=>Promise.resolve().then(n.bind(n,9086))},...[{path:"/manage",name:"manage",meta:{title:"Mass Update",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,732)),props:!0},{path:"/manage/changeIndexer",name:"manageChangeIndexer",meta:{title:"Change show indexer",header:"Change show indexer",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,5502))},{path:"/manage/backlogOverview",name:"manageBacklogOverview",meta:{title:"Backlog Overview",header:"Backlog Overview",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,9754))},{path:"/manage/episodeStatuses",name:"manageEpisodeOverview",meta:{title:"Episode Overview",header:"Episode Overview",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,3387))},{path:"/manage/failedDownloads",name:"manageFailedDownloads",meta:{title:"Failed Downloads",header:"Failed Downloads",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,6396))},{path:"/manage/manageSearches",name:"manageManageSearches",meta:{title:"Manage Searches",header:"Manage Searches",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,502))},{path:"/manage/massEdit",name:"manageMassEdit",meta:{title:"Mass Edit",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,5497)),props:!0},{path:"/manage/subtitleMissed",name:"manageSubtitleMissed",meta:{title:"Missing Subtitles",header:"Missing Subtitles",topMenu:"manage",converted:!0},component:()=>Promise.resolve().then(n.bind(n,8241))}],...[{path:"/errorlogs",name:"errorlogs",meta:{title:"Logs & Errors",topMenu:"system",subMenu:e=>{const{$route:t,$store:n}=e,s=t.params.level||t.query.level,{config:o}=n.state,{loggingLevels:a,numErrors:i,numWarnings:r}=o.general.logs;if(0===Object.keys(a).length)return[];const l=void 0===s||Number(s)===a.error;return[{title:"Clear Errors",path:"errorlogs/clearerrors/",requires:i>=1&&l,icon:"ui-icon ui-icon-trash"},{title:"Clear Warnings",path:`errorlogs/clearerrors/?level=${a.warning}`,requires:r>=1&&Number(s)===a.warning,icon:"ui-icon ui-icon-trash"},{title:"Submit Errors",path:"errorlogs/submit_errors/",requires:i>=1&&l,confirm:"submiterrors",icon:"ui-icon ui-icon-arrowreturnthick-1-n"}]},converted:!0},component:()=>Promise.resolve().then(n.bind(n,6169)),props:!0},{path:"/errorlogs/viewlog",name:"viewlog",meta:{title:"Logs",header:"Log File",topMenu:"system",converted:!0},component:()=>Promise.resolve().then(n.bind(n,4406))}],{path:"/news",name:"news",meta:{title:"News",header:"News",topMenu:"system"}},{path:"/changes",name:"changes",meta:{title:"Changelog",header:"Changelog",topMenu:"system"}},{path:"/IRC",name:"IRC",meta:{title:"IRC",topMenu:"system",converted:!0},component:()=>Promise.resolve().then(n.bind(n,2517))},{path:"/not-found",name:"not-found",meta:{title:"404",header:"404 - page not found"},component:()=>Promise.resolve().then(n.bind(n,8441))}];s.Z.use(o.Z);const l=document.body.getAttribute("web-root")+"/",d=new o.Z({base:l,mode:"history",routes:r});d.beforeEach(((e,t,n)=>{const{meta:s}=e,{title:o}=s;o&&(document.title=`${o} | Medusa`),n()}));const c=d},6516:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ne});var s=n(538),o=n(629),a=n(2154),i=n.n(a),r=n(6602);const l={state:{isAuthenticated:!1,user:{},tokens:{access:null,refresh:null},error:null},mutations:{[r.EM](){},[r.XP](e,t){e.user=t,e.isAuthenticated=!0,e.error=null},[r.s2](e,t){let{error:n}=t;e.user={},e.isAuthenticated=!1,e.error=n},[r.Nv](e){e.user={},e.isAuthenticated=!1,e.error=null},[r.z6](){},[r.Hw](){}},getters:{},actions:{login(e,t){const{commit:n}=e;n(r.EM);return(e=>Promise.resolve(e))(t).then((e=>(n(r.XP,e),{success:!0}))).catch((e=>(n(r.s2,{error:e,credentials:t}),{success:!1,error:e})))},logout(e){const{commit:t}=e;t(r.Nv)}}},d={state:{show:{airs:null,airsFormatValid:null,akas:null,cache:null,classification:null,seasonCount:[],config:{airByDate:null,aliases:[],anime:null,defaultEpisodeStatus:null,dvdOrder:null,location:null,locationValid:null,paused:null,qualities:{allowed:[],preferred:[]},release:{requiredWords:[],ignoredWords:[],blacklist:[],whitelist:[],requiredWordsExclude:null,ignoredWordsExclude:null},scene:null,seasonFolders:null,sports:null,subtitlesEnabled:null,airdateOffset:null,templates:null,searchTemplates:[]},countries:null,genres:[],id:{tvdb:null,trakt:null,imdb:null,slug:null},indexer:null,imdbInfo:{akas:null,certificates:null,countries:null,countryCodes:null,genres:null,imdbId:null,imdbInfoId:null,indexer:null,indexerId:null,lastUpdate:null,plot:null,rating:null,runtimes:null,title:null,votes:null},language:null,network:null,nextAirDate:null,plot:null,rating:{imdb:{rating:null,votes:null}},runtime:null,showType:null,status:null,title:null,type:null,year:{},size:null,showQueueStatus:[],xemNumbering:[],sceneAbsoluteNumbering:[],xemAbsoluteNumbering:[],sceneNumbering:[],seasons:[],episodeCount:null},provider:{id:null,name:null,config:{},cache:[]}},mutations:{},getters:{},actions:{}};var c=n(7707),p=n(4054);const u={state:{remote:{rows:[],totalRows:0,page:1,perPage:25,sort:[{field:"date",type:"desc"}],filter:null},remoteCompact:{rows:[],totalRows:0,page:1,perPage:25,sort:[{field:"date",type:"desc"}],filter:null},episodeHistory:{},historyLast:null,historyLastCompact:null,loading:!1},mutations:{[r.BV](e,t){let{history:n,compact:s}=t;e[s?"remoteCompact":"remote"].rows.unshift(n)},[r.b6](e,t){let{history:n,compact:o}=t;const a=o?"remoteCompact":"remote";s.Z.set(e[a],"rows",n)},[r._i](e,t){let{showSlug:n,history:o}=t;for(const t of o){Object.keys(e.episodeHistory).includes(n)||s.Z.set(e.episodeHistory,n,{});const o=(0,p.T_)(t.season,t.episode);e.episodeHistory[n][o]||(e.episodeHistory[n][o]=[]),e.episodeHistory[n][o].push(t)}},[r.l_](e,t){let{showSlug:n,episodeSlug:o,history:a}=t;Object.keys(e.episodeHistory).includes(n)||s.Z.set(e.episodeHistory,n,{}),s.Z.set(e.episodeHistory[n],o,a)},setLoading(e,t){e.loading=t},setRemoteTotal(e,t){let{total:n,compact:s=!1}=t;e[s?"remoteCompact":"remote"].totalRows=n}},getters:{getShowHistoryBySlug:e=>t=>e.showHistory[t],getLastReleaseName:e=>t=>{let{showSlug:n,episodeSlug:s}=t;if(void 0!==e.episodeHistory[n]&&void 0!==e.episodeHistory[n][s]){if(1===e.episodeHistory[n][s].length)return e.episodeHistory[n][s][0].resource;const t=e.episodeHistory[n][s].sort(((e,t)=>-1*(e.actionDate-t.actionDate))).filter((e=>["Snatched","Downloaded"].includes(e.statusName)&&""!==e.resource));if(t.length>0)return t[0].resource}},getEpisodeHistory:e=>t=>{let{showSlug:n,episodeSlug:s}=t;return void 0===e.episodeHistory[n]?[]:e.episodeHistory[n][s]||[]},getSeasonHistory:e=>t=>{let{showSlug:n,season:s}=t;return void 0===e.episodeHistory[n]?[]:Object.values(e.episodeHistory[n]).flat().filter((e=>e.season===s))||[]}},actions:{async getShowHistory(e,t){let{slug:n}=t;const{commit:s}=e,o=await c.hi.get(`/history/${n}`);o.data.length>0&&s(r._i,{showSlug:n,history:o.data})},async getHistory(e,t){const{commit:n}=e;let s="/history";const o=t?.page||1,a=t?.perPage||1e3;let i=t?.sort||[{field:"date",type:"desc"}];const l=t?.filter||{},d=t?.showSlug,p=t?.compact,u={page:o,limit:a};i&&(Array.isArray(i)||(i=[i]),u.sort=i),l&&(u.filter=l),d&&(s=`${s}/${d}`),p&&(u.compact=!0),n("setLoading",!0);let h=null;try{h=await c.hi.get(s,{params:u}),h&&(n("setRemoteTotal",{total:Number(h.headers["x-pagination-count"]),compact:p}),d?n(r._i,{showSlug:d,history:h.data,compact:p}):n(r.b6,{history:h.data,compact:p}))}catch(e){e.response&&404===e.response.status&&console.debug("No history available"+(d?" for show "+d:""))}n("setLoading",!1)},getShowEpisodeHistory(e,t){let{showSlug:n,episodeSlug:s}=t;return new Promise((t=>{const{commit:o}=e;c.hi.get(`/history/${n}/episode/${s}`).then((e=>{e.data.length>0&&o(r.l_,{showSlug:n,episodeSlug:s,history:e.data}),t()})).catch((()=>{console.warn(`No episode history found for show ${n} and episode ${s}`)}))}))},updateHistory(e,t){let{rootState:n,commit:s}=e;"compact"===n.config.layout.history||s(r.BV,{history:t})}}},h={state:{enabled:!0},mutations:{[r.UO](e){e.enabled=!0},[r.TA](e){e.enabled=!1}},getters:{},actions:{enable(e){const{commit:t}=e;t(r.UO)},disable(e){const{commit:t}=e;t(r.TA)},test:()=>window.displayNotification("error","test",'test
    hello world
    • item 1
    • item 2
    ',"notification-test")}},m={state:{providers:[]},mutations:{[r.Tm](e,t){e.providers.find((e=>e.id===t.id))||e.providers.push(t)},[r.fA](e,t){t.forEach((t=>{const n=e.providers.find((e=>e.id===t.id));n?s.Z.set(e.providers,e.providers.indexOf(n),t):e.providers.push(t)}))},[r.C6](e,t){e.providers=e.providers.filter((e=>e.id!==t))},[r.OE](e,t){let{providerId:n,cache:o}=t,a=e.providers.find((e=>e.id===n));a||(a={name:"",config:{}},e.providers.push(a)),void 0===a.cache&&s.Z.set(a,"cache",[]);const i=[];for(const e of o){const t=a.cache.find((t=>t.identifier===e.identifier));t?i.push({...t,...e}):i.push(e)}s.Z.set(a,"cache",i)},[r.l9](e,t){for(const n of t){let t=e.providers.find((e=>e.id===n.provider.id));t||(t={name:"",config:{},cache:[]});const{cache:o}=t,a=(o||[]).find((e=>e.identifier===n.identifier));if(a){const{dateAdded:e,...i}=n;s.Z.set(t.cache,o.indexOf(a),{...a,...i})}else s.Z.set(t,"cache",[...o||[],n])}}},getters:{providerNameToId:e=>e=>e.replace(/[^\d\w_]/gi,"_").toLowerCase().trim()},actions:{getProviders:e=>new Promise(((t,n)=>{const{commit:s}=e;c.hi.get("/providers").then((e=>{s(r.fA,e.data),t()})).catch((e=>{console.error(`Could not get providers with error: ${e}`),n()}))})),async getProviderCacheResults(e,t){let{showSlug:n,season:s,episode:o}=t;const{commit:a,state:i}=e,l={limit:1e3,showslug:n,season:s};o&&(l.episode=o);const d=async e=>{let t=0,n=!1;const s=[],o=i.providers.find((t=>t.id===e.id));if(!o)return s;const{id:d}=o;for(t=0,n=!1;!n;){let o=null;t+=1,l.page=t;try{o=await c.hi.get(`/providers/${d}/results`,{params:l})}catch(t){t.response&&404===t.response.status&&console.debug(`No results available for provider ${e}`),n=!0}o?(a(r.OE,{providerId:d,cache:o.data}),s.push(...o.data),o.data.length<1e3&&(n=!0)):n=!0}return s},p={providersSearched:0,totalSearchResults:[]};for(const e of i.providers){if(!e.config.enabled)continue;p.providersSearched+=1;const t=await d(e);p.totalSearchResults.push(...t)}return p},addManualSearchResult(e,t){let{commit:n}=e;n(r.l9,[t])}}},g={state:{shows:[],trakt:{removedFromMedusa:[],blacklistEnabled:!1,availableLists:[]},categories:{},externals:{IMDB:10,ANIDB:11,TRAKT:12,ANILIST:13},sourceToString:{10:"imdb",11:"anidb",12:"trakt",13:"anilist"}},mutations:{[r.iA](e,t){const n=e.shows.find((e=>{let{seriesId:n,source:s}=e;return Number(t.seriesId[t.source])===Number(n[s])}));if(!n)return console.debug(`Adding ${t.title||t.source+String(t.seriesId)} as it wasn't found in the shows array`,t),void e.shows.push(t);console.debug(`Found ${t.title||t.source+String(t.seriesId)} in shows array attempting merge`);const o={...n,...t};s.Z.set(e.shows,e.shows.indexOf(n),o),console.debug(`Merged ${o.title||o.source+String(o.seriesId)}`,o)},[r.pu](e,t){let{shows:n,identifier:s}=t;if(s){const t=Number(Object.keys(e.sourceToString).find((t=>e.sourceToString[t]===s)));e.shows=e.shows.filter((e=>e.source!==t))}else e.shows=[];e.shows=[...e.shows,...n]},[r.Jh](e,t){e.trakt.removedFromMedusa=t.trakt.removedFromMedusa,e.trakt.blacklistEnabled=t.trakt.blacklistEnabled,e.trakt.availableLists=t.trakt.availableLists,e.categories=t.categories}},getters:{},actions:{getRecommendedShows(e,t){let{commit:n}=e;return t=t||"",c.hi.get(`/recommended/${t}`,{timeout:6e4}).then((e=>{n(r.pu,{shows:e.data.shows,identifier:t}),n(r.Jh,e.data)}))}}},v={state:{shows:[],currentShow:{showSlug:null},loading:{total:null,current:null,display:!1,finished:!1},queueitems:[]},mutations:{[r.$0](e,t){const n=e.shows.find((e=>{let{id:n,indexer:s}=e;return Number(t.id[t.indexer])===Number(n[s])}));if(!n)return console.debug(`Adding ${t.title||t.indexer+String(t.id)} as it wasn't found in the shows array`,t),void e.shows.push(t);console.debug(`Found ${t.title||t.indexer+String(t.id)} in shows array attempting merge`);const o={...n,...t};o.config.searchTemplates=t.config.searchTemplates?t.config.searchTemplates:n.config.searchTemplates,s.Z.set(e.shows,e.shows.indexOf(n),o),console.debug(`Merged ${o.title||o.indexer+String(o.id)}`,o)},[r.NB](e,t){const n=[];for(const s of t){const t=e.shows.find((e=>e.id.slug===s.id.slug));if(t){const{sceneAbsoluteNumbering:e,xemAbsoluteNumbering:o,sceneNumbering:a,...i}=s,r={...t,...i};r.config.searchTemplates=i.config.searchTemplates?i.config.searchTemplates:t.config.searchTemplates,n.push(r)}else n.push(s)}e.shows=n,console.debug(`Added ${t.length} shows to store`)},[r.u1](e,t){let{show:n,config:s}=t;const o=e.shows.find((e=>{let{id:t,indexer:s}=e;return Number(n.id[n.indexer])===Number(t[s])}));o.config={...o.config,...s}},currentShow(e,t){e.currentShow.showSlug=t},setLoadingTotal(e,t){e.loading.total=t},setLoadingCurrent(e,t){e.loading.current=t},updateLoadingCurrent(e,t){e.loading.current+=t},setLoadingDisplay(e,t){e.loading.display=t},setLoadingFinished(e,t){e.loading.finished=t},[r.hq](e,t){let{show:n,episodes:o}=t;const a=Object.assign({},e.shows.find((e=>{let{id:t,indexer:s}=e;return Number(n.id[n.indexer])===Number(t[s])})));a.seasons||(a.seasons=[]),o.forEach((e=>{const t=a.seasons.find((t=>t.season===e.season));if(t){const n=t.children.findIndex((t=>t.slug===e.slug));-1===n?t.children.push(e):t.children.splice(n,1,e)}else{const t={season:e.season,children:[],html:!1,mode:"span",label:1};a.seasons.push(t),t.children.push(e)}}));const i=e.shows.find((e=>{let{id:t,indexer:s}=e;return Number(n.id[n.indexer])===Number(t[s])}));s.Z.set(e.shows,e.shows.indexOf(i),a),console.log(`Storing episodes for show ${a.title} seasons: ${[...new Set(o.map((e=>e.season)))].join(", ")}`)},[r.XF](e,t){let{show:n,exception:s}=t;const o=Object.assign({},e.shows.find((e=>{let{id:t,indexer:s}=e;return Number(n.id[n.indexer])===Number(t[s])})));o.config.aliases.find((e=>e.title===s.title&&e.season===s.season))?console.warn(`Can't add exception ${s.title} with season ${s.season} to show ${o.title} as it already exists.`):o.config.aliases.push(s)},[r.VO](e,t){let{show:n,exception:s}=t;const o=Object.assign({},e.shows.find((e=>{let{id:t,indexer:s}=e;return Number(n.id[n.indexer])===Number(t[s])})));o.config.aliases.find((e=>e.title===s.title&&e.season===s.season))?o.config.aliases.splice(o.config.aliases.indexOf(s),1):console.warn(`Can't remove exception ${s.title} with season ${s.season} to show ${o.title} as it does not exist.`)},[r.Df](e,t){const n=e.queueitems.find((e=>e.identifier===t.identifier));n?s.Z.set(e.queueitems,e.queueitems.indexOf(n),{...n,...t}):s.Z.set(e.queueitems,e.queueitems.length,t)},[r.wk](e,t){let{show:n,template:s}=t;const o=Object.assign({},e.shows.find((e=>{let{id:t,indexer:s}=e;return Number(n.id[n.indexer])===Number(t[s])})));o.config.searchTemplates.find((e=>e.template===s.pattern))?console.warn(`Can't add template (${s.pattern} to show ${o.title} as it already exists.`):o.config.searchTemplates.push(s)},[r.l](e,t){let{show:n,template:s}=t;const o=Object.assign({},e.shows.find((e=>{let{id:t,indexer:s}=e;return Number(n.id[n.indexer])===Number(t[s])})));s.id?o.config.searchTemplates=o.config.searchTemplates.filter((e=>e.id!==s.id)):o.config.searchTemplates=o.config.searchTemplates.filter((e=>!(e.title===s.title&&e.season===s.season&&e.template===s.template)))},[r.fL](e,t){e.shows=e.shows.filter((e=>t.id.slug!==e.id.slug))},initShowsFromStore(e){localStorage.getItem("shows")&&s.Z.set(e,"shows",JSON.parse(localStorage.getItem("shows")))}},getters:{getShowById:e=>t=>e.shows.find((e=>e.id.slug===t)),getShowByTitle:e=>t=>e.shows.find((e=>e.title===t)),getSeason:e=>t=>{let{showSlug:n,season:s}=t;const o=e.shows.find((e=>e.id.slug===n));return o&&o.seasons?o.seasons[s]:void 0},getEpisode:e=>t=>{let{showSlug:n,season:s,episode:o}=t;const a=e.shows.find((e=>e.id.slug===n));return a&&a.seasons&&a.seasons.find((e=>e.season===s))?a.seasons.find((e=>e.season===s)).children.find((e=>e.episode===o)):void 0},getCurrentShow:(e,t,n)=>e.shows.find((t=>t.id.slug===e.currentShow.showSlug))||n.defaults.show,showsWithStats:(e,t,n)=>e.shows?e.shows.map((e=>{let s=n.stats.show.stats.find((n=>n.indexerId===t.indexerNameToId(e.indexer)&&n.seriesId===e.id[e.indexer]));let o="Unaired",a="";return s||(s={epDownloaded:0,epSnatched:0,epTotal:0,seriesSize:0}),s.epTotal>=1&&(o=s.epDownloaded,a=`Downloaded: ${s.epDownloaded}`,s.epSnatched&&(o+=`+${s.epSnatched}`,a+=`\rSnatched: ${s.epSnatched}`),o+=` / ${s.epTotal}`,a+=`\rTotal: ${s.epTotal}`),e.stats={episodes:{total:s.epTotal,snatched:s.epSnatched,downloaded:s.epDownloaded,size:s.seriesSize},tooltip:{text:o,title:a,percentage:100*s.epDownloaded/(s.epTotal||1)}},e})):[],showsInLists:(e,t,n)=>{const{layout:s,general:o}=n.config,{show:a}=s,{showListOrder:i}=a,{rootDirs:r}=o,{selectedRootIndex:l,local:d}=s,{showFilterByName:c}=d,{showsWithStats:p}=t;let u=null;u=p.filter((e=>-1===l||e.config.location.includes(r.slice(1)[l]))),"poster"!==s.home&&(u=u.filter((e=>e.title.toLowerCase().includes(c.toLowerCase()))));const h=i.filter((e=>u.filter((t=>t.config.showLists.map((e=>e.toLowerCase())).includes(e.toLowerCase()))).length>0)).map((e=>({listTitle:e,shows:u.filter((t=>t.config.showLists.map((e=>e.toLowerCase())).includes(e.toLowerCase())))}))),m=u.filter((e=>e.config.showLists.map((e=>i.map((e=>e.toLowerCase())).includes(e.toLowerCase()))).every((e=>!e))));return m.length>0&&h.push({listTitle:"uncategorized",shows:m}),0===h.length&&0===m.length&&h.push({listTitle:"Series",shows:[]}),h}},actions:{getShow(e,t){let{showSlug:n,detailed:s,episodes:o}=t;return new Promise(((t,a)=>{const{commit:i}=e,l={};let d=3e4;void 0!==s&&(l.detailed=s,d=6e4,d=6e4),void 0!==o&&(l.episodes=o,d=6e4),c.hi.get(`/series/${n}`,{params:l,timeout:d}).then((e=>{i(r.$0,e.data),t(e.data)})).catch((e=>{a(e)}))}))},getEpisodes(e,t){let{commit:n,getters:s}=e,{showSlug:o,season:a}=t;return new Promise(((e,t)=>{const{getShowById:i}=s,l=i(o),d={limit:1e3};void 0!==a&&(d.season=a),c.hi.get(`/series/${o}/episodes`,{params:d}).then((t=>{n(r.hq,{show:l,episodes:t.data}),e()})).catch((e=>{console.log(`Could not retrieve a episodes for show ${o}, error: ${e}`),t(e)}))}))},getShows(e,t){const{commit:n,dispatch:s,state:o,rootState:a}=e;return t?t.forEach((e=>s("getShow",e))):new Promise(((e,t)=>{n("setLoadingTotal",0),n("setLoadingCurrent",0),n("setLoadingDisplay",!0);const s={limit:1e3,page:1},i=[],l=[];i.push(c.hi.get("/series",{params:s}).then((e=>{n("setLoadingTotal",Number(e.headers["x-pagination-count"]));const t=Number(e.headers["x-pagination-total"]);l.push(...e.data),n("updateLoadingCurrent",e.data.length);for(let e=2;e<=t;e++)i.push(new Promise(((t,o)=>{const a={page:e};return a.limit=s.limit,c.hi.get("/series",{params:a}).then((e=>{l.push(...e.data),n("updateLoadingCurrent",e.data.length),t()})).catch((e=>{o(e)}))})))})).catch((()=>{console.log("Could not retrieve a list of shows")})).finally((()=>{Promise.all(i).then((()=>{n(r.NB,l);const t=a.config.system.webRoot?`${a.config.system.webRoot}_`:"";try{localStorage.setItem(`${t}shows`,JSON.stringify(o.shows))}catch(e){console.warn(e)}e()}))})))}))},setShow(e,t){let{showSlug:n,data:s}=t;return c.hi.patch(`series/${n}`,s)},updateShow(e,t){const{commit:n}=e;return n(r.$0,t)},addSceneException(e,t){let{show:n,exception:s}=t;const{commit:o}=e;o(r.XF,{show:n,exception:s})},removeSceneException(e,t){let{show:n,exception:s}=t;const{commit:o}=e;o(r.VO,{show:n,exception:s})},setCurrentShow:(e,t)=>new Promise((n=>{const{commit:s}=e;s("currentShow",t),n()})),setShowConfig(e,t){let{show:n,config:s}=t;const{commit:o}=e;o(r.u1,{show:n,config:s})},removeShow(e,t){let{commit:n,rootState:s,state:o}=e;n(r.fL,t),s.config.general.recentShows=s.config.general.recentShows.filter((e=>e.showSlug!==t.id.slug));const a={recentShows:s.config.general.recentShows};c.hi.patch("config/main",a);const i=s.config.system.webRoot?`${s.config.system.webRoot}_`:"";localStorage.setItem(`${i}shows`,JSON.stringify(o.shows))},updateShowQueueItem(e,t){const{commit:n}=e;return n(r.Df,t)},addSearchTemplate(e,t){let{show:n,template:s}=t;const{commit:o}=e;o(r.wk,{show:n,template:s});const a={config:{searchTemplates:e.getters.getCurrentShow.config.searchTemplates}};return c.hi.patch(`series/${n.indexer}${n.id[n.indexer]}`,a)},removeSearchTemplate(e,t){let{show:n,template:s}=t;const{commit:o}=e;o(r.l,{show:n,template:s});const a={config:{searchTemplates:e.getters.getCurrentShow.config.searchTemplates}};return c.hi.patch(`series/${n.indexer}${n.id[n.indexer]}`,a)}}},f={state:{categories:["later","missed","soon","today"],later:[],missed:[],soon:[],today:[],displayCategory:{later:!1,missed:!1,soon:!0,today:!0}},mutations:{[r.U0](e,t){for(const n in t)e[n]=t[n]},setDisplayCategory(e,t){let{category:n,value:s}=t;e.displayCategory[n]=s}},getters:{getScheduleFlattened:e=>{const t=[],{categories:n,displayCategory:s}=e;for(const o of n){if(!s[o])continue;const n=e[o];for(const e of n)e.class=o;t.push(...n)}return t},groupedSchedule:(e,t,n)=>{const{missed:s,soon:o,today:a,later:i,displayCategory:r}=e,{displayPaused:l}=n.config.layout.comingEps,d=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],c=(e,t)=>{let n=e.getDay();const s=[];for(let e=0;e7&&(n=1),s.push(n),n+=1;return s};function p(e,t){const n=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()),s=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate());return Math.floor((s-n)/864e5)}const u=[],h=[];r.missed&&h.push(...s),r.today&&h.push(...a),r.soon&&h.push(...o),r.later&&h.push(...i);const m=h.filter((e=>!e.paused||l));if(0===m.length)return[];let g=new Date(m[0].airdate);for(const e of m){if(g!==new Date(e.airdate)){const t=p(g,new Date(e.airdate));if(t>1){let e=d[c(g,t)[1]-1];t>2&&(e=`${e} ...`),u.push({header:e,class:"soon",episodes:[]})}}g=new Date(e.airdate);let t=u.find((t=>t.airdate===e.airdate));t||(t={airdate:e.airdate,header:d[e.weekday],class:"soon",episodes:[]},u.push(t)),e.airsTime=e.airs.split(" ").slice(-2).join(" "),t.episodes.push(e)}return u},sortedSchedule:(e,t,n)=>s=>{const{displayCategory:o,missed:a,today:i,soon:r,later:l}=e,{displayPaused:d}=n.config.layout.comingEps,c=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],p=[];if("date"===s){if(o.missed&&p.push({header:"missed",class:"missed",episodes:a.filter((e=>!e.paused||d))}),o.today&&p.push({header:"today",class:"today",episodes:i.filter((e=>!e.paused||d))}),o.soon)for(const e of r.filter((e=>!e.paused||d))){let t=p.find((t=>t.header===c[e.weekday]));t||(t={header:c[e.weekday],class:"soon",episodes:[]},p.push(t)),t.episodes.push(e)}return o.later&&p.push({header:"later",class:"later",episodes:l.filter((e=>!e.paused||d))}),p}if("network"===s){const{getScheduleFlattened:e}=t,n=e.filter((e=>!e.paused||d));for(const e of n.sort(((e,t)=>e.network.localeCompare(t.network)))){let t=p.find((t=>t.header===e.network));t||(t={header:e.network,class:e.class,episodes:[]},p.push(t)),t.episodes.push(e)}return p}}},actions:{async getSchedule(e){let{commit:t,state:n}=e;const s={category:n.categories,paused:!0},o=await c.hi.get("/schedule",{params:s});o.data&&t(r.U0,o.data)}}},b={state:{isConnected:!1,message:{},messages:[],reconnectError:!1},mutations:{[r.d_](e){e.isConnected=!0},[r.hB](e){e.isConnected=!1},[r.nX](e,t){console.error(e,t)},[r.Od](e,t){const{data:n,event:s}=t;if(e.message=t,"notification"===s){const s=e.messages.filter((e=>e.hash===n.hash));1===s.length?e.messages[e.messages.indexOf(s)]=t:e.messages.push(t)}},[r.nj](e,t){console.info(e,t)},[r.Kr](e){e.reconnectError=!0;let t="";t+="Please check your network connection. ",t+="If you are using a reverse proxy, please take a look at our wiki for config examples.",window.displayNotification("notice","Error connecting to websocket","Please check your network connection. If you are using a reverse proxy, please take a look at our wiki for config examples.")}},getters:{},actions:{}},A={state:{overall:{episodes:{downloaded:null,snatched:null,total:null},shows:{active:null,total:null}},show:{maxDownloadCount:0,stats:[]}},mutations:{[r.Rm](e,t){const{type:n,stats:s}=t;e[n]=Object.assign(e[n],s)},[r.sk](e,t){e.stats=t},[r.rP](e,t){e.maxDownloadCount=t}},getters:{},actions:{getStats(e,t){const{commit:n}=e;return c.hi.get(`/stats/${t||""}`).then((e=>{n(r.Rm,{type:t||"overall",stats:e.data})}))}}},w={state:{anidb:{enabled:!1,username:null,password:null,useMylist:!1},autoAnimeToList:!1,showlistDefaultAnime:[]},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"anime"===n&&(e=Object.assign(e,s))},[r.Ye](e,t){e.showlistDefaultAnime=t}},getters:{},actions:{updateShowlistDefault(e,t){const{commit:n}=e;return n(r.Ye,t)}}},y={state:{torrents:{authType:null,dir:null,enabled:null,highBandwidth:null,host:null,label:null,labelAnime:null,method:null,path:null,paused:null,rpcUrl:null,seedLocation:null,seedTime:null,username:null,password:null,verifySSL:null,testStatus:"Click below to test"},nzb:{enabled:null,method:null,nzbget:{category:null,categoryAnime:null,categoryAnimeBacklog:null,categoryBacklog:null,host:null,priority:null,useHttps:null,username:null,password:null},sabnzbd:{category:null,forced:null,categoryAnime:null,categoryBacklog:null,categoryAnimeBacklog:null,host:null,username:null,password:null,apiKey:null}}},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"clients"===n&&(e=Object.assign(e,s))}},getters:{},actions:{}},_={state:{qualities:{values:[],anySets:[],presets:[]},statuses:[],clientStatuses:[]},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"consts"===n&&(e=Object.assign(e,s))}},getters:{getQuality:e=>t=>{let{key:n,value:s}=t;if([n,s].every((e=>void 0===e))||[n,s].every((e=>void 0!==e)))throw new Error("Conflict in `getQuality`: Please provide either `key` or `value`.");return e.qualities.values.find((e=>n===e.key||s===e.value))},getQualityAnySet:e=>t=>{let{key:n,value:s}=t;if([n,s].every((e=>void 0===e))||[n,s].every((e=>void 0!==e)))throw new Error("Conflict in `getQualityAnySet`: Please provide either `key` or `value`.");return e.qualities.anySets.find((e=>n===e.key||s===e.value))},getQualityPreset:e=>t=>{let{key:n,value:s}=t;if([n,s].every((e=>void 0===e))||[n,s].every((e=>void 0!==e)))throw new Error("Conflict in `getQualityPreset`: Please provide either `key` or `value`.");return e.qualities.presets.find((e=>n===e.key||s===e.value))},getStatus:e=>t=>{let{key:n,value:s}=t;if([n,s].every((e=>void 0===e))||[n,s].every((e=>void 0!==e)))throw new Error("Conflict in `getStatus`: Please provide either `key` or `value`.");return e.statuses.find((e=>n===e.key||s===e.value))},getOverviewStatus:e=>(e,t,n)=>["Unset","Unaired"].includes(e)?"Unaired":["Skipped","Ignored"].includes(e)?"Skipped":["Archived"].includes(e)?"Preferred":["Wanted","Failed"].includes(e)?"Wanted":["Snatched","Snatched (Proper)","Snatched (Best)"].includes(e)?"Snatched":["Downloaded"].includes(e)?n.allowed.length>0&&0===n.preferred.length&&n.allowed.includes(t)||n.preferred.includes(t)?"Preferred":n.allowed.includes(t)?"Allowed":"Wanted":e,splitQuality:e=>t=>e.qualities.values.reduce(((e,n)=>{let{value:s}=n;return s&(t>>>=0)&&e.allowed.push(s),s<<16&t&&e.preferred.push(s),e}),{allowed:[],preferred:[]})},actions:{}},x={state:{main:{externalMappings:{},statusMap:{},traktIndexers:{},validLanguages:[],langabbvToId:{},recommendedLists:{}},indexers:{tvdb:{apiParams:{useZip:null,language:null},baseUrl:null,enabled:null,icon:null,id:null,identifier:null,mappedTo:null,name:null,scene_loc:null,showUrl:null,xemOrigin:null},tmdb:{apiParams:{useZip:null,language:null},baseUrl:null,enabled:null,icon:null,id:null,identifier:null,mappedTo:null,name:null,scene_loc:null,showUrl:null,xemOrigin:null},tvmaze:{apiParams:{useZip:null,language:null},baseUrl:null,enabled:null,icon:null,id:null,identifier:null,mappedTo:null,name:null,scene_loc:null,showUrl:null,xemOrigin:null}}},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"indexers"===n&&(e=Object.assign(e,s))}},getters:{indexerIdToName:e=>t=>{if(!t)return;const{indexers:n}=e;return Object.keys(n).find((e=>n[e].id===Number.parseInt(t,10)))},indexerNameToId:e=>t=>{const{indexers:n}=e;if(t&&n)return n[t].id},getIndexer:e=>t=>Object.values(e.indexers).find((e=>e.id===t))},actions:{}};var C=n(1532),k=n(3855),S=n(8126),I=n(7946);S.Z.addDefaultLocale(I);const E={setLayout(e,t){let{page:n,layout:s}=t;const{commit:o}=e;return o(r.Mk,{section:"layout",config:{[n]:s}}),c.hi.patch("config/main",{layout:{[n]:s}})},setTheme(e,t){let{themeName:n}=t;const{commit:s}=e;return c.hi.patch("config/main",{layout:{themeName:n}}).then((()=>s(r.Mk,{section:"layout",config:{themeName:n}})))},setSpecials(e,t){const{commit:n,state:s}=e,o=Object.assign({},s.show);return o.specials=t,c.hi.patch("config/main",{layout:{show:o}}).then((()=>n(r.Mk,{section:"layout",config:{show:o}})))},setPosterSortBy(e,t){let{value:n}=t;const{commit:s}=e;return c.hi.patch("config/main",{layout:{posterSortby:n}}).then((()=>s(r.Mk,{section:"layout",config:{posterSortby:n}})))},setPosterSortDir(e,t){let{value:n}=t;const{commit:s}=e;return c.hi.patch("config/main",{layout:{posterSortdir:n}}).then((()=>s(r.Mk,{section:"layout",config:{posterSortdir:n}})))},setLayoutShow(e,t){const{commit:n}=e;return c.hi.patch("config/main",{layout:{show:t}}).then((()=>n(r.Mk,{section:"layout",config:{show:t}})))},setStoreLayout(e,t){let{key:n,value:s}=t;const{commit:o}=e;return c.hi.patch("config/main",{layout:{[n]:s}}).then((()=>o(r.Mk,{section:"layout",config:{[n]:s}})))},setLayoutLocal(e,t){let{key:n,value:s}=t;const{commit:o}=e;return o(r.a_,{[n]:s})},setBacklogOverview(e,t){let{key:n,value:s}=t;const{commit:o,state:a}=e,i={...a.backlogOverview};return i[n]=s,o(r.Mk,{section:"layout",config:{backlogOverview:i}}),c.hi.patch("config/main",{layout:{backlogOverview:i}})}},P={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,accessToken:null},mutations:{},getters:{},actions:{}},T={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,webhook:null,tts:null},mutations:{},getters:{},actions:{}},$={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,host:null,port:null,from:null,tls:null,username:null,password:null,addressList:[],subject:null},mutations:{},getters:{},actions:{}},D={state:{enabled:null,host:null,apiKey:null},mutations:{},getters:{},actions:{}},B={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,api:null,id:null},mutations:{},getters:{},actions:{}},N={state:{enabled:null,host:null,password:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null},mutations:{},getters:{},actions:{}},L={state:{enabled:null,alwaysOn:null,libraryCleanPending:null,cleanLibrary:null,host:[],username:null,password:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,update:{library:null,full:null,onlyFirst:null}},mutations:{},getters:{},actions:{}},O={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null},mutations:{},getters:{},actions:{}},R={state:{enabled:null,host:null,database:null,mount:null},mutations:{},getters:{},actions:{}},q={state:{enabled:null,host:null,dbloc:null,database:null},mutations:{},getters:{},actions:{}},z={state:{client:{host:[],username:null,enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null},server:{updateLibrary:null,host:[],enabled:null,https:null,username:null,password:null,token:null}},mutations:{},getters:{},actions:{}},M={state:{enabled:null,api:[],messageTitle:null,priority:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null},mutations:{},getters:{},actions:{}},F={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,authToken:null},mutations:{},getters:{},actions:{}},U={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,authToken:null,device:null},mutations:{},getters:{},actions:{}},H={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,api:null,device:null},mutations:{},getters:{},actions:{}},Q={state:{enabled:null,apiKey:null,userKey:null,device:[],sound:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null},mutations:{},getters:{},actions:{}},W={state:{enabled:null,host:null,name:null,shareName:null},mutations:{},getters:{},actions:{}},j={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,webhook:null},mutations:{},getters:{},actions:{}},V={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null},mutations:{},getters:{},actions:{}},G={state:{enabled:null},mutations:{},getters:{},actions:{}},Z={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,api:null,id:null},mutations:{},getters:{},actions:{}},Y={state:{enabled:null,pinUrl:null,username:null,accessToken:null,timeout:null,defaultIndexer:null,sync:null,syncRemove:null,syncWatchlist:null,methodAdd:null,removeWatchlist:null,removeSerieslist:null,removeShowFromApplication:null,startPaused:null,blacklistName:null},mutations:{},getters:{},actions:{}},K={state:{enabled:null,notifyOnSnatch:null,notifyOnDownload:null,notifyOnSubtitleDownload:null,dmto:null,prefix:null,directMessage:null},mutations:{},getters:{},actions:{}},J={state:{},mutations:{},getters:{},actions:{},modules:{anime:w,clients:y,consts:_,indexers:x,layout:{state:{show:{specials:null,showListOrder:[],pagination:{enable:null}},home:null,selectedRootIndex:null,history:null,historyLimit:null,schedule:null,wide:null,timezoneDisplay:null,timeStyle:null,dateStyle:null,themeName:null,splitHomeInTabs:null,animeSplitHome:null,fanartBackground:null,fanartBackgroundOpacity:null,trimZero:null,sortArticle:null,fuzzyDating:null,comingEps:{missedRange:null,sort:null,displayPaused:null,layout:null},backlogOverview:{status:null,period:null},posterSortdir:null,posterSortby:null,local:{showFilterByName:"",posterSize:188,currentShowTab:null}},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"layout"===n&&(e=Object.assign(e,s))},[r.a_](e,t){e.local={...e.local,...t}}},getters:{fuzzyParseDateTime:e=>function(t){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=new S.Z("en-US"),{dateStyle:o,fuzzyDating:a,timeStyle:i}=e;if(!t||!o)return"";if(a)return s.format(new Date(t));if("%x"===o)return new Date(t).toLocaleString();const r=n?i:i.replace(":%S",""),l=(0,k.Z)(t);return(0,C.Z)(l,(0,p.fc)(`${o} ${r}`))},getShowFilterByName:e=>e.local.showFilterByName,prettyTimeDelta:e=>e=>{let t="";e<0&&(t="-");let n=0,s=0,o=0;const a=(0,p.qq)(e,86400);n=a.quotient,e=a.remainder;const i=(0,p.qq)(e,3600);s=i.quotient,e=i.remainder;const r=(0,p.qq)(e,60);return o=r.quotient,n>0&&(t+=` ${n}d`),s>0&&(t+=` ${s}h`),o>0&&(t+=` ${o}m`),(e=r.remainder)>0&&(t+=` ${e}s`),t}},actions:E},general:{state:{addTitleWithYear:null,wikiUrl:null,donationsUrl:null,namingForceFolders:null,sourceUrl:null,rootDirs:[],subtitles:{enabled:null},brokenProviders:[],logs:{debug:null,dbDebug:null,loggingLevels:{},numErrors:null,numWarnings:null,actualLogDir:null,nr:null,size:null,subliminalLog:null,privacyLevel:null,custom:{}},cpuPreset:null,subtitlesMulti:null,anonRedirect:null,recentShows:[],randomShowSlug:null,showDefaults:{status:null,statusAfter:null,quality:null,subtitles:null,seasonFolders:null,anime:null,scene:null,showLists:null},launchBrowser:null,defaultPage:null,trashRemoveShow:null,indexerDefaultLanguage:null,showUpdateHour:null,indexerTimeout:null,indexerDefault:null,plexFallBack:{enable:null,notifications:null,timeout:null},recommended:{cache:{shows:null,trakt:null,imdb:null,anidb:null,anilist:null},trakt:{selectedLists:[],availableLists:[]}},versionNotify:null,autoUpdate:null,updateFrequency:null,notifyOnUpdate:null,availableThemes:null,timePresets:[],datePresets:[],webInterface:{apiKey:null,log:null,username:null,password:null,port:null,host:null,notifyOnLogin:null,ipv6:null,httpsEnable:null,httpsCert:null,httpsKey:null,handleReverseProxy:null},sslVerify:null,sslCaBundle:null,noRestart:null,encryptionVersion:null,calendarUnprotected:null,calendarIcons:null,proxySetting:null,proxyProviders:null,proxyClients:null,proxyIndexers:null,proxyOthers:null,skipRemovedFiles:null,epDefaultDeletedStatus:null,developer:null,experimental:null,git:{username:null,password:null,token:null,authType:null,remote:null,path:null,org:null,reset:null,resetBranches:null,url:null},backlogOverview:{status:null,period:null},themeName:null,providers:{prowlarr:{url:null,apikey:null}}},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"main"===n&&(e=Object.assign(e,s))},addRecentShow(e,t){let{show:n}=t;e.recentShows=e.recentShows.filter((e=>!(e.showSlug===n.showSlug&&e.name===n.name))),e.recentShows.unshift(n),e.recentShows=e.recentShows.slice(0,5)},updateTraktSelectedLists(e,t){e.recommended.trakt.selectedLists=t}},getters:{effectiveIgnored:(e,t,n)=>e=>{const t=e.config.release.ignoredWords.map((e=>e.toLowerCase())),s=n.config.search.filters.ignored.map((e=>e.toLowerCase()));return e.config.release.ignoredWordsExclude?(0,p.KB)(s,t):(0,p.uW)(s.concat(t))},effectiveRequired:(e,t,n)=>e=>{const t=e.config.release.requiredWords.map((e=>e.toLowerCase())),s=n.config.search.filters.required.map((e=>e.toLowerCase()));return e.config.release.requiredWordsExclude?(0,p.KB)(s,t):(0,p.uW)(s.concat(t))}},actions:{getConfig(e,t){const{commit:n}=e;return c.hi.get("/config/"+(t||"")).then((e=>{if(t){const s=e.data;return n(r.Mk,{section:t,config:s}),s}const s=e.data;return Object.keys(s).forEach((e=>{const t=s[e];n(r.Mk,{section:e,config:t})})),s}))},setConfig(e,t){let{section:n,config:s}=t;return c.hi.patch(`config/${n}`,s)},updateConfig(e,t){let{section:n,config:s}=t;const{commit:o}=e;return o(r.Mk,{section:n,config:s})},getApiKey(e){const{commit:t}=e,n={webInterface:{apiKey:""}};return c.fL.get("config/general/generate_api_key").then((e=>(n.webInterface.apiKey=e.data,t(r.Mk,{section:"main",config:n}))))},setRecentShow(e,t){let{commit:n,state:s}=e;n("addRecentShow",{show:t});const o={recentShows:s.recentShows};return c.hi.patch("config/main",o)},setCustomLogs(e,t){let{commit:n}=e;const s=t.reduce(((e,t)=>({...e,[t.identifier]:t.level})),{});return c.hi.patch("config/main",{logs:{custom:t}}).then((()=>n(r.Mk,{section:"main",config:{logs:{custom:s}}})))},setTraktSelectedLists(e,t){let{commit:n}=e;return c.hi.patch("config/main",{recommended:{trakt:{selectedLists:t}}}).then((()=>n("updateTraktSelectedLists",t)))}}},metadata:{state:{metadataProviders:{}},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"metadata"===n&&(e=Object.assign(e,s))}},getters:{},actions:{}},notifiers:{state:{},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"notifiers"===n&&(e=Object.assign(e,s))}},getters:{},actions:{},modules:{boxcar2:P,discord:T,email:$,emby:D,freemobile:B,growl:N,kodi:L,libnotify:O,nmj:R,nmjv2:q,plex:z,prowl:M,pushalot:F,pushbullet:U,join:H,pushover:Q,pyTivo:W,slack:j,synology:V,synologyIndex:G,telegram:Z,trakt:Y,twitter:K}},postprocessing:{state:{naming:{pattern:null,multiEp:null,enableCustomNamingSports:null,enableCustomNamingAirByDate:null,patternSports:null,patternAirByDate:null,enableCustomNamingAnime:null,patternAnime:null,animeMultiEp:null,animeNamingType:null,stripYear:null},showDownloadDir:null,processAutomatically:null,processMethod:null,deleteRarContent:null,unpack:null,noDelete:null,reflinkAvailable:null,postponeIfSyncFiles:null,autoPostprocessorFrequency:10,airdateEpisodes:null,moveAssociatedFiles:null,allowedExtensions:[],addShowsWithoutDir:null,createMissingShowDirs:null,renameEpisodes:null,postponeIfNoSubs:null,nfoRename:null,syncFiles:[],fileTimestampTimezone:"local",extraScripts:[],extraScriptsUrl:null,multiEpStrings:{},downloadHandler:{enabled:null,frequency:null,minFrequency:null,torrentSeedRatio:null,torrentSeedAction:null},ffmpeg:{checkStreams:null,path:""}},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"postprocessing"===n&&(e=Object.assign(e,s))}},getters:{},actions:{}},search:{state:{filters:{ignoreUnknownSubs:!1,ignored:["german","french","core2hd","dutch","swedish","reenc","MrLss","dubbed"],undesired:["internal","xvid"],ignoredSubsList:["dk","fin","heb","kor","nor","nordic","pl","swe"],required:[],preferred:[]},general:{minDailySearchFrequency:10,minBacklogFrequency:720,dailySearchFrequency:40,checkPropersInterval:"4h",usenetRetention:500,maxCacheAge:30,backlogDays:7,backlogFrequency:720,cacheTrimming:!1,downloadPropers:!0,failedDownloads:{enabled:null,deleteFailed:null},removeFromClient:!1,randomizeProviders:!1,propersSearchDays:2,allowHighPriority:!0,trackersList:["udp://tracker.coppersurfer.tk:6969/announce","udp://tracker.leechers-paradise.org:6969/announce","udp://tracker.zer0day.to:1337/announce","udp://tracker.opentrackr.org:1337/announce","http://tracker.opentrackr.org:1337/announce","udp://p4p.arenabg.com:1337/announce","http://p4p.arenabg.com:1337/announce","udp://explodie.org:6969/announce","udp://9.rarbg.com:2710/announce","http://explodie.org:6969/announce","http://tracker.dler.org:6969/announce","udp://public.popcorn-tracker.org:6969/announce","udp://tracker.internetwarriors.net:1337/announce","udp://ipv4.tracker.harry.lu:80/announce","http://ipv4.tracker.harry.lu:80/announce","udp://mgtracker.org:2710/announce","http://mgtracker.org:6969/announce","udp://tracker.mg64.net:6969/announce","http://tracker.mg64.net:6881/announce","http://torrentsmd.com:8080/announce"]}},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"search"===n&&(e=Object.assign(e,s))}},getters:{},actions:{}},subtitles:{state:{acceptUnknownEmbeddedSubs:null,codeFilter:[],enabled:null,eraseCache:null,extraScripts:[],finderFrequency:null,hearingImpaired:null,ignoreEmbeddedSubs:null,keepOnlyWanted:null,location:null,logHistory:null,multiLanguage:null,perfectMatch:null,preScripts:[],providerLogins:{addic7ed:{user:"",pass:""},legendastv:{user:"",pass:""},opensubtitles:{user:"",pass:""}},services:[],stopAtFirst:null,wantedLanguages:[],wikiUrl:""},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"subtitles"===n&&(e=Object.assign(e,s))}},getters:{},actions:{}},system:{state:{branch:null,memoryUsage:null,schedulers:[],showQueue:[],diskSpace:[],sslVersion:null,pythonVersion:null,pid:null,os:null,logDir:null,dbPath:null,configFile:null,databaseVersion:{major:null,minor:null},locale:null,timezone:null,localUser:null,programDir:null,dataDir:null,cacheDir:null,appArgs:[],webRoot:null,runsInDocker:null,newestVersionMessage:null,gitRemoteBranches:[],cpuPresets:null,news:{lastRead:null,latest:null,unread:null},ffprobeVersion:null},mutations:{[r.Mk](e,t){let{section:n,config:s}=t;"system"===n&&(e=Object.assign(e,s))},[r.Wd](e,t){e.gitRemoteBranches=t}},getters:{getScheduler:e=>t=>e.schedulers.find((e=>t===e.key))||{}},actions:{getGitRemoteBranches(e){const{commit:t}=e;return(0,c.fL)("home/branchForceUpdate").then((e=>{if(e.data&&e.data.branches.length>0)return t(r.Wd,e.data.branches),e.data.branches}))},getShowQueue(e){const{commit:t}=e;return c.hi.get("/config/system/showQueue").then((e=>{const n=e.data,s={showQueue:n};return t(r.Mk,{section:"system",config:s}),n}))},updateQueueItemShow(e,t){const{commit:n}=e;return n(r.Df,t)}}}}},X={state:{queueitems:[]},mutations:{[r.Uu](e,t){const n=e.queueitems.find((e=>e.identifier===t.identifier));n?s.Z.set(e.queueitems,e.queueitems.indexOf(n),{...n,...t}):s.Z.set(e.queueitems,e.queueitems.length,t)}},getters:{getQueueItemsByName:e=>t=>e.queueitems.filter((e=>t.includes(e.name))),getQueueItemsByIdentifier:e=>t=>e.queueitems.filter((e=>e.identifier===t))},actions:{updateQueueItem(e,t){const{commit:n}=e;return n(r.Uu,t)}}};s.Z.use(o.ZP);const ee=new o.yh({modules:{auth:l,config:J,defaults:d,history:u,notifications:h,provider:m,recommended:g,schedule:f,shows:v,socket:b,stats:A,queue:X},state:{},mutations:{},getters:{},actions:{}}),te=(()=>{const{protocol:e,host:t}=window.location;return`${"https:"===e?"wss:":"ws:"}//${t}${document.body.getAttribute("web-root")}/ws/ui`})();s.Z.use(i(),te,{store:ee,format:"json",reconnection:!0,reconnectionAttempts:2,reconnectionDelay:1e3,passToStoreHandler:function(e,t,n){const s=e.toUpperCase(),o=t.data;if("SOCKET_ONMESSAGE"===s){const e=JSON.parse(o),{data:t,event:n}=e;if("notification"===n){const{body:e,hash:n,type:s,title:o}=t;window.displayNotification(s,o,e,n)}else if("configUpdated"===n){const{section:e,config:n}=t;this.store.dispatch("updateConfig",{section:e,config:n})}else"showUpdated"===n||"showAdded"===n?this.store.dispatch("updateShow",t):"showRemoved"===n?this.store.dispatch("removeShow",t):"addManualSearchResult"===n?this.store.dispatch("addManualSearchResult",t):"QueueItemUpdate"===n?this.store.dispatch("updateQueueItem",t):"QueueItemShow"===n?"REMOVE-SHOW"===t.name?this.store.dispatch("removeShow",t.show):this.store.dispatch("updateShowQueueItem",t):"historyUpdate"===n?this.store.dispatch("updateHistory",t):window.displayNotification("info",n,t)}n(e,t)},mutations:{SOCKET_ONOPEN:r.d_,SOCKET_ONCLOSE:r.hB,SOCKET_ONERROR:r.nX,SOCKET_ONMESSAGE:r.Od,SOCKET_RECONNECT:r.nj,SOCKET_RECONNECT_ERROR:r.Kr}});const ne=ee},6602:(e,t,n)=>{"use strict";n.d(t,{EM:()=>s,XP:()=>o,s2:()=>a,Nv:()=>i,z6:()=>r,Hw:()=>l,d_:()=>d,hB:()=>c,nX:()=>p,Od:()=>u,nj:()=>h,Kr:()=>m,UO:()=>g,TA:()=>v,Mk:()=>f,a_:()=>b,b6:()=>B,BV:()=>N,$0:()=>w,Rm:()=>C,u1:()=>y,iA:()=>k,pu:()=>S,Jh:()=>I,NB:()=>_,hq:()=>x,Wd:()=>A,sk:()=>E,rP:()=>P,XF:()=>T,VO:()=>$,l:()=>D,_i:()=>O,l_:()=>R,Tm:()=>q,fA:()=>z,OE:()=>M,l9:()=>F,Uu:()=>U,Df:()=>H,fL:()=>Q,C6:()=>W,Ye:()=>j,wk:()=>L,U0:()=>V});const s="🔒 Logging in",o="🔒 ✅ Login Successful",a="🔒 ❌ Login Failed",i="🔒 Logout",r="🔒 Refresh Token",l="🔒 Remove Auth Error",d="🔗 ✅ WebSocket connected",c="🔗 ❌ WebSocket disconnected",p="🔗 ❌ WebSocket error",u="🔗 ✉️ 📥 WebSocket message received",h="🔗 🔃 WebSocket reconnecting",m="🔗 🔃 ❌ WebSocket reconnection attempt failed",g="🔔 Notifications Enabled",v="🔔 Notifications Disabled",f="⚙️ Config added to store",b="⚙️ Local layout updated in store",A="⚙️ Add git remote branches to store",w="📺 Show added to store",y="📺 Show config updated in store",_="📺 Multiple Shows added to store in bulk",x="📺 Shows season with episodes added to store",C="ℹ️ Statistics added to store",k="📺 Recommended Show added to store",S="📺 Recommended Shows added to store",I="📺 Recommended Show Options added to store",E="SET_STATS",P="SET_MAX_DOWNLOAD_COUNT",T="📺 Add a scene exception",$="📺 Remove a scene exception",D="📺 Remove a shows search template",B="📺 History added to store",N="📺 History row added to store",L="📺 Search template added to shows templates",O="📺 Show specific History added to store",R="📺 Show's episode specific History added to store",q="⛽ Provider added to store",z="⛽ Provider list added to store",M="⛽ Provider cache results added to store",F="⛽ New search results added for provider",U="🔍 Search queue item updated",H="📺 Show queue item added to store",Q="📺 Show removed from store",W="⛽ Provider removed",j="⚙️ Anime config showlist default updated",V="📅 Schedule information added"},4054:(e,t,n)=>{"use strict";n.d(t,{yG:()=>s,JX:()=>o,gB:()=>a,fc:()=>r,uW:()=>l,KB:()=>d,X_:()=>p,T_:()=>u,$x:()=>h,qq:()=>m});const s=!1,o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const n=(e,t)=>e|t,s=e.reduce(((e,t)=>n(e,t)),0),o=t.reduce(((e,t)=>n(e,t)),0);return(s|o<<16)>>>0},a=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e||(e=0),e=Math.max(e,0);const n=t?1e3:1024;if(Math.abs(e)=n&&o{let t="",n=0,s=!1;for(;ne.reduce(((e,t)=>e.includes(t)?e:e.concat(t)),[]),d=(e,t)=>e.filter((e=>!t.includes(e))),c=e=>new Promise((t=>setTimeout(t,e))),p=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3e3,s=0;for(;!e();)if(await c(t),s+=t,s>n)throw new Error(`waitFor timed out (${n}ms)`);return s},u=(e,t)=>t?`s${e.toString().padStart(2,"0")}e${t.toString().padStart(2,"0")}`:`s${e.toString().padStart(2,"0")}`,h=()=>{Boolean(window.chrome)&&Boolean(window.chrome.webstore)?window.location.href=window.location.href:window.location.reload(!0)},m=(e,t)=>({quotient:Math.floor(e/t),remainder:e%t})},1666:(e,t,n)=>{"use strict";n.d(t,{yG:()=>a,i4:()=>i,nQ:()=>r});var s=n(7707),o=n(9755);const a=()=>{o(".imdbstars").qtip({content:{text(){return o(this).attr("qtip-content")}},show:{solo:!0},position:{my:"right center",at:"center left",adjust:{y:0,x:-6}},style:{tip:{corner:!0,method:"polygon"},classes:"qtip-rounded qtip-shadow ui-tooltip-sb"}})},i=()=>{o(".addQTip").each(((e,t)=>{o(t).css({cursor:"help","text-shadow":"0px 0px 0.5px #666"});const n=o(t).data("qtip-my")||"left center",s=o(t).data("qtip-at")||"middle right";o(t).qtip({show:{solo:!0},position:{my:n,at:s},style:{tip:{corner:!0,method:"polygon"},classes:"qtip-rounded qtip-shadow ui-tooltip-sb"}})}))},r=(e,t)=>{if(o.fn.updateSearchIconsStarted||!e)return;o.fn.updateSearchIconsStarted=!0,o.fn.forcedSearches=[];const n=e=>{e.disabled=!0},a=()=>{let i=5e3;s.hi.get(`search/${e}`).then((e=>{var s;i=e.data.results&&e.data.results.length>0?5e3:15e3,s=e.data.results,o.each(s,((e,s)=>{if(s.show.slug!==t.show.id.slug)return!0;const o=t.$refs[`search-${s.episode.slug}`];o&&("searching"===s.search.status.toLowerCase()?(o.title="Searching",o.alt="Searching",o.src="images/loading16.gif",n(o)):"queued"===s.search.status.toLowerCase()?(o.title="Queued",o.alt="queued",o.src="images/queued.png",n(o)):"finished"===s.search.status.toLowerCase()&&(o.title="Searching",o.alt="searching",o.src="images/search16.png",o.disabled=!1))}))})).catch((e=>{console.error(String(e)),i=3e4})).finally((()=>{setTimeout(a,i)}))};a()}},3958:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var s=n(7537),o=n.n(s),a=n(3645),i=n.n(a),r=n(1667),l=n.n(r),d=new URL(n(9482),n.b),c=new URL(n(2031),n.b),p=i()(o()),u=l()(d),h=l()(c);p.push([e.id,".vgt-table-styling .vgt-table{width:100%;margin-right:auto;margin-left:auto;text-align:left;border-spacing:0}.vgt-table-styling .vgt-table th,.vgt-table-styling .vgt-table td{padding:4px;vertical-align:middle}.vgt-table-styling .vgt-table th:first-child,.vgt-table-styling .vgt-table td:first-child{border-left:none}.vgt-table-styling .vgt-table th{text-align:center;border-collapse:collapse;font-weight:normal;position:relative}.vgt-table-styling .vgt-table span.break-word{word-wrap:break-word}.vgt-table-styling .vgt-table thead th.sorting.sorting-asc{background-position-x:right;background-position-y:bottom}.vgt-table-styling .vgt-table thead th.sorting{background-repeat:no-repeat}.vgt-table-styling .vgt-table thead th.sorting.sorting-desc{background-color:#555;background-image:url("+u+")}.vgt-table-styling .vgt-table thead th.sorting.sorting-asc{background-color:#555;background-image:url("+h+");background-position-x:right;background-position-y:bottom}.vgt-table-styling .vgt-table th.sortable button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;position:absolute;top:0;left:0;width:100%;height:100%}.vgt-table-styling .vgt-table thead th{padding:4px;cursor:default}.vgt-table-styling .vgt-table input.tablesorter-filter{width:98%;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.vgt-table-styling .vgt-table tr.tablesorter-filter-row,.vgt-table-styling .vgt-table tr.tablesorter-filter-row td{text-align:center}.vgt-table-styling .vgt-table input.tablesorter-filter-row .disabled{display:none}.vgt-table-styling .vgt-table tfoot tr{text-align:center;border-collapse:collapse}.vgt-table-styling .vgt-table tfoot a{text-decoration:none}.vgt-table-styling .vgt-table th.vgt-row-header{text-align:left}.vgt-table-styling .vgt-table .season-header{display:inline;margin-left:5px}.vgt-table-styling .vgt-table tr.spacer{height:25px}.vgt-table-styling .vgt-table tr:hover{opacity:.9}.vgt-table-styling .vgt-table tr.status td>span{color:#000}.vgt-table-styling .vgt-table span.episode-title>a{text-decoration:none}.vgt-table-styling .vgt-table span.episode-title>a:hover,.vgt-table-styling .vgt-table span.episode-title>a:focus{text-decoration:underline}.vgt-table-styling .vgt-table .skipped{background-color:#bedeed}.vgt-table-styling .vgt-table .snatched{background-color:#ebc1ea}.vgt-table-styling .vgt-table .downloaded{background-color:#ffda8a}.vgt-table-styling .vgt-table .failed{background-color:#f99}.vgt-table-styling .vgt-table .subtitled{background-color:#bedeed}.vgt-table-styling .vgt-table .archived{background-color:#f5f1e4}.vgt-table-styling .tablesorter-header-inner{padding:0 2px;text-align:center}.vgt-table-styling .vgt-dropdown>.button-group{position:relative}.vgt-table-styling .dropdown-toggle{position:absolute;z-index:1;top:.1em;right:.1em;width:1em;transition:width .2s ease-in-out}.vgt-table-styling .dropdown-toggle:hover,.vgt-table-styling .dropdown-toggle:active{width:2em}.vgt-table-styling .vgt-dropdown-menu{position:absolute;z-index:1;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-clip:padding-box;border-radius:3px;right:0;top:2em}.vgt-table-styling .vgt-dropdown-menu>li>span{display:block;padding:3px 5px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap}.vgt-table-styling .align-center{display:flex;justify-content:center}.vgt-table-styling .span-center>span{display:flex;justify-content:center}.vgt-table-styling .indexer-image :not(:last-child){margin-right:5px}.vgt-table-styling .button-row{width:100%;display:inline-block}.vgt-table-styling .global-ignored td.release span{color:red}.vgt-table-styling .show-ignored td.release span{color:red;font-style:italic}.vgt-table-styling .global-required td.release span{color:green}.vgt-table-styling .show-required td.release span{color:green;font-style:italic}.vgt-table-styling .global-undesired td.release span{color:orange}.vgt-table-styling td.col-footer{text-align:left !important}.vgt-table-styling .vgt-wrap__footer{color:#fff;padding:1em;background-color:#333;margin-bottom:1em;display:flex;justify-content:space-between}.vgt-table-styling .footer__row-count,.vgt-table-styling .footer__navigation__page-info{display:inline}.vgt-table-styling .footer__row-count__label{margin-right:1em}.vgt-table-styling .vgt-wrap__footer .footer__navigation{font-size:14px}.vgt-table-styling .vgt-pull-right{float:right !important}.vgt-table-styling .footer__navigation__page-btn{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;line-height:16px;vertical-align:middle;border-radius:1px}.vgt-table-styling .footer__navigation__page-btn:hover{text-decoration:none;background-position:0 -150px;transition:background-position 0s linear;background-image:none}.vgt-table-styling .footer__navigation__page-btn.disabled{display:none}.vgt-table-styling .vgt-wrap__footer .footer__navigation__page-btn .chevron{width:24px;height:24px;border-radius:15%;position:relative;margin:0 8px}.vgt-table-styling .vgt-wrap__footer .footer__navigation__info,.vgt-table-styling .vgt-wrap__footer .footer__navigation__page-info{display:inline-flex;color:#909399;margin:0 16px;margin-top:0;margin-right:16px;margin-bottom:0;margin-left:16px}.vgt-table-styling .vgt-input{height:23px;line-height:23px;font-size:.9em;width:100%;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;padding:0 10px;margin:0}.vgt-table-styling .vgt-select{height:23px;line-height:23px;font-size:.9em;width:100%;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;padding:0 10px}.vgt-table-styling .schedule tr.today{background-color:#f5f1e4}.vgt-table-styling .schedule tr.soon{background-color:#dfd}.vgt-table-styling .schedule tr.missed{background-color:#fdd}.vgt-table-styling .schedule tr.later{background-color:#bedeed}.vgt-table-styling .schedule tr,.vgt-table-styling .schedule tr a{color:#000}.tooltip-wrapper{float:left;min-width:340px}.invalid{background-color:#ff5b5b}.tooltip{display:block !important;z-index:10000}.tooltip .tooltip-inner{background:#ffef93;color:#555;border-radius:16px;padding:5px 10px 4px;border:1px solid #f1d031;-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.tooltip .tooltip-arrow{width:0;height:0;position:absolute;margin:5px;border:1px solid #ffef93;z-index:1}.tooltip[x-placement^=top]{margin-bottom:5px}.tooltip[x-placement^=top] .tooltip-arrow{border-width:5px 5px 0 5px;border-left-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;bottom:-5px;left:calc(50% - 4px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=bottom]{margin-top:5px}.tooltip[x-placement^=bottom] .tooltip-arrow{border-width:0 5px 5px 5px;border-left-color:transparent !important;border-right-color:transparent !important;border-top-color:transparent !important;top:-5px;left:calc(50% - 4px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=right]{margin-left:5px}.tooltip[x-placement^=right] .tooltip-arrow{border-width:5px 5px 5px 0;border-left-color:transparent !important;border-top-color:transparent !important;border-bottom-color:transparent !important;left:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip[x-placement^=left]{margin-right:5px}.tooltip[x-placement^=left] .tooltip-arrow{border-width:5px 0 5px 5px;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;right:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover .popover-inner{background:#ffef93;color:#555;padding:24px;border-radius:5px;box-shadow:0 5px 30px rgba(0,0,0,.1)}.tooltip.popover .popover-arrow{border-color:#ffef93}.tooltip[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.modal-container{border:1px solid #111;box-shadow:0 0 12px 0 rgba(0,0,0,.175);border-radius:0}.modal-header{padding:9px 15px;border-bottom:none;border-radius:0;background-color:#373737}.modal-content{background:#222;border-radius:0;border:1px solid rgba(0,0,0,.2);box-shadow:0 5px 15px rgba(0,0,0,.5);color:#fff}.modal-body{background:#222;overflow-y:auto}.modal-footer{border-top:none;text-align:center}.vue-tags-input{width:273px;border:1px solid #ccc;border-radius:3px}.vue-tags-input .ti-tag{display:inline-flex;width:100%}.vue-tags-input .ti-input{border:none}.vue-tags-input .country-left{margin-right:5px}svg.back-arrow{color:#337ab7;width:20px;height:20px;float:left;margin-right:1em;cursor:pointer}svg.back-arrow:hover,svg.back-arrow:focus{color:#23527c;transform:translateX(-2px);transition:transform ease-in-out .2s}","",{version:3,sources:["webpack://./src/style/vgt-table.scss","webpack://./src/style/v-tooltip.scss","webpack://./src/style/modal.scss","webpack://./src/style/vue-tags.scss","webpack://./src/style/back-arrow.scss"],names:[],mappings:"AAEI,8BACI,UAAA,CACA,iBAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CAEA,kEAEI,WAAA,CACA,qBAAA,CAIJ,0FAEI,gBAAA,CAGJ,iCACI,iBAAA,CACA,wBAAA,CACA,kBAAA,CACA,iBAAA,CAGJ,8CACI,oBAAA,CAGJ,2DACI,2BAAA,CACA,4BAAA,CAGJ,+CACI,2BAAA,CAGJ,4DACI,qBAAA,CACA,wDAAA,CAGJ,2DACI,qBAAA,CACA,wDAAA,CACA,2BAAA,CACA,4BAAA,CAGJ,iDACI,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,sBAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CAGJ,uCACI,WAAA,CACA,cAAA,CAGJ,uDACI,SAAA,CACA,WAAA,CACA,6BAAA,CACA,0BAAA,CACA,qBAAA,CAGJ,mHAEI,iBAAA,CAIJ,qEACI,YAAA,CAGJ,uCACI,iBAAA,CACA,wBAAA,CAGJ,sCACI,oBAAA,CAGJ,gDACI,eAAA,CAGJ,6CACI,cAAA,CACA,eAAA,CAGJ,wCACI,WAAA,CAGJ,uCACI,UAAA,CAMJ,gDACI,UAAA,CAGJ,mDACI,oBAAA,CAEA,kHAEI,yBAAA,CAIR,uCACI,wBAAA,CAGJ,wCACI,wBAAA,CAGJ,0CACI,wBAAA,CAGJ,sCACI,qBAAA,CAGJ,yCACI,wBAAA,CAGJ,wCACI,wBAAA,CAIR,6CACI,aAAA,CACA,iBAAA,CAGJ,+CACI,iBAAA,CAGJ,oCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,UAAA,CACA,SAAA,CACA,gCAAA,CAEA,qFAEI,SAAA,CAIR,sCACI,iBAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CACA,aAAA,CACA,cAAA,CACA,cAAA,CACA,eAAA,CACA,eAAA,CACA,2BAAA,CACA,iBAAA,CACA,OAAA,CACA,OAAA,CAEA,8CACI,aAAA,CACA,eAAA,CACA,UAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAKR,iCACI,YAAA,CACA,sBAAA,CAGJ,qCACI,YAAA,CACA,sBAAA,CAGJ,oDACI,gBAAA,CAGJ,+BACI,UAAA,CACA,oBAAA,CAGJ,mDACI,SAAA,CAGJ,iDACI,SAAA,CACA,iBAAA,CAGJ,oDACI,WAAA,CAGJ,kDACI,WAAA,CACA,iBAAA,CAGJ,qDACI,YAAA,CAGJ,iCACI,0BAAA,CAGJ,qCACI,UAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CACA,6BAAA,CAGJ,wFAEI,cAAA,CAGJ,6CACI,gBAAA,CAGJ,yDACI,cAAA,CAGJ,mCACI,sBAAA,CAGJ,iDACI,oBAAA,CACA,gBAAA,CACA,eAAA,CACA,cAAA,CACA,gBAAA,CACA,qBAAA,CACA,iBAAA,CAGJ,uDACI,oBAAA,CACA,4BAAA,CACA,wCAAA,CACA,qBAAA,CAGJ,0DACI,YAAA,CAGJ,4EACI,UAAA,CACA,WAAA,CACA,iBAAA,CACA,iBAAA,CACA,YAAA,CAGJ,mIAEI,mBAAA,CACA,aAAA,CACA,aAAA,CACA,YAAA,CACA,iBAAA,CACA,eAAA,CACA,gBAAA,CAGJ,8BACI,WAAA,CACA,gBAAA,CACA,cAAA,CACA,UAAA,CACA,qBAAA,CACA,qBAAA,CACA,qBAAA,CACA,iBAAA,CACA,cAAA,CACA,QAAA,CAGJ,+BACI,WAAA,CACA,gBAAA,CACA,cAAA,CACA,UAAA,CACA,qBAAA,CACA,qBAAA,CACA,qBAAA,CACA,iBAAA,CACA,cAAA,CAIJ,sCACI,wBAAA,CAGJ,qCACI,qBAAA,CAGJ,uCACI,qBAAA,CAGJ,sCACI,wBAAA,CAGJ,kEAEI,UAAA,CCnWR,iBACI,UAAA,CACA,eAAA,CAGJ,SACI,wBARW,CAWf,SACI,wBAAA,CACA,aAAA,CAEA,wBACI,kBAlBO,CAmBP,UAAA,CACA,kBAAA,CACA,oBAAA,CACA,wBAAA,CACA,kDAAA,CACA,+CAAA,CACA,0CAAA,CAGJ,wBACI,OAAA,CACA,QAAA,CACA,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,SAAA,CAKR,2BACI,iBAAA,CACA,0CACI,0BAAA,CACA,wCAAA,CACA,yCAAA,CACA,0CAAA,CACA,WAAA,CACA,oBAAA,CACA,YAAA,CACA,eAAA,CAIR,8BACI,cAAA,CACA,6CACI,0BAAA,CACA,wCAAA,CACA,yCAAA,CACA,uCAAA,CACA,QAAA,CACA,oBAAA,CACA,YAAA,CACA,eAAA,CAIR,6BACI,eAAA,CACA,4CACI,0BAAA,CACA,wCAAA,CACA,uCAAA,CACA,0CAAA,CACA,SAAA,CACA,mBAAA,CACA,aAAA,CACA,cAAA,CAIR,4BACI,gBAAA,CACA,2CACI,0BAAA,CACA,uCAAA,CACA,yCAAA,CACA,0CAAA,CACA,UAAA,CACA,mBAAA,CACA,aAAA,CACA,cAAA,CAKJ,gCACI,kBAjGO,CAkGP,UAAA,CACA,YAAA,CACA,iBAAA,CACA,oCAAA,CAGJ,gCACI,oBAzGO,CA6Gf,2BACI,iBAAA,CACA,SAAA,CACA,uCAAA,CAGJ,4BACI,kBAAA,CACA,SAAA,CACA,uBAAA,CCtHJ,iBACI,qBAAA,CACA,sCAAA,CACA,eAAA,CAGJ,cACI,gBAAA,CACA,kBAAA,CACA,eAAA,CACA,wBAAA,CAGJ,eACI,eAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,UAAA,CAGJ,YACI,eAAA,CACA,eAAA,CAGJ,cACI,eAAA,CACA,iBAAA,CC7BJ,gBACI,WAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wBACI,mBAAA,CACA,UAAA,CAGJ,0BACI,WAAA,CAGJ,8BACI,gBAAA,CCfR,eACI,aAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,gBAAA,CACA,cAAA,CAGJ,0CAEI,aAAA,CACA,0BAAA,CACA,oCAAA",sourcesContent:["/** Use this as table styling for all table layouts */\n.vgt-table-styling {\n .vgt-table {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n text-align: left;\n border-spacing: 0;\n \n th,\n td {\n padding: 4px;\n vertical-align: middle;\n }\n\n /* remove extra border from left edge */\n th:first-child,\n td:first-child {\n border-left: none;\n }\n\n th {\n text-align: center;\n border-collapse: collapse;\n font-weight: normal;\n position: relative;\n }\n\n span.break-word {\n word-wrap: break-word;\n }\n\n thead th.sorting.sorting-asc {\n background-position-x: right;\n background-position-y: bottom;\n }\n\n thead th.sorting {\n background-repeat: no-repeat;\n }\n\n thead th.sorting.sorting-desc {\n background-color: rgb(85, 85, 85);\n background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);\n }\n\n thead th.sorting.sorting-asc {\n background-color: rgb(85, 85, 85);\n background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);\n background-position-x: right;\n background-position-y: bottom;\n }\n\n th.sortable button {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n thead th {\n padding: 4px;\n cursor: default;\n }\n\n input.tablesorter-filter {\n width: 98%;\n height: auto;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n tr.tablesorter-filter-row,\n tr.tablesorter-filter-row td {\n text-align: center;\n }\n\n /* optional disabled input styling */\n input.tablesorter-filter-row .disabled {\n display: none;\n }\n\n tfoot tr {\n text-align: center;\n border-collapse: collapse;\n }\n\n tfoot a {\n text-decoration: none;\n }\n\n th.vgt-row-header {\n text-align: left;\n }\n\n .season-header {\n display: inline;\n margin-left: 5px;\n }\n\n tr.spacer {\n height: 25px;\n }\n\n tr:hover {\n opacity: 0.9;\n }\n\n /* When using collored rows (using the episode status name, Snatched, Downloaded, Failed, etc.)\n * we'd like to have the text always black.\n */\n tr.status td > span {\n color: rgb(0, 0, 0);\n }\n\n span.episode-title > a {\n text-decoration: none;\n \n &:hover,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .skipped {\n background-color: rgb(190, 222, 237);\n }\n \n .snatched {\n background-color: rgb(235, 193, 234);\n }\n \n .downloaded {\n background-color: rgb(255, 218, 138);\n }\n \n .failed {\n background-color: rgb(255, 153, 153);\n }\n \n .subtitled {\n background-color: rgb(190, 222, 237);\n }\n\n .archived {\n background-color: rgb(245, 241, 228);\n }\n } \n\n .tablesorter-header-inner {\n padding: 0 2px;\n text-align: center;\n }\n\n .vgt-dropdown > .button-group {\n position: relative;\n }\n\n .dropdown-toggle {\n position: absolute;\n z-index: 1;\n top: 0.1em;\n right: 0.1em;\n width: 1em;\n transition: width 0.2s ease-in-out;\n\n &:hover,\n &:active {\n width: 2em;\n }\n }\n\n .vgt-dropdown-menu {\n position: absolute;\n z-index: 1;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-clip: padding-box;\n border-radius: 3px;\n right: 0;\n top: 2em;\n\n > li > span {\n display: block;\n padding: 3px 5px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n white-space: nowrap;\n }\n \n }\n\n .align-center {\n display: flex;\n justify-content: center;\n }\n\n .span-center > span {\n display: flex;\n justify-content: center;\n }\n\n .indexer-image :not(:last-child) {\n margin-right: 5px;\n }\n\n .button-row {\n width: 100%;\n display: inline-block;\n }\n\n .global-ignored td.release span {\n color: red;\n }\n\n .show-ignored td.release span {\n color: red;\n font-style: italic;\n }\n\n .global-required td.release span {\n color: green;\n }\n\n .show-required td.release span {\n color: green;\n font-style: italic;\n }\n\n .global-undesired td.release span {\n color: orange;\n }\n\n td.col-footer {\n text-align: left !important;\n }\n\n .vgt-wrap__footer {\n color: rgb(255, 255, 255);\n padding: 1em;\n background-color: rgb(51, 51, 51);\n margin-bottom: 1em;\n display: flex;\n justify-content: space-between;\n }\n\n .footer__row-count,\n .footer__navigation__page-info {\n display: inline;\n }\n\n .footer__row-count__label {\n margin-right: 1em;\n }\n\n .vgt-wrap__footer .footer__navigation {\n font-size: 14px;\n }\n\n .vgt-pull-right {\n float: right !important;\n }\n\n .footer__navigation__page-btn {\n display: inline-block;\n padding: 4px 10px;\n margin-bottom: 0;\n font-size: 12px;\n line-height: 16px;\n vertical-align: middle;\n border-radius: 1px;\n }\n\n .footer__navigation__page-btn:hover {\n text-decoration: none;\n background-position: 0 -150px;\n transition: background-position 0s linear;\n background-image: none;\n }\n\n .footer__navigation__page-btn.disabled {\n display: none;\n }\n\n .vgt-wrap__footer .footer__navigation__page-btn .chevron {\n width: 24px;\n height: 24px;\n border-radius: 15%;\n position: relative;\n margin: 0 8px;\n }\n\n .vgt-wrap__footer .footer__navigation__info,\n .vgt-wrap__footer .footer__navigation__page-info {\n display: inline-flex;\n color: #909399;\n margin: 0 16px;\n margin-top: 0;\n margin-right: 16px;\n margin-bottom: 0;\n margin-left: 16px;\n }\n\n .vgt-input {\n height: 23px;\n line-height: 23px;\n font-size: 0.9em;\n width: 100%;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 3px;\n padding: 0 10px;\n margin: 0;\n }\n \n .vgt-select {\n height: 23px;\n line-height: 23px;\n font-size: 0.9em;\n width: 100%;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 3px;\n padding: 0 10px;\n }\n\n /* Schedule list layout */\n .schedule tr.today {\n background-color: rgb(245, 241, 228);\n }\n\n .schedule tr.soon {\n background-color: rgb(221, 255, 221);\n }\n\n .schedule tr.missed {\n background-color: rgb(255, 221, 221);\n }\n\n .schedule tr.later {\n background-color: rgb(190, 222, 237);\n }\n\n .schedule tr,\n .schedule tr a {\n color: rgb(0, 0, 0);\n }\n}","// variables\n$tooltipColor: #ffef93;\n$tooltipBorderColor: #f1d031;\n$invalidColor: #ff5b5b;\n\n.tooltip-wrapper {\n float: left;\n min-width: 340px;\n}\n\n.invalid {\n background-color: $invalidColor;\n}\n\n.tooltip {\n display: block !important;\n z-index: 10000;\n\n .tooltip-inner {\n background: $tooltipColor;\n color: #555;\n border-radius: 16px;\n padding: 5px 10px 4px;\n border: 1px solid $tooltipBorderColor;\n -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n }\n\n .tooltip-arrow {\n width: 0;\n height: 0;\n position: absolute;\n margin: 5px;\n border: 1px solid $tooltipColor;\n z-index: 1;\n }\n\n}\n\n.tooltip[x-placement^='top'] {\n margin-bottom: 5px;\n .tooltip-arrow {\n border-width: 5px 5px 0 5px;\n border-left-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n bottom: -5px;\n left: calc(50% - 4px);\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n.tooltip[x-placement^='bottom'] {\n margin-top: 5px;\n .tooltip-arrow {\n border-width: 0 5px 5px 5px;\n border-left-color: transparent !important;\n border-right-color: transparent !important;\n border-top-color: transparent !important;\n top: -5px;\n left: calc(50% - 4px);\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n.tooltip[x-placement^='right'] {\n margin-left: 5px;\n .tooltip-arrow {\n border-width: 5px 5px 5px 0;\n border-left-color: transparent !important;\n border-top-color: transparent !important;\n border-bottom-color: transparent !important;\n left: -4px;\n top: calc(50% - 5px);\n margin-left: 0;\n margin-right: 0;\n }\n}\n\n.tooltip[x-placement^='left'] {\n margin-right: 5px;\n .tooltip-arrow {\n border-width: 5px 0 5px 5px;\n border-top-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n right: -4px;\n top: calc(50% - 5px);\n margin-left: 0;\n margin-right: 0;\n }\n}\n\n.tooltip.popover {\n .popover-inner {\n background: $tooltipColor;\n color: #555;\n padding: 24px;\n border-radius: 5px;\n box-shadow: 0 5px 30px rgba(black, 0.1);\n }\n\n .popover-arrow {\n border-color: $tooltipColor;\n }\n}\n\n.tooltip[aria-hidden='true'] {\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.15s, visibility 0.15s;\n}\n\n.tooltip[aria-hidden='false'] {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.15s;\n}","/** Style the modal. This should be saved somewhere, where we create one modal template with slots, and style that. */\n.modal-container {\n border: 1px solid rgb(17, 17, 17);\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.175);\n border-radius: 0;\n}\n\n.modal-header {\n padding: 9px 15px;\n border-bottom: none;\n border-radius: 0;\n background-color: rgb(55, 55, 55);\n}\n\n.modal-content {\n background: rgb(34, 34, 34);\n border-radius: 0;\n border: 1px solid rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n color: white;\n}\n\n.modal-body {\n background: rgb(34, 34, 34);\n overflow-y: auto;\n}\n\n.modal-footer {\n border-top: none;\n text-align: center;\n}\n",".vue-tags-input {\n width: 273px;\n border: 1px solid rgb(204, 204, 204);\n border-radius: 3px;\n\n .ti-tag {\n display: inline-flex;\n width: 100%;\n }\n\n .ti-input {\n border: none;\n }\n\n .country-left {\n margin-right: 5px;\n }\n}","svg.back-arrow {\n color: #337ab7;\n width: 20px;\n height: 20px;\n float: left;\n margin-right: 1em;\n cursor: pointer;\n}\n\nsvg.back-arrow:hover,\nsvg.back-arrow:focus {\n color: #23527c;\n transform: translateX(-2px);\n transition: transform ease-in-out 0.2s;\n}"],sourceRoot:""}]);const m=p},8321:(e,t,n)=>{var s=n(7537),o=n(3645)(s);o.push([e.id,"\ndiv.anidb-release-group-ui-wrapper[data-v-390a1f71] {\n clear: both;\n margin-bottom: 20px;\n}\ndiv.anidb-release-group-ui-wrapper ul[data-v-390a1f71] {\n border-style: solid;\n border-width: thin;\n padding: 5px 2px 2px 5px;\n list-style: none;\n}\ndiv.anidb-release-group-ui-wrapper li.active[data-v-390a1f71] {\n background-color: cornflowerblue;\n}\ndiv.anidb-release-group-ui-wrapper div.arrow img[data-v-390a1f71] {\n cursor: pointer;\n height: 32px;\n width: 32px;\n}\ndiv.anidb-release-group-ui-wrapper img.deleteFromWhitelist[data-v-390a1f71],\ndiv.anidb-release-group-ui-wrapper img.deleteFromBlacklist[data-v-390a1f71] {\n float: right;\n}\ndiv.anidb-release-group-ui-wrapper #add-new-release-group p > img[data-v-390a1f71] {\n height: 16px;\n width: 16px;\n background-color: rgb(204, 204, 204);\n}\ndiv.anidb-release-group-ui-wrapper.placeholder[data-v-390a1f71] {\n height: 32px;\n}\ndiv.anidb-release-group-ui-wrapper.max-width[data-v-390a1f71] {\n max-width: 960px;\n}\n","",{version:3,sources:["webpack://./src/components/anidb-release-group-ui.vue"],names:[],mappings:";AAoOA;IACA,WAAA;IACA,mBAAA;AACA;AAEA;IACA,mBAAA;IACA,kBAAA;IACA,wBAAA;IACA,gBAAA;AACA;AAEA;IACA,gCAAA;AACA;AAEA;IACA,eAAA;IACA,YAAA;IACA,WAAA;AACA;AAEA;;IAEA,YAAA;AACA;AAEA;IACA,YAAA;IACA,WAAA;IACA,oCAAA;AACA;AAEA;IACA,YAAA;AACA;AAEA;IACA,gBAAA;AACA",sourcesContent:['\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./lazy-image.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./lazy-image.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./lazy-image.vue?vue&type=template&id=05ed6915&scoped=true&\"\nimport script from \"./lazy-image.vue?vue&type=script&lang=js&\"\nexport * from \"./lazy-image.vue?vue&type=script&lang=js&\"\nimport style0 from \"./lazy-image.vue?vue&type=style&index=0&id=05ed6915&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05ed6915\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('img',{staticClass:\"app-image\",class:_vm.lazyCls,style:(_vm.style),attrs:{\"data-src\":_vm.lazySrc,\"data-srcset\":_vm.lazySrcset},on:{\"error\":function($event){_vm.error = true}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asset.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asset.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./asset.vue?vue&type=template&id=2f5931d0&scoped=true&\"\nimport script from \"./asset.vue?vue&type=script&lang=js&\"\nexport * from \"./asset.vue?vue&type=script&lang=js&\"\nimport style0 from \"./asset.vue?vue&type=style&index=0&id=2f5931d0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f5931d0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.lazy)?_c('div',{staticStyle:{\"display\":\"inherit\"}},[(!_vm.link)?_c('img',_vm._b({on:{\"error\":function($event){_vm.error = true}}},'img',{ src: _vm.src, class: _vm.cls, class: _vm.newCls },false)):_c('app-link',{attrs:{\"href\":_vm.href}},[_c('img',_vm._b({on:{\"error\":function($event){_vm.error = true}}},'img',{ src: _vm.src, class: _vm.newCls, style: _vm.imgStyle },false))])],1):_c('div',{staticStyle:{\"display\":\"inherit\"}},[(!_vm.link)?_c('lazy-image',{attrs:{\"lazy-src\":_vm.src,\"lazy-cls\":_vm.newCls,\"lazy-default-src\":_vm.defaultSrc,\"lazy-width\":_vm.imgWidth}}):_c('app-link',{attrs:{\"href\":_vm.href}},[_c('lazy-image',{attrs:{\"lazy-src\":_vm.src,\"lazy-cls\":_vm.newCls,\"lazy-default-src\":_vm.defaultSrc}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"select-list max-width\"},[_c('ul',[_vm._l((_vm.items),function(exception){return _c('li',{key:((exception.title) + \"-\" + (exception.season))},[_c('div',{staticClass:\"input-group form-inline\",attrs:{\"disabled\":!exception.custom}},[_c('input',{staticClass:\"form-control input-sm\",attrs:{\"type\":\"text\",\"disabled\":!exception.custom},domProps:{\"value\":exception.title}}),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(exception.season),expression:\"exception.season\"}],staticClass:\"select-season\",attrs:{\"name\":\"scene-exception-season\",\"disabled\":!exception.custom},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(exception, \"season\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.availableSeasons),function(season){return _c('option',{key:season.value,domProps:{\"value\":season.value}},[_vm._v(\"\\n \"+_vm._s(season.description)+\"\\n \")])}),0),_vm._v(\" \"),(!exception.custom)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.right\",value:('This exception has been automatically added through an automated process sourcing title aliases from medusa github repo, thexem.de or anidb.info'),expression:\"'This exception has been automatically added through an automated process sourcing title aliases from medusa github repo, thexem.de or anidb.info'\",modifiers:{\"right\":true}}],staticClass:\"external-scene-exception\"},[_vm._m(0,true)]):_c('div',{staticClass:\"input-group-btn\",on:{\"click\":function($event){return _vm.removeException(exception)}}},[_vm._m(1,true)])])])}),_vm._v(\" \"),_c('div',{staticClass:\"new-item\"},[_c('div',{staticClass:\"input-group form-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newItem),expression:\"newItem\"}],ref:\"newItemInput\",staticClass:\"form-control input-sm\",attrs:{\"type\":\"text\",\"placeholder\":\"add new values per line\"},domProps:{\"value\":(_vm.newItem)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newItem=$event.target.value}}}),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedSeason),expression:\"selectedSeason\"}],staticClass:\"select-season\",attrs:{\"name\":\"add-exception-season\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedSeason=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.availableSeasons),function(season){return _c('option',{key:season.value,domProps:{\"value\":season.value}},[_vm._v(\"\\n \"+_vm._s(season.description)+\"\\n \")])}),0),_vm._v(\" \"),_c('div',{staticClass:\"input-group-btn\",attrs:{\"disabled\":!_vm.unique},on:{\"click\":function($event){return _vm.addException()}}},[_vm._m(2)])])]),_vm._v(\" \"),(!_vm.unique)?_c('div',[_vm._m(3)]):_vm._e(),_vm._v(\" \"),(_vm.newItem.length > 0 && _vm.unique)?_c('div',{staticClass:\"new-item-help\"},[_vm._v(\"\\n Click \"),_c('i',{staticClass:\"glyphicon glyphicon-plus\"}),_vm._v(\" to add your \"),_c('b',[_vm._v(_vm._s(_vm.selectedSeason === -1 ? 'Show Exception' : 'Season Exception'))]),_vm._v(\".\\n \")]):_vm._e()],2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"align-center\"},[_c('img',{attrs:{\"src\":\"images/ico/favicon-16.png\",\"width\":\"16\",\"height\":\"16\",\"alt\":\"search\",\"title\":\"This exception has been automatically added through an automated process sourcing title aliases from medusa github repo, thexem.de or anidb.info\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn btn-default input-sm\",staticStyle:{\"font-size\":\"14px\"}},[_c('i',{staticClass:\"glyphicon glyphicon-remove\",attrs:{\"title\":\"Remove\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn btn-default input-sm\",staticStyle:{\"font-size\":\"14px\"}},[_c('i',{staticClass:\"glyphicon glyphicon-plus\",attrs:{\"title\":\"Add\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_c('b',[_vm._v(\"This exception has already been added for this show.\"),_c('br'),_vm._v(\"Can't add the same exception twice!\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-scene-exceptions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-scene-exceptions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-scene-exceptions.vue?vue&type=template&id=272125cb&scoped=true&\"\nimport script from \"./config-scene-exceptions.vue?vue&type=script&lang=js&\"\nexport * from \"./config-scene-exceptions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-scene-exceptions.vue?vue&type=style&index=0&id=272125cb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"272125cb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"config-subtitle-languages\"}},[_c('vue-tags-input',{attrs:{\"tags\":_vm.wantedLanguages,\"autocomplete-items\":_vm.filteredItems,\"add-only-from-autocomplete\":\"\",\"placeholder\":\"Write to search a language and select it\"},on:{\"tags-changed\":_vm.tagsChanged},scopedSlots:_vm._u([{key:\"autocomplete-item\",fn:function(props){return _c('div',{staticClass:\"autocomplete-item\",on:{\"click\":function($event){return props.performAdd(props.item)}}},[_c('img',{staticStyle:{\"vertical-align\":\"middle !important\"},attrs:{\"src\":(\"images/subtitles/flags/\" + (props.item.text) + \".png\"),\"onError\":\"this.onerror=null; this.src='images/flags/unknown.png';\"}}),_vm._v(\"\\n \"+_vm._s(props.item.name)+\"\\n \")])}},{key:\"tag-left\",fn:function(props){return _c('div',{staticClass:\"country-left\",on:{\"click\":function($event){return props.performOpenEdit(props.index)}}},[_c('img',{staticStyle:{\"vertical-align\":\"middle !important\"},attrs:{\"src\":(\"images/subtitles/flags/\" + (props.tag.text) + \".png\"),\"onError\":\"this.onerror=null; this.src='images/flags/unknown.png';\"}})])}}]),model:{value:(_vm.tag),callback:function ($$v) {_vm.tag=$$v},expression:\"tag\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-subtitle-languages.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-subtitle-languages.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-subtitle-languages.vue?vue&type=template&id=0fbc8b46&scoped=true&\"\nimport script from \"./config-subtitle-languages.vue?vue&type=script&lang=js&\"\nexport * from \"./config-subtitle-languages.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-subtitle-languages.vue?vue&type=style&index=0&id=0fbc8b46&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0fbc8b46\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-textbox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-textbox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-textbox.vue?vue&type=template&id=1f6251e9&scoped=true&\"\nimport script from \"./config-textbox.vue?vue&type=script&lang=js&\"\nexport * from \"./config-textbox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-textbox.vue?vue&type=style&index=0&id=1f6251e9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f6251e9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"config-textbox\"}},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":_vm.id}},[_c('span',[_vm._v(_vm._s(_vm.label))])])]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('div',{staticClass:\"parent\",class:_vm.inputClass},[((({id: _vm.id, type: _vm.type, name: _vm.id, placeholder: _vm.placeholder, disabled: _vm.disabled}).type)==='checkbox')?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localValue),expression:\"localValue\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.localValue)?_vm._i(_vm.localValue,null)>-1:(_vm.localValue)},on:{\"input\":function($event){return _vm.updateValue()},\"change\":function($event){var $$a=_vm.localValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.localValue=$$a.concat([$$v]))}else{$$i>-1&&(_vm.localValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.localValue=$$c}}}},'input',{id: _vm.id, type: _vm.type, name: _vm.id, placeholder: _vm.placeholder, disabled: _vm.disabled},false)):((({id: _vm.id, type: _vm.type, name: _vm.id, placeholder: _vm.placeholder, disabled: _vm.disabled}).type)==='radio')?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localValue),expression:\"localValue\"}],attrs:{\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.localValue,null)},on:{\"input\":function($event){return _vm.updateValue()},\"change\":function($event){_vm.localValue=null}}},'input',{id: _vm.id, type: _vm.type, name: _vm.id, placeholder: _vm.placeholder, disabled: _vm.disabled},false)):_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localValue),expression:\"localValue\"}],attrs:{\"type\":({id: _vm.id, type: _vm.type, name: _vm.id, placeholder: _vm.placeholder, disabled: _vm.disabled}).type},domProps:{\"value\":(_vm.localValue)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.localValue=$event.target.value},function($event){return _vm.updateValue()}]}},'input',{id: _vm.id, type: _vm.type, name: _vm.id, placeholder: _vm.placeholder, disabled: _vm.disabled},false)),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"uri-error\"}},[(_vm.uriError)?_c('div',{staticClass:\"uri-error\"},[_vm._v(\"Make sure to start your URI with http://, https://, scgi://, etc..\")]):_vm._e()]),_vm._v(\" \"),_vm._t(\"warning\")],2),_vm._v(\" \"),_vm._l((_vm.explanations),function(explanation,index){return _c('p',{key:index},[_vm._v(_vm._s(explanation))])}),_vm._v(\" \"),_vm._t(\"default\")],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-textbox-number.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-textbox-number.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-textbox-number.vue?vue&type=template&id=69e4e766&\"\nimport script from \"./config-textbox-number.vue?vue&type=script&lang=js&\"\nexport * from \"./config-textbox-number.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-textbox-number.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"config-textbox-number-content\"}},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":_vm.id}},[_c('span',[_vm._v(_vm._s(_vm.label))])])]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localValue),expression:\"localValue\"}],attrs:{\"type\":\"number\"},domProps:{\"value\":(_vm.localValue)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.localValue=$event.target.value},function($event){return _vm.updateValue()}]}},'input',{min: _vm.min, max: _vm.max, step: _vm.step, id: _vm.id, name: _vm.id, class: _vm.inputClass, placeholder: _vm.placeholder, disabled: _vm.disabled},false)),_vm._v(\" \"),_vm._l((_vm.explanations),function(explanation,index){return _c('p',{key:index},[_vm._v(_vm._s(explanation))])}),_vm._v(\" \"),_vm._t(\"default\")],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.experimental || _vm.experimentalEnabled)?_c('div',{attrs:{\"id\":\"config-toggle-slider-content\"}},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":_vm.id}},[_c('span',[_vm._v(_vm._s(_vm.label))])])]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('toggle-button',_vm._b({attrs:{\"width\":45,\"height\":22,\"sync\":\"\"},on:{\"input\":function($event){return _vm.updateValue()}},model:{value:(_vm.localChecked),callback:function ($$v) {_vm.localChecked=$$v},expression:\"localChecked\"}},'toggle-button',{id: _vm.id, name: _vm.id, disabled: _vm.disabled},false)),_vm._v(\" \"),_vm._l((_vm.explanations),function(explanation,index){return _c('p',{key:index},[_vm._v(_vm._s(explanation))])}),_vm._v(\" \"),_vm._t(\"default\"),_vm._v(\" \"),(_vm.experimental)?_c('span',{staticStyle:{\"color\":\"red\"}},[_vm._v(\"This is an experimental feature\")]):_vm._e()],2)])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-toggle-slider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-toggle-slider.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-toggle-slider.vue?vue&type=template&id=4bfe1717&\"\nimport script from \"./config-toggle-slider.vue?vue&type=script&lang=js&\"\nexport * from \"./config-toggle-slider.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-toggle-slider.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"custom-newznab\"}},[_c('config-template',{attrs:{\"label-for\":\"select_newznab_provider\",\"label\":\"Select Provider\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedProvider),expression:\"selectedProvider\"}],staticClass:\"form-control input-sm\",attrs:{\"id\":\"select-provider\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedProvider=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"#add\"}},[_vm._v(\"--- add new provider ---\")]),_vm._v(\" \"),_vm._l((_vm.newznabProviderOptions),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])})],2)]),_vm._v(\" \"),(_vm.currentProvider && _vm.selectedProvider !== '#add')?_c('div',{staticClass:\"edit-provider\"},[_c('config-textbox',{attrs:{\"disabled\":\"\",\"label\":\"Provider name\",\"id\":\"edit_provider_name\"},model:{value:(_vm.currentProvider.name),callback:function ($$v) {_vm.$set(_vm.currentProvider, \"name\", $$v)},expression:\"currentProvider.name\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"disabled\":\"\",\"label\":\"Site Url\",\"id\":\"edit_provider_url\"},model:{value:(_vm.currentProvider.url),callback:function ($$v) {_vm.$set(_vm.currentProvider, \"url\", $$v)},expression:\"currentProvider.url\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"Api key\",\"id\":\"edit_provider_api\"},model:{value:(_vm.currentProvider.config.apikey),callback:function ($$v) {_vm.$set(_vm.currentProvider.config, \"apikey\", $$v)},expression:\"currentProvider.config.apikey\"}}),_vm._v(\" \"),_c('config-template',{attrs:{\"label\":\"Categories\",\"label-for\":\"catids\"}},[_c('multiselect',{attrs:{\"value\":_vm.providerCatIds,\"multiple\":true,\"options\":_vm.availableCategories,\"label\":\"id\",\"track-by\":\"id\",\"taggable\":true,\"tag-placeholder\":\"Add this as new cat id\",\"placeholder\":\"Search or add a cat id\"},on:{\"tag\":_vm.addTag,\"input\":function($event){_vm.currentProvider.config.catIds = $event.map(function (cat) { return cat.id; })}},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return [(props.option.isTag)?_c('span',[_c('strong',[_vm._v(_vm._s(props.option.label))])]):_c('span',[_c('strong',[_vm._v(_vm._s(props.option.id))]),_vm._v(\" (\"+_vm._s(props.option.name)+\")\")])]}}],null,false,2742372380)})],1),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa btn-danger newznab_delete\",attrs:{\"disabled\":_vm.currentProvider.default,\"id\":\"newznab_delete\"},on:{\"click\":_vm.removeProvider}},[_vm._v(\"Delete\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter_refresh\",on:{\"click\":function($event){return _vm.$emit('save')}}},[_vm._v(\"Save Changes\")]),_vm._v(\" \"),(_vm.currentProvider.manager === 'prowlarr')?_c('p',{staticClass:\"manager-note\"},[_c('img',{staticStyle:{\"width\":\"16px\"},attrs:{\"src\":\"images/providers/prowlarr.png\"}}),_vm._v(\"\\n Note! This is a provider configured through the 'Configure Custom Prowlarr Providers' tab.\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.selectedProvider === '#add')?_c('div',{staticClass:\"add-provider\"},[_c('config-textbox',{attrs:{\"label\":\"Provider name\",\"id\":\"add_provider_name\"},scopedSlots:_vm._u([{key:\"warning\",fn:function(){return [_c('transition',{attrs:{\"name\":\"warning\"}},[(!_vm.providerIdAvailable)?_c('div',{staticClass:\"warning\"},[_vm._v(\"This provider id is already used.\")]):_vm._e()])]},proxy:true}],null,false,3405532282),model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Site Url\",\"id\":\"add_provider_url\"},model:{value:(_vm.url),callback:function ($$v) {_vm.url=$$v},expression:\"url\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"Api key\",\"id\":\"add_provider_api\"},model:{value:(_vm.apikey),callback:function ($$v) {_vm.apikey=$$v},expression:\"apikey\"}}),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",attrs:{\"disabled\":!_vm.providerIdAvailable},on:{\"click\":_vm.addProvider}},[_vm._v(\"Add Provider\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-newznab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-newznab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-custom-newznab.vue?vue&type=template&id=149b4f77&scoped=true&\"\nimport script from \"./config-custom-newznab.vue?vue&type=script&lang=js&\"\nexport * from \"./config-custom-newznab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-custom-newznab.vue?vue&type=style&index=0&id=149b4f77&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"149b4f77\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"custom-prowlarr\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('config-textbox',{attrs:{\"label\":\"Prowler Url\",\"id\":\"prowler_url\"},model:{value:(_vm.prowlarr.url),callback:function ($$v) {_vm.$set(_vm.prowlarr, \"url\", $$v)},expression:\"prowlarr.url\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Api Key\",\"id\":\"prowler_apikey\"},model:{value:(_vm.prowlarr.apikey),callback:function ($$v) {_vm.$set(_vm.prowlarr, \"apikey\", $$v)},expression:\"prowlarr.apikey\"}}),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",on:{\"click\":_vm.saveConfig}},[_vm._v(\"Save\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",on:{\"click\":_vm.testConnectivity}},[_vm._v(\"Test\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",on:{\"click\":_vm.getAvailableProviders}},[_vm._v(\"Get Providers\")]),_vm._v(\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.testResult),expression:\"testResult\"}],staticClass:\"testresult\"},[_vm._v(_vm._s(_vm.testResult))])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12 vgt-table-styling\"},[_c('h3',[_vm._v(\"Available providers\")]),_vm._v(\" \"),_c('vue-good-table',{attrs:{\"columns\":_vm.columns,\"rows\":_vm.prowlarrProviders,\"search-options\":{\n enabled: false\n },\"sort-options\":{\n enabled: true,\n initialSortBy: { field: 'name', type: 'asc' }\n },\"styleClass\":\"vgt-table condensed\"},scopedSlots:_vm._u([{key:\"table-row\",fn:function(props){return [(props.column.label === 'Added')?_c('span',{staticClass:\"align-center\"},[(props.row.localProvider)?_c('img',{attrs:{\"src\":\"/images/yes16.png\"}}):_vm._e()]):(props.column.label === 'Action')?_c('span',{staticClass:\"align-center\"},[(!props.row.localProvider)?_c('button',{staticClass:\"btn-medusa config_submitter\",on:{\"click\":function($event){return _vm.addProvider(props.row)}}},[_vm._v(\"Add Provider\")]):_c('button',{staticClass:\"btn-medusa btn-danger\",on:{\"click\":function($event){return _vm.removeProvider(props.row)}}},[_vm._v(\"Remove Provider\")])]):_vm._e()]}}])})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-prowlarr.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-prowlarr.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-custom-prowlarr.vue?vue&type=template&id=66c33d58&scoped=true&\"\nimport script from \"./config-custom-prowlarr.vue?vue&type=script&lang=js&\"\nexport * from \"./config-custom-prowlarr.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-custom-prowlarr.vue?vue&type=style&index=0&id=66c33d58&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66c33d58\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-torrentrss.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-torrentrss.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-custom-torrentrss.vue?vue&type=template&id=6ad09fdf&scoped=true&\"\nimport script from \"./config-custom-torrentrss.vue?vue&type=script&lang=js&\"\nexport * from \"./config-custom-torrentrss.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-custom-torrentrss.vue?vue&type=style&index=0&id=6ad09fdf&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ad09fdf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"custom-torrentrss\"}},[_c('config-template',{attrs:{\"label-for\":\"select_torrentrss_provider\",\"label\":\"Select Provider\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedProvider),expression:\"selectedProvider\"}],staticClass:\"form-control input-sm\",attrs:{\"id\":\"select-provider\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedProvider=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"#add\"}},[_vm._v(\"--- add new provider ---\")]),_vm._v(\" \"),_vm._l((_vm.torrentrssProviderOptions),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])})],2)]),_vm._v(\" \"),(_vm.currentProvider && _vm.selectedProvider !== '#add')?_c('div',{staticClass:\"edit-provider\"},[_c('config-textbox',{attrs:{\"disabled\":\"\",\"label\":\"Provider name\",\"id\":\"edit_provider_name\"},model:{value:(_vm.currentProvider.name),callback:function ($$v) {_vm.$set(_vm.currentProvider, \"name\", $$v)},expression:\"currentProvider.name\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"disabled\":\"\",\"label\":\"Rss Url\",\"id\":\"edit_provider_url\"},model:{value:(_vm.currentProvider.url),callback:function ($$v) {_vm.$set(_vm.currentProvider, \"url\", $$v)},expression:\"currentProvider.url\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Cookies (optional)\",\"id\":\"edit_provider_cookies\"},model:{value:(_vm.currentProvider.config.cookies),callback:function ($$v) {_vm.$set(_vm.currentProvider.config, \"cookies\", $$v)},expression:\"currentProvider.config.cookies\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Search element\",\"id\":\"edit_provider_search_element\"},model:{value:(_vm.currentProvider.config.titleTag),callback:function ($$v) {_vm.$set(_vm.currentProvider.config, \"titleTag\", $$v)},expression:\"currentProvider.config.titleTag\"}}),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa btn-danger torrentrss_delete\",attrs:{\"id\":\"torrentrss_delete\"},on:{\"click\":_vm.removeProvider}},[_vm._v(\"Delete\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter_refresh\",on:{\"click\":function($event){return _vm.$emit('save')}}},[_vm._v(\"Save Changes\")])],1):_vm._e(),_vm._v(\" \"),(_vm.selectedProvider === '#add')?_c('div',{staticClass:\"add-provider\"},[_c('config-textbox',{attrs:{\"label\":\"Provider name\",\"id\":\"add_provider_name\"},scopedSlots:_vm._u([{key:\"warning\",fn:function(){return [_c('transition',{attrs:{\"name\":\"warning\"}},[(!_vm.providerIdAvailable)?_c('div',{staticClass:\"warning\"},[_vm._v(\"This provider id is already used.\")]):_vm._e()])]},proxy:true}],null,false,3405532282),model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Site Url\",\"id\":\"add_provider_url\"},model:{value:(_vm.url),callback:function ($$v) {_vm.url=$$v},expression:\"url\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Cookies\",\"id\":\"add_provider_cookies\"},model:{value:(_vm.cookies),callback:function ($$v) {_vm.cookies=$$v},expression:\"cookies\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Search element\",\"id\":\"add_provider_search_element\"},model:{value:(_vm.searchElement),callback:function ($$v) {_vm.searchElement=$$v},expression:\"searchElement\"}}),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",attrs:{\"disabled\":!_vm.providerIdAvailable},on:{\"click\":_vm.addProvider}},[_vm._v(\"Add Provider\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-torznab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-custom-torznab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-custom-torznab.vue?vue&type=template&id=16387a4c&scoped=true&\"\nimport script from \"./config-custom-torznab.vue?vue&type=script&lang=js&\"\nexport * from \"./config-custom-torznab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./config-custom-torznab.vue?vue&type=style&index=0&id=16387a4c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16387a4c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"custom-torznab\"}},[_c('config-template',{attrs:{\"label-for\":\"select_torznab_provider\",\"label\":\"Select Provider\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedProvider),expression:\"selectedProvider\"}],staticClass:\"form-control input-sm\",attrs:{\"id\":\"select-provider\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedProvider=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"#add\"}},[_vm._v(\"--- add new provider ---\")]),_vm._v(\" \"),_vm._l((_vm.torznabProviderOptions),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])})],2)]),_vm._v(\" \"),(_vm.currentProvider && _vm.selectedProvider !== '#add')?_c('div',{staticClass:\"edit-provider\"},[_c('config-textbox',{attrs:{\"disabled\":\"\",\"label\":\"Provider name\",\"id\":\"edit_provider_name\"},model:{value:(_vm.currentProvider.name),callback:function ($$v) {_vm.$set(_vm.currentProvider, \"name\", $$v)},expression:\"currentProvider.name\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"disabled\":\"\",\"label\":\"Site Url\",\"id\":\"edit_provider_url\"},model:{value:(_vm.currentProvider.url),callback:function ($$v) {_vm.$set(_vm.currentProvider, \"url\", $$v)},expression:\"currentProvider.url\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"Api key\",\"id\":\"edit_provider_api\"},model:{value:(_vm.currentProvider.config.apikey),callback:function ($$v) {_vm.$set(_vm.currentProvider.config, \"apikey\", $$v)},expression:\"currentProvider.config.apikey\"}}),_vm._v(\" \"),_c('config-template',{attrs:{\"label\":\"Categories\",\"label-for\":\"catids\"}},[_c('multiselect',{attrs:{\"value\":_vm.providerCatIds,\"multiple\":true,\"options\":_vm.availableCategories,\"label\":\"id\",\"track-by\":\"id\",\"taggable\":true,\"tag-placeholder\":\"Add this as new cat id\",\"placeholder\":\"Search or add a cat id\"},on:{\"tag\":_vm.addTag,\"input\":function($event){_vm.currentProvider.config.catIds = $event.map(function (cat) { return cat.id; })}},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return [(props.option.isTag)?_c('span',[_c('strong',[_vm._v(_vm._s(props.option.label))])]):_c('span',[_c('strong',[_vm._v(_vm._s(props.option.id))]),_vm._v(\" (\"+_vm._s(props.option.name)+\")\")])]}}],null,false,2742372380)})],1),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa btn-danger torznab_delete\",attrs:{\"disabled\":_vm.currentProvider.default,\"id\":\"torznab_delete\"},on:{\"click\":_vm.removeProvider}},[_vm._v(\"Delete\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter_refresh\",on:{\"click\":function($event){return _vm.$emit('save')}}},[_vm._v(\"Save Changes\")]),_vm._v(\" \"),(_vm.currentProvider.manager === 'prowlarr')?_c('p',{staticClass:\"manager-note\"},[_c('img',{staticStyle:{\"width\":\"16px\"},attrs:{\"src\":\"images/providers/prowlarr.png\"}}),_vm._v(\"\\n Note! This is a provider configured through the 'Configure Custom Prowlarr Providers' tab.\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.selectedProvider === '#add')?_c('div',{staticClass:\"add-provider\"},[_c('config-textbox',{attrs:{\"label\":\"Provider name\",\"id\":\"add_provider_name\"},scopedSlots:_vm._u([{key:\"warning\",fn:function(){return [_c('transition',{attrs:{\"name\":\"warning\"}},[(!_vm.providerIdAvailable)?_c('div',{staticClass:\"warning\"},[_vm._v(\"This provider id is already used.\")]):_vm._e()])]},proxy:true}],null,false,3405532282),model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"label\":\"Site Url\",\"id\":\"add_provider_url\"},model:{value:(_vm.url),callback:function ($$v) {_vm.url=$$v},expression:\"url\"}}),_vm._v(\" \"),_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"Api key\",\"id\":\"add_provider_api\"},model:{value:(_vm.apikey),callback:function ($$v) {_vm.apikey=$$v},expression:\"apikey\"}}),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",attrs:{\"disabled\":!_vm.providerIdAvailable},on:{\"click\":_vm.addProvider}},[_vm._v(\"Add Provider\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"provider-options-nzb\"}},[(Object.keys(_vm.editProvider).length > 0)?_c('div',{staticClass:\"providerDiv\",attrs:{\"id\":((_vm.editProvider.id) + \"Div\")}},[('username' in _vm.editProvider.config && _vm.editProvider.subType !== 'newznab')?_c('config-textbox',{attrs:{\"label\":\"Username\",\"id\":((_vm.editProvider.id) + \"_username\")},model:{value:(_vm.editProvider.config.username),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"username\", $$v)},expression:\"editProvider.config.username\"}}):_vm._e(),_vm._v(\" \"),(_vm.editProvider.default && _vm.editProvider.needsAuth)?[_c('config-template',{attrs:{\"label-for\":((_vm.editProvider.id) + \"_url\"),\"label\":\"URL\"}},[_c('input',{staticClass:\"form-control input-sm input350\",attrs:{\"type\":\"text\",\"id\":((_vm.editProvider.id) + \"_url\"),\"disabled\":\"\"},domProps:{\"value\":(\"\" + (_vm.editProvider.url))}})]),_vm._v(\" \"),('apikey' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"API key\",\"id\":((_vm.editProvider.id) + \"_url\"),\"input-class\":\"newznab_api_key\"},model:{value:(_vm.editProvider.config.apikey),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"apikey\", $$v)},expression:\"editProvider.config.apikey\"}}):_vm._e()]:(_vm.editProvider.subType !== 'newznab')?[('apikey' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"API key\",\"id\":((_vm.editProvider.id) + \"_url\"),\"input-class\":\"newznab_api_key\"},model:{value:(_vm.editProvider.config.apikey),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"apikey\", $$v)},expression:\"editProvider.config.apikey\"}}):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable daily searches\",\"name\":((_vm.editProvider.id) + \"_enable_daily\"),\"id\":((_vm.editProvider.id) + \"_enable_daily\")},model:{value:(_vm.editProvider.config.search.daily.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.daily, \"enabled\", $$v)},expression:\"editProvider.config.search.daily.enabled\"}},[_c('p',[_vm._v(\"enable provider to perform daily searches.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable manual searches\",\"name\":((_vm.editProvider.id) + \"_enable_manual\"),\"id\":((_vm.editProvider.id) + \"_enable_manual\")},model:{value:(_vm.editProvider.config.search.manual.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.manual, \"enabled\", $$v)},expression:\"editProvider.config.search.manual.enabled\"}},[_c('p',[_vm._v(\"enable provider to be used in 'Manual Search' feature.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable backlog searches\",\"name\":((_vm.editProvider.id) + \"_enable_backlog\"),\"id\":((_vm.editProvider.id) + \"_enable_backlog\")},model:{value:(_vm.editProvider.config.search.backlog.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.backlog, \"enabled\", $$v)},expression:\"editProvider.config.search.backlog.enabled\"}},[_c('p',[_vm._v(\"enable provider to perform backlog searches.\")])]),_vm._v(\" \"),_c('config-template',{attrs:{\"label-for\":\"backlog_search_mode\",\"label\":\"Backlog search mode\"}},[_c('div',{staticClass:\"radio-item\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editProvider.config.search.mode),expression:\"editProvider.config.search.mode\"}],attrs:{\"type\":\"radio\",\"name\":((_vm.editProvider.id) + \"_search_mode_sponly\"),\"id\":((_vm.editProvider.id) + \"_search_mode_sponly\"),\"value\":\"sponly\"},domProps:{\"checked\":_vm._q(_vm.editProvider.config.search.mode,\"sponly\")},on:{\"change\":function($event){return _vm.$set(_vm.editProvider.config.search, \"mode\", \"sponly\")}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"one\"}},[_vm._v(\"Season packs only\")])]),_vm._v(\" \"),_c('div',{staticClass:\"radio-item\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editProvider.config.search.mode),expression:\"editProvider.config.search.mode\"}],attrs:{\"type\":\"radio\",\"name\":((_vm.editProvider.id) + \"_search_mode_eponly\"),\"id\":((_vm.editProvider.id) + \"_search_mode_eponly\"),\"value\":\"eponly\"},domProps:{\"checked\":_vm._q(_vm.editProvider.config.search.mode,\"eponly\")},on:{\"change\":function($event){return _vm.$set(_vm.editProvider.config.search, \"mode\", \"eponly\")}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"one\"}},[_vm._v(\"Episodes only\")])]),_vm._v(\" \"),_c('p',[_vm._v(\"when searching with backlog you can choose to have it look for season packs only, or choose to have it build a complete season from just single episodes.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable fallback\",\"name\":((_vm.editProvider.id) + \"_enable_fallback\"),\"id\":((_vm.editProvider.id) + \"_enable_fallback\")},model:{value:(_vm.editProvider.config.search.fallback),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search, \"fallback\", $$v)},expression:\"editProvider.config.search.fallback\"}},[_c('p',[_vm._v(\"when searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable search delay\",\"name\":((_vm.editProvider.id) + \"_enable_search_delay\"),\"id\":((_vm.editProvider.id) + \"_enable_search_delay\")},model:{value:(_vm.editProvider.config.search.delay.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.delay, \"enabled\", $$v)},expression:\"editProvider.config.search.delay.enabled\"}},[_c('p',[_vm._v(\"Enable to delay downloads for this provider for an x amount of hours. The provider will start snatching results for a specific episode after a delay has expired, compared to when it first got a result for the specific episode.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"A negative value will have the daily search accepts results before the episode scheduled air date/time.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Proper and Backlog searches are exempted from the delay.\")])]),_vm._v(\" \"),(_vm.editProvider.config.search.delay.enabled)?_c('config-textbox-number',{attrs:{\"value\":_vm.editProvider.config.search.delay.duration / 60.0,\"label\":\"Search delay (hours)\",\"id\":((_vm.editProvider.id) + \"_search_delay_duration\"),\"min\":0.5,\"step\":0.5},on:{\"input\":function($event){_vm.editProvider.config.search.delay.duration = $event * 60}}},[_c('p',[_vm._v(\"Amount of hours to wait for downloading a result compared to the first result for a specific episode.\")])]):_vm._e()],2):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",staticStyle:{\"float\":\"left\"},attrs:{\"disabled\":_vm.saving},on:{\"click\":_vm.save}},[_vm._v(\"Save Changes\")]),_vm._v(\" \"),_c('test-provider',{attrs:{\"provider-id\":_vm.editProvider.id,\"provider-name\":_vm.editProvider.name}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./test-provider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./test-provider.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./test-provider.vue?vue&type=template&id=1c908779&scoped=true&\"\nimport script from \"./test-provider.vue?vue&type=script&lang=js&\"\nexport * from \"./test-provider.vue?vue&type=script&lang=js&\"\nimport style0 from \"./test-provider.vue?vue&type=style&index=0&id=1c908779&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c908779\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"test-provider\"},[_c('button',{staticClass:\"btn-medusa config_submitter\",on:{\"click\":_vm.test}},[_vm._v(\"Test for results\")]),_vm._v(\" \"),(_vm.loading)?_c('state-switch',{attrs:{\"state\":\"loading\",\"theme\":_vm.layout.themeName}}):_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.testResult),expression:\"testResult\"}],staticClass:\"testresult\"},[_vm._v(_vm._s(_vm.testResult))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-provider-nzb.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-provider-nzb.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./config-provider-nzb.vue?vue&type=template&id=c9c4f722&\"\nimport script from \"./config-provider-nzb.vue?vue&type=script&lang=js&\"\nexport * from \"./config-provider-nzb.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-provider-torrent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config-provider-torrent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./config-provider-torrent.vue?vue&type=template&id=277d0a96&\"\nimport script from \"./config-provider-torrent.vue?vue&type=script&lang=js&\"\nexport * from \"./config-provider-torrent.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"provider-options-torrent\"}},[(Object.keys(_vm.editProvider).length > 0)?_c('div',{staticClass:\"providerDiv\",attrs:{\"id\":((_vm.editProvider.id) + \"Div\")}},[('customUrl' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"label\":\"Custom Url\",\"id\":((_vm.editProvider.id) + \"_custom_url\")},model:{value:(_vm.editProvider.config.customUrl),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"customUrl\", $$v)},expression:\"editProvider.config.customUrl\"}},[_c('p',[_vm._v(\"The URL should include the protocol (and port if applicable). Examples: http://192.168.1.4/ or http://localhost:3000/\")])]):_vm._e(),_vm._v(\" \"),('apikey' in _vm.editProvider.config && _vm.editProvider.config.subType !== 'torznab')?_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"API key\",\"id\":((_vm.editProvider.id) + \"_api_key\")},model:{value:(_vm.editProvider.config.apikey),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"apikey\", $$v)},expression:\"editProvider.config.apikey\"}}):_vm._e(),_vm._v(\" \"),('digest' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"Digest\",\"id\":((_vm.editProvider.id) + \"_digest\")},model:{value:(_vm.editProvider.config.digest),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"digest\", $$v)},expression:\"editProvider.config.digest\"}}):_vm._e(),_vm._v(\" \"),('hash' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"label\":\"Hash\",\"id\":((_vm.editProvider.id) + \"_hash\")},model:{value:(_vm.editProvider.config.hash),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"hash\", $$v)},expression:\"editProvider.config.hash\"}}):_vm._e(),_vm._v(\" \"),('username' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"label\":\"Username\",\"id\":((_vm.editProvider.id) + \"_username\")},model:{value:(_vm.editProvider.config.username),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"username\", $$v)},expression:\"editProvider.config.username\"}}):_vm._e(),_vm._v(\" \"),('password' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"autocomplete\":\"no\",\"type\":\"password\",\"label\":\"Password\",\"id\":((_vm.editProvider.id) + \"_password\")},model:{value:(_vm.editProvider.config.password),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"password\", $$v)},expression:\"editProvider.config.password\"}}):_vm._e(),_vm._v(\" \"),(_vm.editProvider.config.cookies.enabled || _vm.editProvider.subType === 'torrentrss')?_c('config-textbox',{attrs:{\"label\":\"Cookies\",\"id\":((_vm.editProvider.id) + \"_cookies\")},model:{value:(_vm.editProvider.config.cookies.values),callback:function ($$v) {_vm.$set(_vm.editProvider.config.cookies, \"values\", $$v)},expression:\"editProvider.config.cookies.values\"}},[(_vm.editProvider.config.cookies.required)?[_c('p',[_vm._v(\"eg. \"+_vm._s(_vm.editProvider.config.cookies.required.map(function (cookie) { return cookie + '=xx;'; }).join('').slice(0, -1)))]),_vm._v(\" \"),_c('p',[_vm._v(\"This provider requires the following cookies: \"+_vm._s(_vm.editProvider.config.cookies.required.join(', '))+\".\\n \"),_c('br'),_vm._v(\"For a step by step guide please follow the link to our \"),_c('app-link',{attrs:{\"href\":\"https://github.com/pymedusa/Medusa/wiki/Configure-Providers-with-captcha-protection\"}},[_vm._v(\"WIKI\")])],1)]:_vm._e()],2):_vm._e(),_vm._v(\" \"),('passkey' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"label\":\"Passkey\",\"id\":((_vm.editProvider.id) + \"_passkey\")},model:{value:(_vm.editProvider.config.passkey),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"passkey\", $$v)},expression:\"editProvider.config.passkey\"}}):_vm._e(),_vm._v(\" \"),('pin' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"Pin\",\"id\":((_vm.editProvider.id) + \"_pin\")},model:{value:(_vm.editProvider.config.pin),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"pin\", $$v)},expression:\"editProvider.config.pin\"}}):_vm._e(),_vm._v(\" \"),('pid' in _vm.editProvider.config)?_c('config-textbox',{attrs:{\"type\":\"password\",\"label\":\"Pid\",\"id\":((_vm.editProvider.id) + \"_pid\")},model:{value:(_vm.editProvider.config.pid),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"pid\", $$v)},expression:\"editProvider.config.pid\"}}):_vm._e(),_vm._v(\" \"),('ratio' in _vm.editProvider.config)?_c('config-textbox-number',{attrs:{\"min\":-1,\"step\":0.1,\"label\":\"Seed ratio\",\"id\":((_vm.editProvider.id) + \"_seed_ratio\")},model:{value:(_vm.editProvider.config.ratio),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"ratio\", $$v)},expression:\"editProvider.config.ratio\"}},[_c('p',[_vm._v(\"Configure a desired seeding ratio. Used by the (automated download handler in config - postprocessing)\\n \"),_c('br'),_vm._v(\"-1 for provider specific option is disabled.\\n \"),_c('br'),_vm._v(\"0 for not using a seed ratio. Actions configured in the download handler, will not wait for finished seeding.\\n \"),_c('br'),_vm._v(\"If disabled the global option is used in config - postprocessing (automated download handling))\\n \")])]):_vm._e(),_vm._v(\" \"),('minseed' in _vm.editProvider.config)?_c('config-textbox-number',{attrs:{\"label\":\"Minimum seeders\",\"min\":0,\"step\":1,\"id\":((_vm.editProvider.id) + \"_min_seed\")},model:{value:(_vm.editProvider.config.minseed),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"minseed\", $$v)},expression:\"editProvider.config.minseed\"}}):_vm._e(),_vm._v(\" \"),('minleech' in _vm.editProvider.config)?_c('config-textbox-number',{attrs:{\"label\":\"Minimum leechers\",\"min\":0,\"step\":1,\"id\":((_vm.editProvider.id) + \"_min_leech\")},model:{value:(_vm.editProvider.config.minleech),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"minleech\", $$v)},expression:\"editProvider.config.minleech\"}}):_vm._e(),_vm._v(\" \"),('confirmed' in _vm.editProvider.config)?_c('config-toggle-slider',{attrs:{\"label\":\"Confirmed downloads\",\"name\":((_vm.editProvider.id) + \"_confirmed\"),\"id\":((_vm.editProvider.id) + \"_confirmed\")},model:{value:(_vm.editProvider.config.confirmed),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"confirmed\", $$v)},expression:\"editProvider.config.confirmed\"}},[_c('p',[_vm._v(\"only download torrents from trusted or verified uploaders ?\")])]):_vm._e(),_vm._v(\" \"),('ranked' in _vm.editProvider.config)?_c('config-toggle-slider',{attrs:{\"label\":\"Ranked torrents\",\"name\":((_vm.editProvider.id) + \"_ranked\"),\"id\":((_vm.editProvider.id) + \"_ranked\")},model:{value:(_vm.editProvider.config.ranked),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"ranked\", $$v)},expression:\"editProvider.config.ranked\"}},[_c('p',[_vm._v(\"only download ranked torrents (trusted releases)\")])]):_vm._e(),_vm._v(\" \"),('sorting' in _vm.editProvider.config)?_c('config-template',{attrs:{\"label-for\":\"sorting\",\"label\":\"Sorting results by\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editProvider.config.sorting),expression:\"editProvider.config.sorting\"}],staticClass:\"form-control input-sm\",attrs:{\"id\":\"sorting\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.editProvider.config, \"sorting\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"last\"}},[_vm._v(\"last\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"seeders\"}},[_vm._v(\"seeders\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"leechers\"}},[_vm._v(\"leechers\")])])]):_vm._e(),_vm._v(\" \"),('freeleech' in _vm.editProvider.config)?_c('config-toggle-slider',{attrs:{\"label\":\"Freeleech\",\"name\":((_vm.editProvider.id) + \"_freeleech\"),\"id\":((_vm.editProvider.id) + \"_freeleech\")},model:{value:(_vm.editProvider.config.freeleech),callback:function ($$v) {_vm.$set(_vm.editProvider.config, \"freeleech\", $$v)},expression:\"editProvider.config.freeleech\"}},[_c('p',[_vm._v(\"only download \"),_c('b',[_vm._v(\"\\\"FreeLeech\\\"\")]),_vm._v(\" torrents.\")])]):_vm._e(),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable daily searches\",\"name\":((_vm.editProvider.id) + \"_enable_daily\"),\"id\":((_vm.editProvider.id) + \"_enable_daily\")},model:{value:(_vm.editProvider.config.search.daily.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.daily, \"enabled\", $$v)},expression:\"editProvider.config.search.daily.enabled\"}},[_c('p',[_vm._v(\"enable provider to perform daily searches.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable manual searches\",\"name\":((_vm.editProvider.id) + \"_enable_manual\"),\"id\":((_vm.editProvider.id) + \"_enable_manual\")},model:{value:(_vm.editProvider.config.search.manual.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.manual, \"enabled\", $$v)},expression:\"editProvider.config.search.manual.enabled\"}},[_c('p',[_vm._v(\"enable provider to be used in 'Manual Search' feature.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable backlog searches\",\"name\":((_vm.editProvider.id) + \"_enable_backlog\"),\"id\":((_vm.editProvider.id) + \"_enable_backlog\")},model:{value:(_vm.editProvider.config.search.backlog.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.backlog, \"enabled\", $$v)},expression:\"editProvider.config.search.backlog.enabled\"}},[_c('p',[_vm._v(\"enable provider to perform backlog searches.\")])]),_vm._v(\" \"),_c('config-template',{attrs:{\"label-for\":\"backlog_search_mode\",\"label\":\"Backlog search mode\"}},[_c('div',{staticClass:\"radio-item\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editProvider.config.search.mode),expression:\"editProvider.config.search.mode\"}],attrs:{\"type\":\"radio\",\"name\":((_vm.editProvider.id) + \"_search_mode_sponly\"),\"id\":((_vm.editProvider.id) + \"_search_mode_sponly\"),\"value\":\"sponly\"},domProps:{\"checked\":_vm._q(_vm.editProvider.config.search.mode,\"sponly\")},on:{\"change\":function($event){return _vm.$set(_vm.editProvider.config.search, \"mode\", \"sponly\")}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"one\"}},[_vm._v(\"Season packs only\")])]),_vm._v(\" \"),_c('div',{staticClass:\"radio-item\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editProvider.config.search.mode),expression:\"editProvider.config.search.mode\"}],attrs:{\"type\":\"radio\",\"name\":((_vm.editProvider.id) + \"_search_mode_eponly\"),\"id\":((_vm.editProvider.id) + \"_search_mode_eponly\"),\"value\":\"eponly\"},domProps:{\"checked\":_vm._q(_vm.editProvider.config.search.mode,\"eponly\")},on:{\"change\":function($event){return _vm.$set(_vm.editProvider.config.search, \"mode\", \"eponly\")}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"one\"}},[_vm._v(\"Episodes only\")])]),_vm._v(\" \"),_c('p',[_vm._v(\"when searching with backlog you can choose to have it look for season packs only, or choose to have it build a complete season from just single episodes.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable fallback\",\"name\":((_vm.editProvider.id) + \"_enable_fallback\"),\"id\":((_vm.editProvider.id) + \"_enable_fallback\")},model:{value:(_vm.editProvider.config.search.fallback),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search, \"fallback\", $$v)},expression:\"editProvider.config.search.fallback\"}},[_c('p',[_vm._v(\"when searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Enable search delay\",\"name\":((_vm.editProvider.id) + \"_enable_search_delay\"),\"id\":((_vm.editProvider.id) + \"_enable_search_delay\")},model:{value:(_vm.editProvider.config.search.delay.enabled),callback:function ($$v) {_vm.$set(_vm.editProvider.config.search.delay, \"enabled\", $$v)},expression:\"editProvider.config.search.delay.enabled\"}},[_c('p',[_vm._v(\"Enable to delay downloads for this provider for an x amount of hours. The provider will start snatching results for a specific episode after a delay has expired, compared to when it first got a result for the specific episode.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"A negative value will have the daily search accepts results before the episode scheduled air date/time.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Proper and Backlog searches are exempted from the delay.\")])]),_vm._v(\" \"),(_vm.editProvider.config.search.delay.enabled)?_c('config-textbox-number',{attrs:{\"value\":_vm.editProvider.config.search.delay.duration / 60.0,\"label\":\"Search delay (hours)\",\"id\":((_vm.editProvider.id) + \"_search_delay_duration\"),\"step\":0.5},on:{\"input\":function($event){_vm.editProvider.config.search.delay.duration = $event * 60}}},[_c('p',[_vm._v(\"Amount of hours to wait for downloading a result compared to the first result for a specific episode.\")])]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",staticStyle:{\"float\":\"left\"},attrs:{\"disabled\":_vm.saving},on:{\"click\":_vm.save}},[_vm._v(\"Save Changes\")]),_vm._v(\" \"),_c('test-provider',{attrs:{\"provider-id\":_vm.editProvider.id,\"provider-name\":_vm.editProvider.name}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom-logs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom-logs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./custom-logs.vue?vue&type=template&id=12aec99f&scoped=true&\"\nimport script from \"./custom-logs.vue?vue&type=script&lang=js&\"\nexport * from \"./custom-logs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./custom-logs.vue?vue&type=style&index=0&id=12aec99f&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12aec99f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"select-list\"},[_c('div',{staticClass:\"wrapper\"},_vm._l((_vm.customLogs),function(customLog){return _c('div',{key:customLog.identifier},[_c('div',{staticClass:\"level\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(customLog.level),expression:\"customLog.level\"}],on:{\"input\":function($event){return _vm.saveLogs($event, customLog.identifier)},\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(customLog, \"level\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.levels),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.text)+\"\\n \")])}),0)]),_vm._v(\" \"),_c('div',{staticClass:\"identifier\"},[_vm._v(_vm._s(customLog.identifier))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-browser.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-browser.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./file-browser.vue?vue&type=template&id=eff76864&scoped=true&\"\nimport script from \"./file-browser.vue?vue&type=script&lang=js&\"\nexport * from \"./file-browser.vue?vue&type=script&lang=js&\"\nimport style0 from \"./file-browser.vue?vue&type=style&index=0&id=eff76864&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eff76864\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"file-browser max-width\"},[_c('div',{class:(_vm.showBrowseButton ? 'input-group' : 'input-group-no-btn')},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentPath),expression:\"currentPath\"}],ref:\"locationInput\",staticClass:\"form-control input-sm fileBrowserField\",attrs:{\"name\":_vm.name,\"type\":\"text\"},domProps:{\"value\":(_vm.currentPath)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currentPath=$event.target.value}}}),_vm._v(\" \"),(_vm.showBrowseButton)?_c('div',{staticClass:\"input-group-btn\",attrs:{\"title\":_vm.title,\"alt\":_vm.title},on:{\"click\":function($event){$event.preventDefault();return _vm.openDialog.apply(null, arguments)}}},[_vm._m(0)]):_vm._e()]),_vm._v(\" \"),_c('div',{ref:\"fileBrowserDialog\",staticClass:\"fileBrowserDialog\",staticStyle:{\"display\":\"none\"}}),_vm._v(\" \"),_c('input',{ref:\"fileBrowserSearchBox\",staticClass:\"form-control\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.currentPath},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.browse($event.target.value)}}}),_vm._v(\" \"),_c('ul',{ref:\"fileBrowserFileList\",staticStyle:{\"display\":\"none\"}},_vm._l((_vm.files),function(file){return _c('li',{key:file.name,staticClass:\"ui-state-default ui-corner-all\"},[_c('a',{on:{\"mouseover\":function($event){return _vm.toggleFolder(file, $event)},\"mouseout\":function($event){return _vm.toggleFolder(file, $event)},\"click\":function($event){return _vm.fileClicked(file)}}},[_c('span',{class:'ui-icon ' + (file.isFile ? 'ui-icon-blank' : 'ui-icon-folder-collapsed')}),_vm._v(\" \"+_vm._s(file.name)+\"\\n \")])])}),0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn btn-default input-sm\",staticStyle:{\"font-size\":\"14px\"}},[_c('i',{staticClass:\"glyphicon glyphicon-open\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('select')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./language-select.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./language-select.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./language-select.vue?vue&type=template&id=6d9e3033&\"\nimport script from \"./language-select.vue?vue&type=script&lang=js&\"\nexport * from \"./language-select.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./load-progress-bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./load-progress-bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./load-progress-bar.vue?vue&type=template&id=3b82c21e&\"\nimport script from \"./load-progress-bar.vue?vue&type=script&lang=js&\"\nexport * from \"./load-progress-bar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./load-progress-bar.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.display)?_c('div',{staticClass:\"load-progress-bar-container\"},[_c('div',{staticClass:\"border\"},[_c('div',{staticClass:\"msg\"},[_vm._v(_vm._s(_vm.loadMsg))]),_vm._v(\" \"),_c('div',{staticClass:\"progress\",style:(_vm.styleProgress)})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"name-pattern-wrapper\"}},[(_vm.type)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"enable_naming_custom\"}},[_c('span',[_vm._v(\"Custom \"+_vm._s(_vm.type))])])]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('toggle-button',{attrs:{\"width\":45,\"height\":22,\"id\":\"enable_naming_custom\",\"name\":\"enable_naming_custom\",\"sync\":\"\"},on:{\"input\":function($event){return _vm.update()}},model:{value:(_vm.isEnabled),callback:function ($$v) {_vm.isEnabled=$$v},expression:\"isEnabled\"}}),_vm._v(\" \"),_c('span',[_vm._v(\"Name \"+_vm._s(_vm.type)+\" shows differently than regular shows?\")])],1)]):_vm._e(),_vm._v(\" \"),(!_vm.type || _vm.isEnabled)?_c('div',{staticClass:\"episode-naming\"},[_c('div',{staticClass:\"form-group\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedNamingPattern),expression:\"selectedNamingPattern\"}],staticClass:\"form-control input-sm\",attrs:{\"id\":\"name_presets\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedNamingPattern=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.updatePatternSamples],\"input\":function($event){return _vm.update()}}},_vm._l((_vm.presets),function(preset){return _c('option',{key:preset.pattern,attrs:{\"id\":preset.pattern}},[_vm._v(_vm._s(preset.example))])}),0)])]),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"naming_custom\"}},[(_vm.isCustom)?_c('div',{staticClass:\"form-group\",staticStyle:{\"padding-top\":\"0\"}},[_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customName),expression:\"customName\"}],staticClass:\"form-control-inline-max input-sm max-input350\",attrs:{\"type\":\"text\",\"name\":\"naming_pattern\",\"id\":\"naming_pattern\"},domProps:{\"value\":(_vm.customName)},on:{\"change\":_vm.updatePatternSamples,\"input\":[function($event){if($event.target.composing){ return; }_vm.customName=$event.target.value},function($event){return _vm.update()}]}}),_vm._v(\" \"),_c('img',{staticClass:\"legend\",attrs:{\"src\":\"images/legend16.png\",\"width\":\"16\",\"height\":\"16\",\"alt\":\"[Toggle Key]\",\"id\":\"show_naming_key\",\"title\":\"Toggle Naming Legend\"},on:{\"click\":function($event){_vm.showLegend = !_vm.showLegend}}})])]):_vm._e(),_vm._v(\" \"),(_vm.showLegend && _vm.isCustom)?_c('div',{staticClass:\"nocheck\",attrs:{\"id\":\"naming_key\"}},[_c('table',{staticClass:\"Key\"},[_vm._m(2),_vm._v(\" \"),_vm._m(3),_vm._v(\" \"),_c('tbody',[_vm._m(4),_vm._v(\" \"),_vm._m(5),_vm._v(\" \"),_vm._m(6),_vm._v(\" \"),_vm._m(7),_vm._v(\" \"),_vm._m(8),_vm._v(\" \"),_vm._m(9),_vm._v(\" \"),_vm._m(10),_vm._v(\" \"),_vm._m(11),_vm._v(\" \"),_vm._m(12),_vm._v(\" \"),_vm._m(13),_vm._v(\" \"),_vm._m(14),_vm._v(\" \"),_vm._m(15),_vm._v(\" \"),_vm._m(16),_vm._v(\" \"),_vm._m(17),_vm._v(\" \"),_vm._m(18),_vm._v(\" \"),_vm._m(19),_vm._v(\" \"),_c('tr',[_vm._m(20),_vm._v(\" \"),_c('td',[_vm._v(\"%M\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('M')))])]),_vm._v(\" \"),_c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%D\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('d')))])]),_vm._v(\" \"),_c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%Y\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('yyyy')))])]),_vm._v(\" \"),_c('tr',[_vm._m(21),_vm._v(\" \"),_c('td',[_vm._v(\"%CM\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('M')))])]),_vm._v(\" \"),_c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%CD\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('d')))])]),_vm._v(\" \"),_c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%CY\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('yyyy')))])]),_vm._v(\" \"),_vm._m(22),_vm._v(\" \"),_vm._m(23),_vm._v(\" \"),_vm._m(24),_vm._v(\" \"),_vm._m(25),_vm._v(\" \"),_vm._m(26),_vm._v(\" \"),_vm._m(27),_vm._v(\" \"),_c('tr',{staticClass:\"even\"},[_vm._m(28),_vm._v(\" \"),_c('td',[_vm._v(\"%SY\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('yyyy')))])]),_vm._v(\" \"),_vm._m(29),_vm._v(\" \"),_vm._m(30),_vm._v(\" \"),_vm._m(31)])])]):_vm._e()]),_vm._v(\" \"),(_vm.selectedMultiEpStyle)?_c('div',{staticClass:\"form-group\"},[_vm._m(32),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedMultiEpStyle),expression:\"selectedMultiEpStyle\"}],staticClass:\"form-control input-sm\",attrs:{\"id\":\"naming_multi_ep\",\"name\":\"naming_multi_ep\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedMultiEpStyle=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.updatePatternSamples],\"input\":function($event){return _vm.update($event)}}},_vm._l((_vm.availableMultiEpStyles),function(multiEpStyle){return _c('option',{key:multiEpStyle.value,attrs:{\"id\":\"multiEpStyle\"},domProps:{\"value\":multiEpStyle.value}},[_vm._v(_vm._s(multiEpStyle.text))])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group row\"},[_c('h3',{staticClass:\"col-sm-12\"},[_vm._v(\"Single-EP Sample:\")]),_vm._v(\" \"),_c('div',{staticClass:\"example col-sm-12\"},[_c('span',{staticClass:\"jumbo\",attrs:{\"id\":\"naming_example\"}},[_vm._v(_vm._s(_vm.namingExample))])])]),_vm._v(\" \"),(_vm.isMulti)?_c('div',{staticClass:\"form-group row\"},[_c('h3',{staticClass:\"col-sm-12\"},[_vm._v(\"Multi-EP sample:\")]),_vm._v(\" \"),_c('div',{staticClass:\"example col-sm-12\"},[_c('span',{staticClass:\"jumbo\",attrs:{\"id\":\"naming_example_multi\"}},[_vm._v(_vm._s(_vm.namingExampleMulti))])])]):_vm._e(),_vm._v(\" \"),(_vm.animeType > 0)?_c('div',{staticClass:\"form-group\"},[_vm._m(33),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.animeType),expression:\"animeType\"}],attrs:{\"type\":\"radio\",\"name\":\"naming_anime\",\"id\":\"naming_anime\",\"value\":\"1\"},domProps:{\"checked\":_vm._q(_vm.animeType,\"1\")},on:{\"change\":[function($event){_vm.animeType=\"1\"},_vm.updatePatternSamples]}}),_vm._v(\" \"),_c('span',[_vm._v(\"Add the absolute number to the season/episode format?\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Only applies to animes. (e.g. S15E45 - 310 vs S15E45)\")])])]):_vm._e(),_vm._v(\" \"),(_vm.animeType > 0)?_c('div',{staticClass:\"form-group\"},[_vm._m(34),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.animeType),expression:\"animeType\"}],attrs:{\"type\":\"radio\",\"name\":\"naming_anime\",\"id\":\"naming_anime_only\",\"value\":\"2\"},domProps:{\"checked\":_vm._q(_vm.animeType,\"2\")},on:{\"change\":[function($event){_vm.animeType=\"2\"},_vm.updatePatternSamples]}}),_vm._v(\" \"),_c('span',[_vm._v(\"Replace season/episode format with absolute number\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Only applies to animes.\")])])]):_vm._e(),_vm._v(\" \"),(_vm.animeType > 0)?_c('div',{staticClass:\"form-group\"},[_vm._m(35),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.animeType),expression:\"animeType\"}],attrs:{\"type\":\"radio\",\"name\":\"naming_anime\",\"id\":\"naming_anime_none\",\"value\":\"3\"},domProps:{\"checked\":_vm._q(_vm.animeType,\"3\")},on:{\"change\":[function($event){_vm.animeType=\"3\"},_vm.updatePatternSamples]}}),_vm._v(\" \"),_c('span',[_vm._v(\"Don't include the absolute number\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Only applies to animes.\")])])]):_vm._e()]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"name_presets\"}},[_c('span',[_vm._v(\"Name Pattern:\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\"},[_c('span',[_vm._v(\" \")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{staticClass:\"align-right\"},[_vm._v(\"Meaning\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Pattern\")]),_vm._v(\" \"),_c('th',{attrs:{\"width\":\"60%\"}},[_vm._v(\"Result\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tfoot',[_c('tr',[_c('th',{attrs:{\"colspan\":\"3\"}},[_vm._v(\"Use lower case if you want lower case names (eg. %sn, %e.n, %q_n etc)\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Show Name:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%SN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%S.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show.Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%S_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show_Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Season Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%S\")]),_vm._v(\" \"),_c('td',[_vm._v(\"2\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0S\")]),_vm._v(\" \"),_c('td',[_vm._v(\"02\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"XEM Season Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%XS\")]),_vm._v(\" \"),_c('td',[_vm._v(\"2\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0XS\")]),_vm._v(\" \"),_c('td',[_vm._v(\"02\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%E\")]),_vm._v(\" \"),_c('td',[_vm._v(\"3\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0E\")]),_vm._v(\" \"),_c('td',[_vm._v(\"03\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"XEM Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%XE\")]),_vm._v(\" \"),_c('td',[_vm._v(\"3\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0XE\")]),_vm._v(\" \"),_c('td',[_vm._v(\"03\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Absolute Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%AB\")]),_vm._v(\" \"),_c('td',[_vm._v(\"003\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Xem Absolute Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%XAB\")]),_vm._v(\" \"),_c('td',[_vm._v(\"003\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Episode Name:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%EN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Episode Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%E.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Episode.Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%E_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Episode_Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Air Date:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Post-Processing Date:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Quality:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%QN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p BluRay\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%Q.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p.BluRay\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%Q_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p_BluRay\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Scene Quality:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%SQN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p HDTV x264\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%SQ.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p.HDTV.x264\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%SQ_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p_HDTV_x264\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Show premiere year:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('i',{staticClass:\"glyphicon glyphicon-info-sign\",attrs:{\"title\":\"Multi-EP style is ignored\"}}),_vm._v(\" \"),_c('b',[_vm._v(\"Release Name:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%RN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show.Name.S02E03.HDTV.x264-RLSGROUP\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('i',{staticClass:\"glyphicon glyphicon-info-sign\",attrs:{\"title\":\"UNKNOWN_RELEASE_GROUP is used in place of RLSGROUP if it could not be properly detected\"}}),_vm._v(\" \"),_c('b',[_vm._v(\"Release Group:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%RG\")]),_vm._v(\" \"),_c('td',[_vm._v(\"RLSGROUP\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('i',{staticClass:\"glyphicon glyphicon-info-sign\",attrs:{\"title\":\"If episode is proper/repack add 'proper' to name.\"}}),_vm._v(\" \"),_c('b',[_vm._v(\"Release Type:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%RT\")]),_vm._v(\" \"),_c('td',[_vm._v(\"PROPER\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"naming_multi_ep\"}},[_c('span',[_vm._v(\"Multi-Episode Style:\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"naming_anime\"}},[_c('span',[_vm._v(\"Add Absolute Number\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"naming_anime_only\"}},[_c('span',[_vm._v(\"Only Absolute Number\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"naming_anime_none\"}},[_c('span',[_vm._v(\"No Absolute Number\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./name-pattern.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./name-pattern.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./name-pattern.vue?vue&type=template&id=114e4acc&\"\nimport script from \"./name-pattern.vue?vue&type=script&lang=js&\"\nexport * from \"./name-pattern.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./plot-info.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./plot-info.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./plot-info.vue?vue&type=template&id=b01c2572&\"\nimport script from \"./plot-info.vue?vue&type=script&lang=js&\"\nexport * from \"./plot-info.vue?vue&type=script&lang=js&\"\nimport style0 from \"./plot-info.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.description !== '')?_c('img',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.right\",value:({content: _vm.description}),expression:\"{content: description}\",modifiers:{\"right\":true}}],class:_vm.plotInfoClass,attrs:{\"src\":\"images/info32.png\",\"width\":\"16\",\"height\":\"16\",\"alt\":\"\"}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progress-bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progress-bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./progress-bar.vue?vue&type=template&id=2a6be2d2&scoped=true&\"\nimport script from \"./progress-bar.vue?vue&type=script&lang=js&\"\nexport * from \"./progress-bar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./progress-bar.vue?vue&type=style&index=0&id=2a6be2d2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a6be2d2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:\"progressbar hidden-print ui-progressbar ui-corner-all ui-widget ui-widget-content\",attrs:{\"role\":\"progressbar\"}},'div',{ title: _vm.title },false),[(_vm.text)?_c('div',{staticClass:\"progressbarText\"},[_vm._v(_vm._s(_vm.text))]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.normalisedPercentage >= 1),expression:\"normalisedPercentage >= 1\"}],class:['ui-progressbar-value', 'ui-corner-left', 'ui-widget-header', 'progress-' + _vm.normalisedPercentage],style:({ width: (_vm.percentage + \"%\") })})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"show-option pull-right\"},[_vm._v(\"\\n Poster Size:\\n \"),_c('div',{staticStyle:{\"width\":\"100px\",\"display\":\"inline-block\",\"margin-left\":\"7px\"},attrs:{\"id\":\"posterSizeSlider\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./poster-size-slider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./poster-size-slider.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./poster-size-slider.vue?vue&type=template&id=2421162a&\"\nimport script from \"./poster-size-slider.vue?vue&type=script&lang=js&\"\nexport * from \"./poster-size-slider.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./quality-chooser.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./quality-chooser.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./quality-chooser.vue?vue&type=template&id=7f0de7f3&scoped=true&\"\nimport script from \"./quality-chooser.vue?vue&type=script&lang=js&\"\nexport * from \"./quality-chooser.vue?vue&type=script&lang=js&\"\nimport style0 from \"./quality-chooser.vue?vue&type=style&index=0&id=7f0de7f3&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f0de7f3\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('select',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.selectedQualityPreset),expression:\"selectedQualityPreset\",modifiers:{\"number\":true}}],staticClass:\"form-control form-control-inline input-sm\",attrs:{\"name\":\"quality_preset\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return _vm._n(val)}); _vm.selectedQualityPreset=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[(_vm.keep)?_c('option',{attrs:{\"value\":\"keep\"}},[_vm._v(\"< Keep >\")]):_vm._e(),_vm._v(\" \"),_c('option',{domProps:{\"value\":0}},[_vm._v(\"Custom\")]),_vm._v(\" \"),_vm._l((_vm.qualityPresets),function(preset){return _c('option',{key:(\"quality-preset-\" + (preset.key)),domProps:{\"value\":preset.value}},[_vm._v(\"\\n \"+_vm._s(preset.name)+\"\\n \")])})],2),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedQualityPreset === 0),expression:\"selectedQualityPreset === 0\"}],attrs:{\"id\":\"customQualityWrapper\"}},[_vm._m(0),_vm._v(\" \"),_c('div',[_c('h5',[_vm._v(\"Allowed\")]),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.allowedQualities),expression:\"allowedQualities\",modifiers:{\"number\":true}}],staticClass:\"form-control form-control-inline input-sm\",attrs:{\"name\":\"allowed_qualities\",\"multiple\":\"multiple\",\"size\":_vm.validQualities.length},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return _vm._n(val)}); _vm.allowedQualities=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.validQualities),function(quality){return _c('option',{key:(\"quality-list-\" + (quality.key)),domProps:{\"value\":quality.value}},[_vm._v(\"\\n \"+_vm._s(quality.name)+\"\\n \")])}),0)]),_vm._v(\" \"),_c('div',[_c('h5',[_vm._v(\"Preferred\")]),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.preferredQualities),expression:\"preferredQualities\",modifiers:{\"number\":true}}],staticClass:\"form-control form-control-inline input-sm\",attrs:{\"name\":\"preferred_qualities\",\"multiple\":\"multiple\",\"size\":_vm.validQualities.length,\"disabled\":_vm.allowedQualities.length === 0},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return _vm._n(val)}); _vm.preferredQualities=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.validQualities),function(quality){return _c('option',{key:(\"quality-list-\" + (quality.key)),domProps:{\"value\":quality.value}},[_vm._v(\"\\n \"+_vm._s(quality.name)+\"\\n \")])}),0)])]),_vm._v(\" \"),(_vm.selectedQualityPreset !== 'keep')?_c('div',[((_vm.allowedQualities.length + _vm.preferredQualities.length) >= 1)?_c('div',{attrs:{\"id\":\"qualityExplanation\"}},[_vm._m(1),_vm._v(\" \"),(_vm.preferredQualities.length === 0)?_c('h5',[_vm._v(\"\\n This will download \"),_c('b',[_vm._v(\"any\")]),_vm._v(\" of these qualities and then stops searching:\\n \"),_c('label',{attrs:{\"id\":\"allowedExplanation\"}},[_vm._v(_vm._s(_vm.explanation.allowed.join(', ')))])]):[_c('h5',[_vm._v(\"\\n Downloads \"),_c('b',[_vm._v(\"any\")]),_vm._v(\" of these qualities:\\n \"),_c('label',{attrs:{\"id\":\"allowedPreferredExplanation\"}},[_vm._v(_vm._s(_vm.explanation.allowed.join(', ')))])]),_vm._v(\" \"),_c('h5',[_vm._v(\"\\n But it will stop searching when one of these is downloaded:\\n \"),_c('label',{attrs:{\"id\":\"preferredExplanation\"}},[_vm._v(_vm._s(_vm.explanation.preferred.join(', ')))])])]],2):_c('div',[_vm._v(\"Please select at least one allowed quality.\")])]):_vm._e(),_vm._v(\" \"),(_vm.backloggedEpisodes)?_c('div',[_c('h5',{staticClass:\"{ 'red-text': !backloggedEpisodes.status }\",domProps:{\"innerHTML\":_vm._s(_vm.backloggedEpisodes.html)}})]):_vm._e(),_vm._v(\" \"),(_vm.archive)?_c('div',{attrs:{\"id\":\"archive\"}},[_c('h5',[_c('b',[_vm._v(\"Archive downloaded episodes that are not currently in\\n \"),_c('app-link',{staticClass:\"backlog-link\",attrs:{\"href\":\"manage/backlogOverview/\",\"target\":\"_blank\"}},[_vm._v(\"backlog\")]),_vm._v(\".\")],1),_vm._v(\" \"),_c('br'),_vm._v(\"Avoids unnecessarily increasing your backlog\\n \"),_c('br')]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa btn-inline\",attrs:{\"disabled\":_vm.archiveButton.disabled},on:{\"click\":function($event){$event.preventDefault();return _vm.archiveEpisodes.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.archiveButton.text)+\"\\n \")]),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.archivedStatus))])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_c('b',[_c('strong',[_vm._v(\"Preferred\")])]),_vm._v(\" qualities will replace those in \"),_c('b',[_c('strong',[_vm._v(\"allowed\")])]),_vm._v(\", even if they are lower.\\n \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h5',[_c('b',[_vm._v(\"Quality setting explanation:\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scene-number-input.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scene-number-input.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./scene-number-input.vue?vue&type=template&id=34e5a9e3&scoped=true&\"\nimport script from \"./scene-number-input.vue?vue&type=script&lang=js&\"\nexport * from \"./scene-number-input.vue?vue&type=script&lang=js&\"\nimport style0 from \"./scene-number-input.vue?vue&type=style&index=0&id=34e5a9e3&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34e5a9e3\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{staticClass:\"sceneSeasonXEpisode form-control input-scene addQTip\",class:[\n _vm.isValid === true ? 'isValid' : '',\n _vm.isValid === false ? 'isInvalid' : '',\n _vm.numberingFrom === 'custom' ? 'isCustom' : ''\n ],staticStyle:{\"padding\":\"0\",\"text-align\":\"center\",\"max-width\":\"60px\"},attrs:{\"type\":\"text\",\"placeholder\":((_vm.sceneSeason || _vm.initialEpisode.season) + \"x\" + (_vm.sceneEpisode || _vm.initialEpisode.episode)),\"size\":\"6\",\"maxlength\":\"8\",\"title\":\"Change this value if scene numbering differs from the indexer episode numbering. Generally used for non-anime shows.\"},domProps:{\"value\":((_vm.sceneSeason || _vm.initialEpisode.season) + \"x\" + (_vm.sceneEpisode || _vm.initialEpisode.episode))},on:{\"change\":_vm.changeSceneNumbering}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scene-number-anime-input.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scene-number-anime-input.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./scene-number-anime-input.vue?vue&type=template&id=d394b1e8&scoped=true&\"\nimport script from \"./scene-number-anime-input.vue?vue&type=script&lang=js&\"\nexport * from \"./scene-number-anime-input.vue?vue&type=script&lang=js&\"\nimport style0 from \"./scene-number-anime-input.vue?vue&type=style&index=0&id=d394b1e8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d394b1e8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{staticClass:\"sceneAbsolute form-control input-scene addQTip\",class:[\n _vm.isValid === true ? 'isValid' : '',\n _vm.isValid === false ? 'isInvalid' : '',\n _vm.numberingFrom === 'custom' ? 'isCustom' : ''\n ],staticStyle:{\"padding\":\"0\",\"text-align\":\"center\",\"max-width\":\"60px\"},attrs:{\"type\":\"text\",\"placeholder\":_vm.sceneAbsolute,\"size\":\"6\",\"maxlength\":\"8\",\"title\":\"Change this value if scene absolute numbering differs from the indexer absolute numbering. Generally used for anime shows.\"},domProps:{\"value\":_vm.sceneAbsolute},on:{\"change\":_vm.changeSceneNumbering}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"scroll-buttons-wrapper\"}},[_c('div',{staticClass:\"scroll-wrapper top\",class:{ show: _vm.showToTop },on:{\"click\":function($event){$event.preventDefault();return _vm.scrollTop.apply(null, arguments)}}},[_vm._m(0)]),_vm._v(\" \"),_c('div',{staticClass:\"scroll-wrapper left\",class:{ show: _vm.showLeftRight }},[_c('span',{staticClass:\"scroll-left-inner\"},[_c('i',{staticClass:\"glyphicon glyphicon-circle-arrow-left\",on:{\"click\":function($event){$event.preventDefault();return _vm.scrollLeft.apply(null, arguments)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"scroll-wrapper right\",class:{ show: _vm.showLeftRight }},[_c('span',{staticClass:\"scroll-right-inner\"},[_c('i',{staticClass:\"glyphicon glyphicon-circle-arrow-right\",on:{\"click\":function($event){$event.preventDefault();return _vm.scrollRight.apply(null, arguments)}}})])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"scroll-top-inner\"},[_c('i',{staticClass:\"glyphicon glyphicon-circle-arrow-up\"})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scroll-buttons.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scroll-buttons.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./scroll-buttons.vue?vue&type=template&id=03c5223c&\"\nimport script from \"./scroll-buttons.vue?vue&type=script&lang=js&\"\nexport * from \"./scroll-buttons.vue?vue&type=script&lang=js&\"\nimport style0 from \"./scroll-buttons.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./search.vue?vue&type=template&id=9ee8b12a&scoped=true&\"\nimport script from \"./search.vue?vue&type=script&lang=js&\"\nexport * from \"./search.vue?vue&type=script&lang=js&\"\nimport style0 from \"./search.vue?vue&type=style&index=0&id=9ee8b12a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9ee8b12a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-wrapper\"},[(_vm.searchType === 'backlog')?_c('img',{ref:(\"search-\" + (_vm.episode.slug)),staticClass:\"epForcedSearch\",attrs:{\"id\":(_vm.showSlug + \"x\" + (_vm.episode.season) + \"x\" + (_vm.episode.episode)),\"name\":(_vm.showSlug + \"x\" + (_vm.episode.season) + \"x\" + (_vm.episode.episode)),\"src\":\"images/search16.png\",\"height\":\"16\",\"alt\":_vm.retryDownload(_vm.episode) ? 'retry' : 'search',\"title\":_vm.retryDownload(_vm.episode) ? 'Retry Download' : 'Forced Seach'},on:{\"click\":function($event){return _vm.queueSearch(_vm.episode)}}}):_vm._e(),_vm._v(\" \"),(_vm.searchType === 'manual')?_c('app-link',{staticClass:\"epManualSearch\",attrs:{\"id\":(_vm.showSlug + \"x\" + (_vm.episode.episode)),\"name\":(_vm.showSlug + \"x\" + (_vm.episode.season) + \"x\" + (_vm.episode.episode)),\"href\":(\"home/snatchSelection?showslug=\" + _vm.showSlug + \"&season=\" + (_vm.episode.season) + \"&episode=\" + (_vm.episode.episode))}},[_c('img',{attrs:{\"data-ep-manual-search\":\"\",\"src\":\"images/manualsearch.png\",\"width\":\"16\",\"height\":\"16\",\"alt\":\"search\",\"title\":\"Manual Search\"}})]):_vm._e(),_vm._v(\" \"),_c('modal',{attrs:{\"name\":\"query-start-backlog-search\",\"height\":'auto',\"width\":'80%'},on:{\"before-open\":_vm.beforeBacklogSearchModalClose}},[_c('transition',{attrs:{\"name\":\"modal\"}},[_c('div',{staticClass:\"modal-mask\"},[_c('div',{staticClass:\"modal-wrapper\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-hidden\":\"true\"}},[_vm._v(\"×\")]),_vm._v(\" \"),_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"Start search?\")])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-body\"},[_c('p',[_vm._v(\"Some episodes have been changed to 'Wanted'. Do you want to trigger a backlog search for these \"+_vm._s(_vm.backlogSearchEpisodes.length)+\" episode(s)\")])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn-medusa btn-danger\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){return _vm.$modal.hide('query-start-backlog-search')}}},[_vm._v(\"No\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa btn-success\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.search(_vm.backlogSearchEpisodes, 'backlog'); _vm.$modal.hide('query-start-backlog-search')}}},[_vm._v(\"Yes\")])])])])])])],1),_vm._v(\" \"),_c('modal',{attrs:{\"name\":\"query-mark-failed-and-search\",\"height\":'auto',\"width\":'80%'},on:{\"before-open\":_vm.beforeFailedSearchModalClose}},[_c('transition',{attrs:{\"name\":\"modal\"}},[_c('div',{staticClass:\"modal-mask\"},[_c('div',{staticClass:\"modal-wrapper\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._v(\"\\n Mark episode as failed and search?\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"modal-body\"},[_c('p',[_vm._v(\"Starting to search for the episode\")]),_vm._v(\" \"),(_vm.failedSearchEpisodes && _vm.failedSearchEpisodes.length === 1)?_c('p',[_vm._v(\"Would you also like to mark episode \"+_vm._s(_vm.failedSearchEpisodes[0].slug)+\" as \\\"failed\\\"? This will make sure the episode cannot be downloaded again\")]):(_vm.failedSearchEpisodes)?_c('p',[_vm._v(\"Would you also like to mark episodes \"+_vm._s(_vm.failedSearchEpisodes.map(function (ep) { return ep.slug; }).join(', '))+\" as \\\"failed\\\"? This will make sure the episode cannot be downloaded again\")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn-medusa btn-danger\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.search(_vm.failedSearchEpisodes, 'backlog'); _vm.$modal.hide('query-mark-failed-and-search')}}},[_vm._v(\"No\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa btn-success\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.search(_vm.failedSearchEpisodes, 'failed'); _vm.$modal.hide('query-mark-failed-and-search')}}},[_vm._v(\"Yes\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa btn-danger\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){return _vm.$modal.hide('query-mark-failed-and-search')}}},[_vm._v(\"Cancel\")])])])])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"search-template-container\"}},[_c('vue-snotify'),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},_vm._l((_vm.defaultEpisodeTemplates),function(template){return _c('search-template-pattern',_vm._b({key:template.id},'search-template-pattern',{ template: template, format: _vm.showFormat, animeType: _vm.animeType },false))}),1)])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},_vm._l((_vm.defaultSeasonTemplates),function(template){return _c('search-template-pattern',_vm._b({key:template.id},'search-template-pattern',{ template: template, format: _vm.showFormat, animeType: _vm.animeType },false))}),1)])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_vm._m(2),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},_vm._l((_vm.customTemplates),function(template){return _c('search-template-pattern',_vm._b({key:template.template,on:{\"remove\":_vm.remove}},'search-template-pattern',{ template: template, format: _vm.showFormat, animeType: _vm.animeType },false))}),1)])]),_vm._v(\" \"),_c('search-template-custom',_vm._b({on:{\"input\":_vm.add}},'search-template-custom',{ show: _vm.show, animeType: _vm.animeType, format: _vm.showFormat },false)),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showFormat === 'anime'),expression:\"showFormat === 'anime'\"}]},[_c('div',{staticClass:\"row\"},[(_vm.animeType > 0)?_c('div',{staticClass:\"form-group\"},[_vm._m(3),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.animeType),expression:\"animeType\"}],attrs:{\"type\":\"radio\",\"name\":\"naming_anime\",\"id\":\"naming_anime\"},domProps:{\"value\":1,\"checked\":_vm._q(_vm.animeType,1)},on:{\"change\":function($event){_vm.animeType=1}}}),_vm._v(\" \"),_c('span',[_vm._v(\"Add the absolute number to the season/episode format?\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Only applies to animes. (e.g. S15E45 - 310 vs S15E45)\")])])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[(_vm.animeType > 0)?_c('div',{staticClass:\"form-group\"},[_vm._m(4),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.animeType),expression:\"animeType\"}],attrs:{\"type\":\"radio\",\"name\":\"naming_anime\",\"id\":\"naming_anime_only\"},domProps:{\"value\":2,\"checked\":_vm._q(_vm.animeType,2)},on:{\"change\":function($event){_vm.animeType=2}}}),_vm._v(\" \"),_c('span',[_vm._v(\"Replace season/episode format with absolute number\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Only applies to animes.\")])])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[(_vm.animeType > 0)?_c('div',{staticClass:\"form-group\"},[_vm._m(5),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.animeType),expression:\"animeType\"}],attrs:{\"type\":\"radio\",\"name\":\"naming_anime\",\"id\":\"naming_anime_none\"},domProps:{\"value\":3,\"checked\":_vm._q(_vm.animeType,3)},on:{\"change\":function($event){_vm.animeType=3}}}),_vm._v(\" \"),_c('span',[_vm._v(\"Don't include the absolute number\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Only applies to animes.\")])])]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"nocheck\",attrs:{\"id\":\"naming-key\"}},[_c('table',{staticClass:\"Key\"},[_vm._m(6),_vm._v(\" \"),_vm._m(7),_vm._v(\" \"),_c('tbody',[_vm._m(8),_vm._v(\" \"),_vm._m(9),_vm._v(\" \"),_vm._m(10),_vm._v(\" \"),_vm._m(11),_vm._v(\" \"),_vm._m(12),_vm._v(\" \"),_vm._m(13),_vm._v(\" \"),_vm._m(14),_vm._v(\" \"),_vm._m(15),_vm._v(\" \"),_vm._m(16),_vm._v(\" \"),_vm._m(17),_vm._v(\" \"),_vm._m(18),_vm._v(\" \"),_vm._m(19),_vm._v(\" \"),_vm._m(20),_vm._v(\" \"),_vm._m(21),_vm._v(\" \"),_vm._m(22),_vm._v(\" \"),_vm._m(23),_vm._v(\" \"),_c('tr',[_vm._m(24),_vm._v(\" \"),_c('td',[_vm._v(\"%M\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('M')))])]),_vm._v(\" \"),_c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%D\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('d')))])]),_vm._v(\" \"),_c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%Y\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('yyyy')))])]),_vm._v(\" \"),_c('tr',[_vm._m(25),_vm._v(\" \"),_c('td',[_vm._v(\"%CM\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('M')))])]),_vm._v(\" \"),_c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%CD\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('d')))])]),_vm._v(\" \"),_c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%CY\")]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.getDateFormat('yyyy')))])]),_vm._v(\" \"),_vm._m(26),_vm._v(\" \"),_vm._m(27),_vm._v(\" \"),_vm._m(28),_vm._v(\" \"),_vm._m(29),_vm._v(\" \"),_vm._m(30),_vm._v(\" \"),_vm._m(31),_vm._v(\" \"),_vm._m(32),_vm._v(\" \"),_vm._m(33),_vm._v(\" \"),_vm._m(34)])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"default_templates\"}},[_c('span',[_vm._v(\"Default Episode Templates\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"default_templates\"}},[_c('span',[_vm._v(\"Default Season Templates\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"default_templates\"}},[_c('span',[_vm._v(\"Custom Templates\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"naming_anime\"}},[_c('span',[_vm._v(\"Add Absolute Number\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"naming_anime_only\"}},[_c('span',[_vm._v(\"Only Absolute Number\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"naming_anime_none\"}},[_c('span',[_vm._v(\"No Absolute Number\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{staticClass:\"align-right\"},[_vm._v(\"Meaning\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Pattern\")]),_vm._v(\" \"),_c('th',{attrs:{\"width\":\"60%\"}},[_vm._v(\"Result\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tfoot',[_c('tr',[_c('th',{attrs:{\"colspan\":\"3\"}},[_vm._v(\"\\n Use lower case if you want lower case names (eg.\\n %sn, %e.n, %q_n etc)\\n \")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Show Name:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%SN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%S.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show.Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%S_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show_Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Season Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%S\")]),_vm._v(\" \"),_c('td',[_vm._v(\"2\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0S\")]),_vm._v(\" \"),_c('td',[_vm._v(\"02\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"XEM Season Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%XS\")]),_vm._v(\" \"),_c('td',[_vm._v(\"2\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0XS\")]),_vm._v(\" \"),_c('td',[_vm._v(\"02\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%E\")]),_vm._v(\" \"),_c('td',[_vm._v(\"3\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0E\")]),_vm._v(\" \"),_c('td',[_vm._v(\"03\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"XEM Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%XE\")]),_vm._v(\" \"),_c('td',[_vm._v(\"3\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%0XE\")]),_vm._v(\" \"),_c('td',[_vm._v(\"03\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Absolute Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%AB\")]),_vm._v(\" \"),_c('td',[_vm._v(\"003\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Xem Absolute Episode Number:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%XAB\")]),_vm._v(\" \"),_c('td',[_vm._v(\"003\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Episode Name:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%EN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Episode Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%E.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Episode.Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%E_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Episode_Name\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Air Date:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Post-Processing Date:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Quality:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%QN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p BluRay\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%Q.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p.BluRay\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%Q_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p_BluRay\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('b',[_vm._v(\"Scene Quality:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%SQN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p HDTV x264\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%SQ.N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p.HDTV.x264\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \")]),_vm._v(\" \"),_c('td',[_vm._v(\"%SQ_N\")]),_vm._v(\" \"),_c('td',[_vm._v(\"720p_HDTV_x264\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('i',{staticClass:\"glyphicon glyphicon-info-sign\",attrs:{\"title\":\"Multi-EP style is ignored\"}}),_vm._v(\" \"),_c('b',[_vm._v(\"Release Name:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%RN\")]),_vm._v(\" \"),_c('td',[_vm._v(\"Show.Name.S02E03.HDTV.x264-RLSGROUP\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"align-right\"},[_c('i',{staticClass:\"glyphicon glyphicon-info-sign\",attrs:{\"title\":\"UNKNOWN_RELEASE_GROUP is used in place of RLSGROUP if it could not be properly detected\"}}),_vm._v(\" \"),_c('b',[_vm._v(\"Release Group:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%RG\")]),_vm._v(\" \"),_c('td',[_vm._v(\"RLSGROUP\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"even\"},[_c('td',{staticClass:\"align-right\"},[_c('i',{staticClass:\"glyphicon glyphicon-info-sign\",attrs:{\"title\":\"If episode is proper/repack add 'proper' to name.\"}}),_vm._v(\" \"),_c('b',[_vm._v(\"Release Type:\")])]),_vm._v(\" \"),_c('td',[_vm._v(\"%RT\")]),_vm._v(\" \"),_c('td',[_vm._v(\"PROPER\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search-template-custom.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search-template-custom.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./search-template-custom.vue?vue&type=template&id=306c900d&scoped=true&\"\nimport script from \"./search-template-custom.vue?vue&type=script&lang=js&\"\nexport * from \"./search-template-custom.vue?vue&type=script&lang=js&\"\nimport style0 from \"./search-template-custom.vue?vue&type=style&index=0&id=306c900d&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"306c900d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\",attrs:{\"id\":\"search-template-custom\"}},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12 content\"},[_c('div',{staticClass:\"row\"},[_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 content\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTitle),expression:\"selectedTitle\"}],staticClass:\"form-control input-sm\",attrs:{\"id\":\"default_page\",\"name\":\"default_page\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedTitle=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.selectTitles),function(option){return _c('option',{key:option.title,domProps:{\"value\":option}},[_vm._v(_vm._s(_vm.titleOptionDescription(option))+\"\\n \")])}),0)])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_vm._m(2),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('div',{staticClass:\"checkbox\"},[_c('label',{attrs:{\"for\":\"episode\"}},[_vm._v(\"Episode\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.episodeOrSeason),expression:\"episodeOrSeason\"}],attrs:{\"type\":\"radio\",\"id\":\"episode\"},domProps:{\"value\":'episode',\"checked\":_vm._q(_vm.episodeOrSeason,'episode')},on:{\"change\":function($event){_vm.episodeOrSeason='episode'}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"episode\"}},[_vm._v(\"Season\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.episodeOrSeason),expression:\"episodeOrSeason\"}],attrs:{\"type\":\"radio\",\"id\":\"season\"},domProps:{\"value\":'season',\"checked\":_vm._q(_vm.episodeOrSeason,'season')},on:{\"change\":function($event){_vm.episodeOrSeason='season'}}})])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_vm._m(3),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 pattern\"},[(_vm.selectedTitle)?_c('span',{ref:\"inputTitle\"},[_vm._v(\"%SN\")]):_vm._e(),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addPattern),expression:\"addPattern\"}],staticClass:\"form-control-inline-max input-sm max-input350 search-pattern\",staticStyle:{\"padding-left\":\"50px\"},attrs:{\"type\":\"text\",\"name\":\"new_pattern\",\"disabled\":!_vm.selectedTitle},domProps:{\"value\":(_vm.addPattern)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.addPattern=$event.target.value}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.enabled),expression:\"enabled\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.enabled)?_vm._i(_vm.enabled,null)>-1:(_vm.enabled)},on:{\"change\":function($event){var $$a=_vm.enabled,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.enabled=$$a.concat([$$v]))}else{$$i>-1&&(_vm.enabled=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.enabled=$$c}}}}),_vm._v(\" \"),(!_vm.validated && _vm.isValidMessage)?_c('p',[_vm._v(_vm._s(_vm.isValidMessage))]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_vm._m(4),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\",class:{ 'error-message': !_vm.validated }},[_vm._v(\"\\n \"+_vm._s(_vm.patternExample)+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2\"}),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10 vertical-align\"},[_c('input',{staticClass:\"btn-medusa pull-left button\",attrs:{\"id\":\"submit\",\"type\":\"submit\",\"value\":\"Add custom exception\",\"disabled\":!_vm.validated},on:{\"click\":_vm.add}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.notification))])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\",attrs:{\"for\":\"default_templates\"}},[_c('span',[_vm._v(\"Add Custom Template\")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\"},[_c('span',[_vm._v(\"Title:\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\"},[_c('span',[_vm._v(\"Episode or Season search:\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\"},[_c('span',[_vm._v(\"Search Template:\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-sm-2\"},[_c('label',{staticClass:\"control-label\"},[_c('span',[_vm._v(\"example:\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search-template-pattern.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search-template-pattern.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./search-template-pattern.vue?vue&type=template&id=3d65af5e&scoped=true&\"\nimport script from \"./search-template-pattern.vue?vue&type=script&lang=js&\"\nexport * from \"./search-template-pattern.vue?vue&type=script&lang=js&\"\nimport style0 from \"./search-template-pattern.vue?vue&type=style&index=0&id=3d65af5e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d65af5e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search-template-container.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search-template-container.vue?vue&type=script&lang=js&\"","\n\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"search-template-pattern\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-12 content\"},[_c('div',{staticClass:\"template-wrapper\"},[_c('span',{staticClass:\"template-title\"},[_vm._v(_vm._s(_vm.searchTemplate.title))]),_vm._v(\" \"),_c('img',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.right\",value:({\n content: _vm.searchTemplate.season === -1 ? 'Show Exception' : (\"Season \" + (_vm.searchTemplate.season) + \" Exception\")\n }),expression:\"{\\n content: searchTemplate.season === -1 ? 'Show Exception' : `Season ${searchTemplate.season} Exception`\\n }\",modifiers:{\"right\":true}}],staticStyle:{\"margin-bottom\":\"2px\"},attrs:{\"src\":\"images/info32.png\",\"width\":\"16\",\"height\":\"16\",\"alt\":\"\"}}),_vm._v(\" \"),(!_vm.searchTemplate.default)?_c('img',{staticClass:\"template-remove\",attrs:{\"src\":\"images/no16.png\"},on:{\"click\":function($event){return _vm.$emit('remove', _vm.searchTemplate)}}}):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.right\",value:({ content: _vm.tooltipContent }),expression:\"{ content: tooltipContent }\",modifiers:{\"right\":true}}],staticClass:\"tooltip-wrapper-pattern\"},[_c('div',{staticClass:\"template-body\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTemplate.template),expression:\"searchTemplate.template\"}],staticClass:\"form-control-inline-max input-sm max-input350 search-pattern\",class:{ invalid: !_vm.validated },attrs:{\"type\":\"text\",\"name\":\"search_pattern\",\"disabled\":\"disabled\"},domProps:{\"value\":(_vm.searchTemplate.template)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.searchTemplate, \"template\", $event.target.value)}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTemplate.enabled),expression:\"searchTemplate.enabled\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.searchTemplate.enabled)?_vm._i(_vm.searchTemplate.enabled,null)>-1:(_vm.searchTemplate.enabled)},on:{\"change\":function($event){var $$a=_vm.searchTemplate.enabled,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.searchTemplate, \"enabled\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.searchTemplate, \"enabled\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.searchTemplate, \"enabled\", $$c)}}}}),_vm._v(\" \"),_c('i',{staticClass:\"show-template glyphicon\",class:(\"glyphicon-eye-\" + (_vm.showExample ? 'close' : 'open')),attrs:{\"title\":\"Show template example\"},on:{\"click\":function($event){_vm.showExample = !_vm.showExample}}})])])]),_vm._v(\" \"),(_vm.showExample)?_c('span',{staticClass:\"template-example\",class:{ invalid: !_vm.validated },attrs:{\"name\":\"search_pattern\"}},[_vm._v(\"Example: \"+_vm._s(_vm.searchTemplateExample)+\"\\n \")]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./search-template-container.vue?vue&type=template&id=110c2eea&\"\nimport script from \"./search-template-container.vue?vue&type=script&lang=js&\"\nexport * from \"./search-template-container.vue?vue&type=script&lang=js&\"\nimport style0 from \"./search-template-container.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select-list.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select-list.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./select-list.vue?vue&type=template&id=1843461f&scoped=true&\"\nimport script from \"./select-list.vue?vue&type=script&lang=js&\"\nexport * from \"./select-list.vue?vue&type=script&lang=js&\"\nimport style0 from \"./select-list.vue?vue&type=style&index=0&id=1843461f&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1843461f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:\"select-list max-width\"},'div',{disabled: _vm.disabled},false),[_c('i',{staticClass:\"switch-input glyphicon glyphicon-refresh\",attrs:{\"title\":\"Switch between a list and comma separated values\"},on:{\"click\":function($event){return _vm.switchFields()}}}),_vm._v(\" \"),(!_vm.csvMode)?_c('ul',[_vm._l((_vm.editItems),function(item){return _c('li',{key:item.id},[_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(item.value),expression:\"item.value\"}],staticClass:\"form-control input-sm\",attrs:{\"disabled\":\"\",\"type\":\"text\"},domProps:{\"value\":(item.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(item, \"value\", $event.target.value)},function($event){return _vm.removeEmpty(item)}]}}),_vm._v(\" \"),_c('div',{staticClass:\"input-group-btn\",on:{\"click\":function($event){return _vm.deleteItem(item)}}},[_vm._m(0,true)])])])}),_vm._v(\" \"),_c('div',{staticClass:\"new-item\"},[_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newItem),expression:\"newItem\"}],ref:\"newItemInput\",staticClass:\"form-control input-sm\",attrs:{\"type\":\"text\",\"placeholder\":\"add new values per line\"},domProps:{\"value\":(_vm.newItem)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newItem=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"input-group-btn\",on:{\"click\":function($event){return _vm.addNewItem()}}},[_vm._m(1)])])]),_vm._v(\" \"),(_vm.newItem.length > 0)?_c('div',{staticClass:\"new-item-help\"},[_vm._v(\"\\n Click \"),_c('i',{staticClass:\"glyphicon glyphicon-plus\"}),_vm._v(\" to finish adding the value.\\n \")]):_vm._e()],2):_c('div',{staticClass:\"csv\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.csv),expression:\"csv\"}],staticClass:\"form-control input-sm\",attrs:{\"type\":\"text\",\"placeholder\":\"add values comma separated\"},domProps:{\"value\":(_vm.csv)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.csv=$event.target.value}}})])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn btn-default input-sm\",staticStyle:{\"font-size\":\"14px\",\"background-color\":\"rgb(238, 238, 238)\"}},[_c('i',{staticClass:\"glyphicon glyphicon-remove\",attrs:{\"title\":\"Remove\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn btn-default input-sm\",staticStyle:{\"font-size\":\"14px\"}},[_c('i',{staticClass:\"glyphicon glyphicon-plus\",attrs:{\"title\":\"Add\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select-trakt-lists.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select-trakt-lists.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./select-trakt-lists.vue?vue&type=template&id=20efe074&scoped=true&\"\nimport script from \"./select-trakt-lists.vue?vue&type=script&lang=js&\"\nexport * from \"./select-trakt-lists.vue?vue&type=script&lang=js&\"\nimport style0 from \"./select-trakt-lists.vue?vue&type=style&index=0&id=20efe074&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20efe074\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"select-trakt-list max-width\"},[_c('ul',_vm._l((_vm.availableLists),function(availableList){return _c('li',{key:availableList},[_c('div',{staticClass:\"trakt-list-group\"},[_c('input',{staticClass:\"form-control input-sm available-list\",attrs:{\"disabled\":\"\",\"type\":\"text\"},domProps:{\"value\":availableList}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":_vm.selectedLists.find(function (list) { return list === availableList; })},on:{\"input\":function($event){return _vm.saveLists($event, availableList)}}})])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./show-selector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./show-selector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./show-selector.vue?vue&type=template&id=43633cb1&\"\nimport script from \"./show-selector.vue?vue&type=script&lang=js&\"\nexport * from \"./show-selector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./show-selector.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"show-selector form-inline hidden-print\"},[_c('div',{staticClass:\"select-show-group pull-left top-5 bottom-5\"},[(_vm.shows.length === 0)?_c('select',{class:_vm.selectClass,attrs:{\"disabled\":\"\"}},[_c('option',[_vm._v(\"Loading...\")])]):_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedShowSlug),expression:\"selectedShowSlug\"}],class:_vm.selectClass,on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedShowSlug=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.changeRoute($event.target.value);}]}},[(_vm.placeHolder)?_c('option',{attrs:{\"disabled\":\"\",\"hidden\":\"\"},domProps:{\"value\":_vm.placeHolder,\"selected\":!_vm.selectedShowSlug}},[_vm._v(_vm._s(_vm.placeHolder))]):_vm._e(),_vm._v(\" \"),(_vm.sortedLists && _vm.sortedLists.length > 1)?_vm._l((_vm.sortedLists),function(list){return _c('optgroup',{key:list.listTitle,attrs:{\"label\":list.listTitle}},_vm._l((list.shows),function(show){return _c('option',{key:show.id.slug,domProps:{\"value\":show.id.slug}},[_vm._v(_vm._s(show.title))])}),0)}):_vm._l((_vm.sortedLists[0].shows),function(show){return _c('option',{key:show.id.slug,domProps:{\"value\":show.id.slug}},[_vm._v(_vm._s(show.title))])})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:\"sorted-select-list max-width\"},'div',{disabled: _vm.disabled},false),[_c('draggable',{staticClass:\"list-group\",attrs:{\"tag\":\"ul\",\"handle\":\".handle\"},on:{\"start\":function($event){_vm.dragging = true},\"end\":function($event){_vm.dragging = false}},model:{value:(_vm.editItems),callback:function ($$v) {_vm.editItems=$$v},expression:\"editItems\"}},_vm._l((_vm.editItems),function(item){return _c('li',{key:item.id,staticClass:\"draggable-list\"},[_c('font-awesome-icon',{staticClass:\"handle\",attrs:{\"icon\":'align-justify'}}),_vm._v(\" \"),_c('div',{staticClass:\"draggable-input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(item.value),expression:\"item.value\"}],staticClass:\"form-control input-sm\",attrs:{\"type\":\"text\"},domProps:{\"value\":(item.value)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(item, \"value\", $event.target.value)},function($event){return _vm.removeEmpty(item)}]}}),_vm._v(\" \"),_c('div',{staticClass:\"input-group-btn\",on:{\"click\":function($event){return _vm.deleteItem(item)}}},[_c('div',{staticClass:\"btn btn-default input-sm\",staticStyle:{\"font-size\":\"14px\"}},[_c('i',{staticClass:\"glyphicon glyphicon-remove\",attrs:{\"title\":\"Remove\"}})])])])],1)}),0),_vm._v(\" \"),_c('div',{staticClass:\"new-item\"},[_c('div',{staticClass:\"draggable-input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newItem),expression:\"newItem\"}],ref:\"newItemInput\",staticClass:\"form-control input-sm\",attrs:{\"type\":\"text\",\"placeholder\":\"add new values per line\"},domProps:{\"value\":(_vm.newItem)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newItem=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"input-group-btn\",on:{\"click\":function($event){return _vm.addNewItem()}}},[_vm._m(0)])])]),_vm._v(\" \"),(_vm.newItem.length > 0)?_c('div',{staticClass:\"new-item-help\"},[_vm._v(\"\\n Click \"),_c('i',{staticClass:\"glyphicon glyphicon-plus\"}),_vm._v(\" to finish adding the value.\\n \")]):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn btn-default input-sm\",staticStyle:{\"font-size\":\"14px\"}},[_c('i',{staticClass:\"glyphicon glyphicon-plus\",attrs:{\"title\":\"Add\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sorted-select-list.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sorted-select-list.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sorted-select-list.vue?vue&type=template&id=48a6e4c2&scoped=true&\"\nimport script from \"./sorted-select-list.vue?vue&type=script&lang=js&\"\nexport * from \"./sorted-select-list.vue?vue&type=script&lang=js&\"\nimport style0 from \"./sorted-select-list.vue?vue&type=style&index=0&id=48a6e4c2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48a6e4c2\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./test-guessit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./test-guessit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./test-guessit.vue?vue&type=template&id=44a40dd8&scoped=true&\"\nimport script from \"./test-guessit.vue?vue&type=script&lang=js&\"\nexport * from \"./test-guessit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./test-guessit.vue?vue&type=style&index=0&id=44a40dd8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44a40dd8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-10\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.releaseName),expression:\"releaseName\"}],staticClass:\"form-control input-sm\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.releaseName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.releaseName=$event.target.value}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('pre',[_vm._v(_vm._s(JSON.stringify(_vm.guessitResult, undefined, 4)))])])]),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",on:{\"click\":function($event){$event.preventDefault();return _vm.testReleaseName.apply(null, arguments)}}},[_vm._v(\"Test Release Name\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12\"},[_c('p',[_vm._v(\"Guessit is a library used for parsing release names. As a minimum Medusa requires a show title, season and episode (if not parsed as a season pack).\")]),_vm._v(\" \"),_c('p',[_vm._v(\"You can fill in your release name and click the `Test Release Name` button, to get the guessit response.\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-lg-2\"},[_c('span',[_vm._v(\"Release name:\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('config-toggle-slider',{attrs:{\"label\":\"Enable\",\"id\":\"use_trakt\",\"explanations\":['Send Trakt.tv notifications?']},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.enabled),callback:function ($$v) {_vm.$set(_vm.trakt, \"enabled\", $$v)},expression:\"trakt.enabled\"}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.trakt.enabled),expression:\"trakt.enabled\"}],attrs:{\"id\":\"content-use-trakt-client\"}},[_c('config-template',{attrs:{\"label-for\":\"trakt_request_auth\",\"label\":\"\"}},[_c('input',{staticClass:\"btn-medusa\",attrs:{\"type\":\"button\",\"value\":\"Connect to your trakt account\",\"id\":\"Trakt\"},on:{\"click\":_vm.TraktRequestDeviceCode}}),_vm._v(\" \"),(_vm.traktRequestSend && _vm.traktUserCode)?_c('span',{staticStyle:{\"display\":\"inline\"}},[_vm._v(\"Use this code in the popup: \"+_vm._s(_vm.traktUserCode))]):_vm._e(),_vm._v(\" \"),(_vm.traktRequestSend && _vm.traktUserCode && _vm.traktRequestMessage)?_c('p',[_vm._v(\"Trakt request status: \"+_vm._s(_vm.traktRequestMessage))]):_vm._e(),_vm._v(\" \"),(_vm.traktRequestAuthenticated && _vm.traktRequestMessage)?_c('p',[_vm._v(_vm._s(_vm.traktRequestMessage))]):_vm._e()]),_vm._v(\" \"),(!_vm.authOnly)?[_c('config-textbox-number',{attrs:{\"label\":\"API Timeout\",\"id\":\"trakt_timeout\",\"explanations\":['Seconds to wait for Trakt API to respond. (Use 0 to wait forever)']},model:{value:(_vm.trakt.timeout),callback:function ($$v) {_vm.$set(_vm.trakt, \"timeout\", $$v)},expression:\"trakt.timeout\"}}),_vm._v(\" \"),_c('config-template',{attrs:{\"label-for\":\"trakt_default_indexer\",\"label\":\"Default indexer\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.trakt.defaultIndexer),expression:\"trakt.defaultIndexer\"}],staticClass:\"form-control\",attrs:{\"id\":\"trakt_default_indexer\",\"name\":\"trakt_default_indexer\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.trakt, \"defaultIndexer\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.traktIndexersOptions),function(option){return _c('option',{key:option.key,domProps:{\"value\":option.value}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])}),0)]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Sync libraries\",\"id\":\"trakt_sync\"},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.sync),callback:function ($$v) {_vm.$set(_vm.trakt, \"sync\", $$v)},expression:\"trakt.sync\"}},[_c('p',[_vm._v(\"Sync your Medusa show library with your Trakt collection.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Note: Don't enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Kodi detects that the episode was deleted and removes from collection which causes Medusa to re-add it. This causes a loop between Medusa and Kodi adding and deleting the episode.\")])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.trakt.sync),expression:\"trakt.sync\"}],attrs:{\"id\":\"content-use-trakt-client\"}},[_c('config-toggle-slider',{attrs:{\"label\":\"Remove Episodes From Collection\",\"id\":\"trakt_remove_watchlist\",\"explanations\":['Remove an Episode from your Trakt Collection if it is not in your Medusa Library.', 'Note:Don\\'t enable this setting if you use the Trakt addon for Kodi or any other script that syncs your library.']},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.removeWatchlist),callback:function ($$v) {_vm.$set(_vm.trakt, \"removeWatchlist\", $$v)},expression:\"trakt.removeWatchlist\"}})],1),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Sync watchlist\",\"id\":\"trakt_sync_watchlist\"},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.syncWatchlist),callback:function ($$v) {_vm.$set(_vm.trakt, \"syncWatchlist\", $$v)},expression:\"trakt.syncWatchlist\"}},[_c('p',[_vm._v(\"Sync your Medusa library with your Trakt Watchlist (either Show and Episode).\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Episode will be added on watch list when wanted or snatched and will be removed when downloaded\")]),_vm._v(\" \"),_c('p',[_vm._v(\"Note: By design, Trakt automatically removes episodes and/or shows from watchlist as soon you have watched them.\")])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.trakt.syncWatchlist),expression:\"trakt.syncWatchlist\"}],attrs:{\"id\":\"content-use-trakt-client\"}},[_c('config-template',{attrs:{\"label-for\":\"trakt_default_indexer\",\"label\":\"Watchlist add method\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.trakt.methodAdd),expression:\"trakt.methodAdd\"}],staticClass:\"form-control\",attrs:{\"id\":\"trakt_method_add\",\"name\":\"trakt_method_add\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.trakt, \"methodAdd\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.traktMethodOptions),function(option){return _c('option',{key:option.key,domProps:{\"value\":option.value}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])}),0),_vm._v(\" \"),_c('p',[_vm._v(\"method in which to download episodes for new shows.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Remove episode\",\"id\":\"trakt_remove_watchlist\"},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.removeWatchlist),callback:function ($$v) {_vm.$set(_vm.trakt, \"removeWatchlist\", $$v)},expression:\"trakt.removeWatchlist\"}},[_c('p',[_vm._v(\"remove an episode from your watchlist after it's downloaded.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Remove series\",\"id\":\"trakt_remove_serieslist\"},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.removeSerieslist),callback:function ($$v) {_vm.$set(_vm.trakt, \"removeSerieslist\", $$v)},expression:\"trakt.removeSerieslist\"}},[_c('p',[_vm._v(\"remove the whole series from your watchlist after any download.\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Remove watched show\",\"id\":\"trakt_remove_show_from_application\"},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.removeShowFromApplication),callback:function ($$v) {_vm.$set(_vm.trakt, \"removeShowFromApplication\", $$v)},expression:\"trakt.removeShowFromApplication\"}},[_c('p',[_vm._v(\"remove the show from Medusa if it\\\\'s ended and completely watched\")])]),_vm._v(\" \"),_c('config-toggle-slider',{attrs:{\"label\":\"Start paused\",\"id\":\"trakt_start_paused\"},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.startPaused),callback:function ($$v) {_vm.$set(_vm.trakt, \"startPaused\", $$v)},expression:\"trakt.startPaused\"}},[_c('p',[_vm._v(\"shows grabbed from your trakt watchlist start paused.\")])])],1),_vm._v(\" \"),_c('config-textbox',{class:_vm.traktBlacklistClass,attrs:{\"label\":\"Trakt blackList name\",\"id\":\"trakt_blacklist_name\"},on:{\"change\":function($event){return _vm.save()}},model:{value:(_vm.trakt.blacklistName),callback:function ($$v) {_vm.$set(_vm.trakt, \"blacklistName\", $$v)},expression:\"trakt.blacklistName\"}},[_c('p',[_vm._v(\"Name(slug) of List on Trakt for blacklisting show on 'Add Trending Show' & 'Add Recommended Shows' pages\")])])]:_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"testNotification\",attrs:{\"id\":\"testTrakt-result\"}},[_vm._v(_vm._s(_vm.testTraktResult))]),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"id\":\"trakt_pin_url\"},domProps:{\"value\":_vm.trakt.pinUrl}}),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa\",attrs:{\"id\":\"testTrakt\"},on:{\"click\":_vm.testTrakt}},[_vm._v(\"Test Trakt\")]),_vm._v(\" \"),(!_vm.authOnly)?_c('button',{staticClass:\"btn-medusa\",attrs:{\"id\":\"forceSync\"},on:{\"click\":_vm.traktForceSync}},[_vm._v(\"Force Sync\")]):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"btn-medusa config_submitter\",attrs:{\"disabled\":_vm.saving},on:{\"click\":_vm.save}},[_vm._v(\"Save Changes\")])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./trakt-authentication.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./trakt-authentication.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./trakt-authentication.vue?vue&type=template&id=543318bb&scoped=true&\"\nimport script from \"./trakt-authentication.vue?vue&type=script&lang=js&\"\nexport * from \"./trakt-authentication.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"543318bb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"addShowPortal\"}},[_c('app-link',{staticClass:\"btn-medusa btn-large\",attrs:{\"href\":\"addShows/trendingShows/?traktList=anticipated\",\"id\":\"btnNewShow\"}},[_c('div',{staticClass:\"button\"},[_c('div',{staticClass:\"add-list-icon-addtrakt\"})]),_vm._v(\" \"),_c('div',{staticClass:\"buttontext\"},[_c('h3',[_vm._v(\"Add From Trakt Lists\")]),_vm._v(\" \"),_c('p',[_vm._v(\"For shows that you haven't downloaded yet, this option lets you choose from a show from one of the Trakt lists to add to Medusa .\")])])]),_vm._v(\" \"),_c('app-link',{staticClass:\"btn-medusa btn-large\",attrs:{\"href\":\"addShows/popularShows/\",\"id\":\"btnNewShow\"}},[_c('div',{staticClass:\"button\"},[_c('div',{staticClass:\"add-list-icon-addimdb\"})]),_vm._v(\" \"),_c('div',{staticClass:\"buttontext\"},[_c('h3',[_vm._v(\"Add From IMDB's Popular Shows\")]),_vm._v(\" \"),_c('p',[_vm._v(\"View IMDB's list of the most popular shows. This feature uses IMDB's MOVIEMeter algorithm to identify popular TV Shows.\")])])]),_vm._v(\" \"),_c('app-link',{staticClass:\"btn-medusa btn-large\",attrs:{\"href\":\"addShows/popularAnime/\",\"id\":\"btnNewShow\"}},[_c('div',{staticClass:\"button\"},[_c('div',{staticClass:\"add-list-icon-addanime\"})]),_vm._v(\" \"),_c('div',{staticClass:\"buttontext\"},[_c('h3',[_vm._v(\"Add From Anidb's Hot Anime list\")]),_vm._v(\" \"),_c('p',[_vm._v(\"View Anidb's list of the most popular anime shows. Anidb provides lists for Popular Anime, using the \\\"Hot Anime\\\" list.\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add-recommended.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add-recommended.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./add-recommended.vue?vue&type=template&id=56f7e8ee&\"\nimport script from \"./add-recommended.vue?vue&type=script&lang=js&\"\nexport * from \"./add-recommended.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app.vue?vue&type=style&index=0&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./app.vue?vue&type=template&id=412a4104&\"\nimport script from \"./app.vue?vue&type=script&lang=js&\"\nexport * from \"./app.vue?vue&type=script&lang=js&\"\nimport style0 from \"./app.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('vue-snotify'),_vm._v(\" \"),(_vm.$route.meta.header)?_c('h1',{staticClass:\"header\"},[_vm._v(_vm._s(_vm.$route.meta.header))]):_vm._e(),_vm._v(\" \"),_c('router-view',{key:_vm.$route.meta.nocache ? _vm.$route.fullPath : _vm.$route.name})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',[_c('div',{staticClass:\"footer clearfix\"},[_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.stats.overall.shows.total))]),_vm._v(\" Shows (\"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.stats.overall.shows.active))]),_vm._v(\" Active)\\n | \"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.stats.overall.episodes.downloaded))]),_vm._v(\" \"),(_vm.stats.overall.episodes.snatched)?[_c('span',{staticClass:\"footerhighlight\"},[_c('app-link',{attrs:{\"href\":(\"manage/episodeStatuses?status=\" + _vm.snatchedStatus),\"title\":\"View overview of snatched episodes\"}},[_vm._v(\"+\"+_vm._s(_vm.stats.overall.episodes.snatched))])],1),_vm._v(\"\\n Snatched\\n \")]:_vm._e(),_vm._v(\"\\n / \"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.stats.overall.episodes.total))]),_vm._v(\" Episodes Downloaded \"),(_vm.episodePercentage)?_c('span',{staticClass:\"footerhighlight\"},[_vm._v(\"(\"+_vm._s(_vm.episodePercentage)+\")\")]):_vm._e(),_vm._v(\"\\n | Daily Search: \"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.schedulerNextRun('dailySearch')))]),_vm._v(\"\\n | Backlog Search: \"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.schedulerNextRun('backlog')))]),_vm._v(\" \"),_c('div',[(_vm.system.memoryUsage)?[_vm._v(\"\\n Memory used: \"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.system.memoryUsage))]),_vm._v(\" |\\n \")]:_vm._e(),_vm._v(\" \"),_vm._v(\"\\n Branch: \"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.system.branch || 'Unknown'))]),_vm._v(\" |\\n Now: \"),_c('span',{staticClass:\"footerhighlight\"},[_vm._v(_vm._s(_vm.nowInUserPreset))])],2)],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app-footer.vue?vue&type=template&id=5cf1e725&scoped=true&\"\nimport script from \"./app-footer.vue?vue&type=script&lang=js&\"\nexport * from \"./app-footer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5cf1e725\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"navbar navbar-default navbar-fixed-top hidden-print\",attrs:{\"role\":\"navigation\"}},[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"navbar-header\"},[_c('button',{staticClass:\"navbar-toggle collapsed\",attrs:{\"type\":\"button\",\"data-toggle\":\"collapse\",\"data-target\":\"#main_nav\"}},[(_vm.toolsBadgeCount > 0)?_c('span',{class:(\"floating-badge\" + _vm.toolsBadgeClass)},[_vm._v(_vm._s(_vm.toolsBadgeCount))]):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Toggle navigation\")]),_vm._v(\" \"),_c('span',{staticClass:\"icon-bar\"}),_vm._v(\" \"),_c('span',{staticClass:\"icon-bar\"}),_vm._v(\" \"),_c('span',{staticClass:\"icon-bar\"})]),_vm._v(\" \"),_c('app-link',{staticClass:\"navbar-brand\",attrs:{\"href\":\"home/\",\"title\":\"Medusa\"}},[_c('img',{staticClass:\"img-responsive pull-left\",staticStyle:{\"height\":\"50px\"},attrs:{\"alt\":\"Medusa\",\"src\":\"images/medusa.png\"}})])],1),_vm._v(\" \"),(_vm.isAuthenticated)?_c('div',{staticClass:\"collapse navbar-collapse\",attrs:{\"id\":\"main_nav\"}},[_c('ul',{staticClass:\"nav navbar-nav navbar-right\"},[_c('li',{staticClass:\"navbar-split dropdown\",class:{ active: _vm.topMenu === 'home' },attrs:{\"id\":\"NAVhome\"}},[_c('app-link',{staticClass:\"dropdown-toggle\",attrs:{\"aria-haspopup\":\"true\",\"data-toggle\":\"dropdown\",\"data-hover\":\"dropdown\"}},[_c('span',[_vm._v(\"Shows\")]),_vm._v(\" \"),_c('b',{staticClass:\"caret\"})]),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu\"},[_c('li',[_c('app-link',{attrs:{\"href\":\"home/\"}},[_c('i',{staticClass:\"menu-icon-home\"}),_vm._v(\" Show List\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"addShows/\"}},[_c('i',{staticClass:\"menu-icon-addshow\"}),_vm._v(\" Add Shows\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"addRecommended/\"}},[_c('i',{staticClass:\"menu-icon-addshow\"}),_vm._v(\" Add Recommended Shows\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"home/postprocess/\"}},[_c('i',{staticClass:\"menu-icon-postprocess\"}),_vm._v(\" Manual Post-Processing\")])],1),_vm._v(\" \"),(_vm.recentShows.length > 0)?_c('li',{staticClass:\"divider\",attrs:{\"role\":\"separator\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.recentShows),function(recentShow){return _c('li',{key:recentShow.link},[_c('app-link',{attrs:{\"href\":recentShow.link}},[_c('i',{staticClass:\"menu-icon-addshow\"}),_vm._v(\" \"+_vm._s(recentShow.name)+\"\\n \")])],1)})],2),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})],1),_vm._v(\" \"),_c('li',{staticClass:\"navbar-split\",class:{ active: _vm.topMenu === 'schedule' },attrs:{\"id\":\"NAVschedule\"}},[_c('app-link',{attrs:{\"href\":\"schedule/\"}},[_vm._v(\"Schedule\")])],1),_vm._v(\" \"),_c('li',{staticClass:\"navbar-split\",class:{ active: _vm.topMenu === 'history' },attrs:{\"id\":\"NAVhistory\"}},[_c('app-link',{attrs:{\"href\":\"history/\"}},[_vm._v(\"History\")])],1),_vm._v(\" \"),_c('li',{staticClass:\"navbar-split dropdown\",class:{ active: _vm.topMenu === 'manage' },attrs:{\"id\":\"NAVmanage\"}},[_c('app-link',{staticClass:\"dropdown-toggle\",attrs:{\"aria-haspopup\":\"true\",\"data-toggle\":\"dropdown\",\"data-hover\":\"dropdown\"}},[_c('span',[_vm._v(\"Manage\")]),_vm._v(\" \"),_c('b',{staticClass:\"caret\"})]),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu\"},[_c('li',[_c('app-link',{attrs:{\"href\":\"manage/\"}},[_c('i',{staticClass:\"menu-icon-manage\"}),_vm._v(\" Mass Update\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"manage/changeIndexer/\"}},[_c('i',{staticClass:\"menu-icon-manage-change\"}),_vm._v(\" Change Indexer\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"manage/backlogOverview/\"}},[_c('i',{staticClass:\"menu-icon-backlog-view\"}),_vm._v(\" Backlog Overview\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"manage/manageSearches/\"}},[_c('i',{staticClass:\"menu-icon-manage-searches\"}),_vm._v(\" Manage Searches\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"manage/episodeStatuses/\"}},[_c('i',{staticClass:\"menu-icon-manage2\"}),_vm._v(\" Episode Status Management\")])],1),_vm._v(\" \"),(_vm.linkVisible.plex)?_c('li',[_c('a',{attrs:{\"href\":\"home/updatePLEX/\"},on:{\"click\":function($event){$event.preventDefault();return _vm.updatePlex.apply(null, arguments)}}},[_c('i',{staticClass:\"menu-icon-plex\"}),_vm._v(\" Update PLEX\")])]):_vm._e(),_vm._v(\" \"),(_vm.linkVisible.kodi)?_c('li',[_c('a',{attrs:{\"href\":\"home/updateKODI/\"},on:{\"click\":function($event){$event.preventDefault();return _vm.updateKodi.apply(null, arguments)}}},[_c('i',{staticClass:\"menu-icon-kodi\"}),_vm._v(\" Update KODI\")])]):_vm._e(),_vm._v(\" \"),(_vm.linkVisible.emby)?_c('li',[_c('a',{attrs:{\"href\":\"home/updateEMBY/\"},on:{\"click\":function($event){$event.preventDefault();return _vm.updateEmby.apply(null, arguments)}}},[_c('i',{staticClass:\"menu-icon-emby\"}),_vm._v(\" Update Emby\")])]):_vm._e(),_vm._v(\" \"),(_vm.linkVisible.manageTorrents)?_c('li',[_c('app-link',{attrs:{\"href\":\"manage/manageTorrents/\",\"target\":\"_blank\"}},[_c('i',{staticClass:\"menu-icon-bittorrent\"}),_vm._v(\" Manage Torrents\")])],1):_vm._e(),_vm._v(\" \"),(_vm.linkVisible.failedDownloads)?_c('li',[_c('app-link',{attrs:{\"href\":\"manage/failedDownloads/\"}},[_c('i',{staticClass:\"menu-icon-failed-download\"}),_vm._v(\" Failed Downloads\")])],1):_vm._e(),_vm._v(\" \"),(_vm.linkVisible.subtitleMissed)?_c('li',[_c('app-link',{attrs:{\"href\":\"manage/subtitleMissed/\"}},[_c('i',{staticClass:\"menu-icon-backlog\"}),_vm._v(\" Missed Subtitle Management\")])],1):_vm._e()]),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})],1),_vm._v(\" \"),_c('li',{staticClass:\"navbar-split dropdown\",class:{ active: _vm.topMenu === 'config' },attrs:{\"id\":\"NAVconfig\"}},[_c('app-link',{staticClass:\"dropdown-toggle\",attrs:{\"aria-haspopup\":\"true\",\"data-toggle\":\"dropdown\",\"data-hover\":\"dropdown\"}},[_c('span',{staticClass:\"visible-xs-inline\"},[_vm._v(\"Config\")]),_c('img',{staticClass:\"navbaricon hidden-xs\",attrs:{\"src\":\"images/menu/system18.png\"}}),_vm._v(\" \"),_c('b',{staticClass:\"caret\"})]),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu\"},[_c('li',[_c('app-link',{attrs:{\"href\":\"config/\"}},[_c('i',{staticClass:\"menu-icon-help\"}),_vm._v(\" Help & Info\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/general/\"}},[_c('i',{staticClass:\"menu-icon-config\"}),_vm._v(\" General\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/backuprestore/\"}},[_c('i',{staticClass:\"menu-icon-backup\"}),_vm._v(\" Backup & Restore\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/search/\"}},[_c('i',{staticClass:\"menu-icon-manage-searches\"}),_vm._v(\" Search Settings\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/providers/\"}},[_c('i',{staticClass:\"menu-icon-provider\"}),_vm._v(\" Search Providers\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/subtitles/\"}},[_c('i',{staticClass:\"menu-icon-backlog\"}),_vm._v(\" Subtitles Settings\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/postProcessing/\"}},[_c('i',{staticClass:\"menu-icon-postprocess\"}),_vm._v(\" Post-Processing\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/notifications/\"}},[_c('i',{staticClass:\"menu-icon-notification\"}),_vm._v(\" Notifications\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"config/anime/\"}},[_c('i',{staticClass:\"menu-icon-anime\"}),_vm._v(\" Anime\")])],1)]),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})],1),_vm._v(\" \"),_c('li',{staticClass:\"navbar-split dropdown\",class:{ active: _vm.topMenu === 'system' },attrs:{\"id\":\"NAVsystem\"}},[_c('app-link',{staticClass:\"padding-right-15 dropdown-toggle\",attrs:{\"aria-haspopup\":\"true\",\"data-toggle\":\"dropdown\",\"data-hover\":\"dropdown\"}},[_c('span',{staticClass:\"visible-xs-inline\"},[_vm._v(\"Tools\")]),_c('img',{staticClass:\"navbaricon hidden-xs\",attrs:{\"src\":\"images/menu/system18-2.png\"}}),_vm._v(\" \"),(_vm.toolsBadgeCount > 0)?_c('span',{class:(\"badge\" + _vm.toolsBadgeClass)},[_vm._v(_vm._s(_vm.toolsBadgeCount))]):_vm._e(),_vm._v(\" \"),_c('b',{staticClass:\"caret\"})]),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu\"},[_c('li',[_c('app-link',{attrs:{\"href\":\"news/\"}},[_c('i',{staticClass:\"menu-icon-news\"}),_vm._v(\" News \"),(_vm.system.news.unread > 0)?_c('span',{staticClass:\"badge\"},[_vm._v(_vm._s(_vm.system.news.unread))]):_vm._e()])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"IRC/\"}},[_c('i',{staticClass:\"menu-icon-irc\"}),_vm._v(\" IRC\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"changes/\"}},[_c('i',{staticClass:\"menu-icon-changelog\"}),_vm._v(\" Changelog\")])],1),_vm._v(\" \"),_c('li',{staticClass:\"divider\",attrs:{\"role\":\"separator\"}}),_vm._v(\" \"),(_vm.config.logs.numErrors > 0)?_c('li',[_c('app-link',{attrs:{\"href\":\"errorlogs/\"}},[_c('i',{staticClass:\"menu-icon-error\"}),_vm._v(\" View Errors \"),_c('span',{staticClass:\"badge btn-danger\"},[_vm._v(_vm._s(_vm.config.logs.numErrors))])])],1):_vm._e(),_vm._v(\" \"),(_vm.config.logs.numWarnings > 0)?_c('li',[_c('app-link',{attrs:{\"href\":(\"errorlogs/?level=\" + _vm.warningLevel)}},[_c('i',{staticClass:\"menu-icon-viewlog-errors\"}),_vm._v(\" View Warnings \"),_c('span',{staticClass:\"badge btn-warning\"},[_vm._v(_vm._s(_vm.config.logs.numWarnings))])])],1):_vm._e(),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"errorlogs/viewlog/\"}},[_c('i',{staticClass:\"menu-icon-viewlog\"}),_vm._v(\" View Log\")])],1),_vm._v(\" \"),_c('li',{staticClass:\"divider\",attrs:{\"role\":\"separator\"}}),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":'home/update'},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.checkForupdates($event)}}},[_c('i',{staticClass:\"menu-icon-update\"}),_vm._v(\" Check For Updates\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":'home/restart'}},[_c('i',{staticClass:\"menu-icon-restart\"}),_vm._v(\" Restart\")])],1),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":'home/shutdown'},on:{\"click\":function($event){$event.preventDefault();return _vm.$router.push({ name: 'shutdown' });}}},[_c('i',{staticClass:\"menu-icon-shutdown\"}),_vm._v(\" Shutdown\")])],1),_vm._v(\" \"),(_vm.username)?_c('li',[_c('app-link',{attrs:{\"href\":\"logout\"},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.confirmDialog($event, 'logout')}}},[_c('i',{staticClass:\"menu-icon-shutdown\"}),_vm._v(\" Logout\")])],1):_vm._e(),_vm._v(\" \"),_c('li',{staticClass:\"divider\",attrs:{\"role\":\"separator\"}}),_vm._v(\" \"),_c('li',[_c('app-link',{attrs:{\"href\":\"home/status/\"}},[_c('i',{staticClass:\"menu-icon-info\"}),_vm._v(\" Server Status\")])],1)]),_vm._v(\" \"),_c('div',{staticStyle:{\"clear\":\"both\"}})],1)])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app-header.vue?vue&type=template&id=88648284&\"\nimport script from \"./app-header.vue?vue&type=script&lang=js&\"\nexport * from \"./app-header.vue?vue&type=script&lang=js&\"\nimport style0 from \"./app-header.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sub-menu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sub-menu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sub-menu.vue?vue&type=template&id=ab9bd198&scoped=true&\"\nimport script from \"./sub-menu.vue?vue&type=script&lang=js&\"\nexport * from \"./sub-menu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./sub-menu.vue?vue&type=style&index=0&id=ab9bd198&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ab9bd198\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.subMenu.length > 0)?_c('div',{staticClass:\"row\",attrs:{\"id\":\"sub-menu-wrapper\"}},[_c('div',{staticClass:\"col-md-12 shadow\",attrs:{\"id\":\"sub-menu-container\"}},[_c('div',{staticClass:\"submenu-default hidden-print\",attrs:{\"id\":\"sub-menu\"}},[_vm._l((_vm.subMenu),function(menuItem){return _c('app-link',{key:(\"sub-menu-\" + (menuItem.title)),staticClass:\"btn-medusa top-5 bottom-5\",attrs:{\"href\":menuItem.path},nativeOn:_vm._d({},[_vm.clickEventCond(menuItem),function($event){$event.preventDefault();return _vm.runMethod($event, menuItem)}])},[_c('span',{class:['pull-left', menuItem.icon]}),_vm._v(\" \"+_vm._s(menuItem.title)+\"\\n \")])}),_vm._v(\" \"),(_vm.showForRoutes)?_c('show-selector',{attrs:{\"show-slug\":_vm.$route.query.showslug,\"follow-selection\":\"\"}}):_vm._e()],2)]),_vm._v(\" \"),_c('div',{staticClass:\"btn-group\"})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{ref:\"changeIndexerRow\"},[_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentShow.checked),expression:\"currentShow.checked\"}],attrs:{\"type\":\"checkbox\",\"data-slug\":_vm.show.id.slug},domProps:{\"checked\":Array.isArray(_vm.currentShow.checked)?_vm._i(_vm.currentShow.checked,null)>-1:(_vm.currentShow.checked)},on:{\"change\":function($event){var $$a=_vm.currentShow.checked,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.currentShow, \"checked\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.currentShow, \"checked\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.currentShow, \"checked\", $$c)}}}})]),_vm._v(\" \"),_c('td',[_c('app-link',{attrs:{\"href\":(\"home/displayShow?showslug=\" + (_vm.show.id.slug))}},[_vm._v(_vm._s(_vm.show.name))])],1),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.show.indexer))]),_vm._v(\" \"),_c('td',[_c('select-indexer',_vm._b({on:{\"change\":_vm.selectIndexerChange}},'select-indexer',{show: _vm.show, searchedShow: _vm.searchedShow},false))],1),_vm._v(\" \"),_c('td',{staticClass:\"align-center\"},[(_vm.state)?_c('div',{staticClass:\"step-container\"},[_c('div',{staticClass:\"state\"},[_c('state-switch',{attrs:{\"state\":_vm.state}})],1),_vm._v(\" \"),_c('div',{staticClass:\"stepdisplay\"},[_c('ul',_vm._l((_vm.show.changeStatus.steps),function(step){return _c('li',{key:step},[_vm._v(_vm._s(step))])}),0)])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select-indexer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./select-indexer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./select-indexer.vue?vue&type=template&id=408d8306&scoped=true&\"\nimport script from \"./select-indexer.vue?vue&type=script&lang=js&\"\nexport * from \"./select-indexer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./select-indexer.vue?vue&type=style&index=0&id=408d8306&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"408d8306\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"align-center\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedIndexer),expression:\"selectedIndexer\"}],attrs:{\"name\":\"indexer\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedIndexer=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.$emit('change', _vm.selectedIndexer)}]}},[_c('option',{attrs:{\"disabled\":\"\",\"value\":\"--select--\"}},[_vm._v(\"--select--\")]),_vm._v(\" \"),_vm._l((_vm.externalsOptions),function(option){return _c('option',{key:option.value,domProps:{\"value\":{value: option.value, text: option.text}}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])})],2),_vm._v(\" \"),(_vm.searchedShow && _vm.searchedShow.searched)?_c('div',{staticClass:\"star\",attrs:{\"title\":\"This indexer was manually selected\"}},[_vm._v(\"*\")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./change-indexer-row.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./change-indexer-row.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./change-indexer-row.vue?vue&type=template&id=0c39cdb8&scoped=true&\"\nimport script from \"./change-indexer-row.vue?vue&type=script&lang=js&\"\nexport * from \"./change-indexer-row.vue?vue&type=script&lang=js&\"\nimport style0 from \"./change-indexer-row.vue?vue&type=style&index=0&id=0c39cdb8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c39cdb8\",\n null\n \n)\n\nexport default component.exports","// @TODO: Remove this file before v1.0.0\nimport Vue from 'vue';\nimport AsyncComputed from 'vue-async-computed';\nimport VueMeta from 'vue-meta';\nimport Snotify from 'vue-snotify';\nimport VueCookies from 'vue-cookies';\nimport VModal from 'vue-js-modal';\nimport { VTooltip } from 'v-tooltip';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { faAlignJustify, faImages } from '@fortawesome/free-solid-svg-icons';\nimport { faTimesCircle } from '@fortawesome/free-regular-svg-icons';\n\nlibrary.add([faAlignJustify, faImages, faTimesCircle]);\n\nimport {\n App,\n AddShowOptions,\n AnidbReleaseGroupUi,\n AppFooter,\n AppHeader,\n AppLink,\n Asset,\n Backstretch,\n ConfigTemplate,\n ConfigTextbox,\n ConfigTextboxNumber,\n ConfigToggleSlider,\n FileBrowser,\n LanguageSelect,\n LoadProgressBar,\n PlotInfo,\n QualityChooser,\n QualityPill,\n RootDirs,\n Schedule,\n ScrollButtons,\n SelectList,\n ShowSelector,\n StateSwitch,\n SubMenu\n} from './components';\nimport store from './store';\nimport { isDevelopment } from './utils/core';\n\n/**\n * Register global components and x-template components.\n */\nexport const registerGlobalComponents = () => {\n // Start with the x-template components\n let { components = [] } = window;\n\n // Add global components (in use by `main.mako`)\n // @TODO: These should be registered in an `App.vue` component when possible,\n // along with some of the `main.mako` template\n components = components.concat([\n App,\n AppFooter,\n AppHeader,\n ScrollButtons,\n SubMenu\n ]);\n\n // Add global components (in use by pages/components that are not SFCs yet)\n // Use this when it's not possible to use `components: { ... }` in a component's definition.\n // If a component that uses any of these is a SFC, please use the `components` key when defining it.\n // @TODO: Instead of globally registering these,\n // they should be registered in each component that uses them\n components = components.concat([\n AddShowOptions,\n AnidbReleaseGroupUi,\n AppLink,\n Asset,\n Backstretch,\n ConfigTemplate,\n ConfigTextbox,\n ConfigTextboxNumber,\n ConfigToggleSlider,\n FileBrowser,\n LanguageSelect,\n LoadProgressBar,\n PlotInfo,\n QualityChooser,\n QualityPill, // @FIXME: (sharkykh) Used in a hack/workaround in `static/js/ajax-episode-search.js`\n RootDirs,\n SelectList,\n ShowSelector,\n StateSwitch\n ]);\n\n // Add components for pages that use `pageComponent`\n // @TODO: These need to be converted to Vue SFCs\n components = components.concat([\n Schedule\n ]);\n\n // Register the components globally\n components.forEach(component => {\n if (isDevelopment) {\n console.debug(`Registering ${component.name}`);\n }\n Vue.component(component.name, component);\n });\n};\n\n/**\n * Register plugins.\n */\nexport const registerPlugins = () => {\n Vue.use(AsyncComputed);\n Vue.use(VueMeta);\n Vue.use(Snotify);\n Vue.use(VueCookies);\n Vue.use(VModal, { dynamicDefault: { height: 'auto' } });\n Vue.use(VTooltip);\n\n // Set default cookie expire time\n Vue.$cookies.config('10y');\n};\n\n/**\n * Apply the global Vue shim.\n */\nexport default () => {\n const warningTemplate = (name, state) =>\n `${name} is using the global Vuex '${state}' state, ` +\n `please replace that with a local one using: mapState(['${state}'])`;\n\n Vue.mixin({\n data() {\n // These are only needed for the root Vue\n if (this.$root === this) {\n return {\n globalLoading: true,\n pageComponent: false,\n showsLoading: false\n };\n }\n return {};\n },\n mounted() {\n if (this.$root === this && !window.location.pathname.includes('/login')) {\n const { username } = window;\n Promise.all([\n /* This is used by the `app-header` component\n to only show the logout button if a username is set */\n store.dispatch('login', { username }),\n store.dispatch('getConfig'),\n store.dispatch('getStats')\n ]).then(([_, config]) => {\n this.$root.$emit('loaded');\n // Legacy - send config.general to jQuery (received by index.js)\n const event = new CustomEvent('medusa-config-loaded', { detail: { general: config.main, layout: config.layout } });\n window.dispatchEvent(event);\n }).catch(error => {\n console.debug(error);\n alert('Unable to connect to Medusa!'); // eslint-disable-line no-alert\n });\n }\n\n this.$root.$once('loaded', () => {\n this.$root.globalLoading = false;\n });\n },\n // Make auth and config accessible to all components\n // @TODO: Remove this completely\n computed: {\n // Deprecate the global `Vuex.mapState(['auth', 'config'])`\n auth() {\n if (isDevelopment && !this.__VUE_DEVTOOLS_UID__) {\n console.warn(warningTemplate(this._name, 'auth'));\n }\n return this.$store.state.auth;\n },\n config() {\n if (isDevelopment && !this.__VUE_DEVTOOLS_UID__) {\n console.warn(warningTemplate(this._name, 'config'));\n }\n return this.$store.state.config;\n }\n }\n });\n\n if (isDevelopment) {\n console.debug('Loading local Vue');\n }\n\n registerPlugins();\n\n registerGlobalComponents();\n};\n","/**\n * Vue Cookie handler for the vue-good-tables enable/disable columns feature.\n * @param {String} cookiePrefix String used to specify the specific table.\n * @example - Prefix `Home` with the column Label `title` will result in the cookie key `Home-title`\n * @returns {void}\n */\nexport const manageCookieMixin = cookiePrefix => {\n return {\n methods: {\n getCookie(key) {\n if (key.includes(cookiePrefix)) {\n return JSON.parse(key);\n }\n try {\n return JSON.parse(this.$cookies.get(`${cookiePrefix}-${key}`));\n } catch {\n return null;\n }\n },\n setCookie(key, value) {\n return this.$cookies.set(`${cookiePrefix}-${key}`, JSON.stringify(value));\n },\n /**\n * Save vue-good-table sort field and sort order (desc/asc)\n * @param {*} evt - Vue good table sorting event (triggered by the `on-sort-change` event)\n */\n saveSorting(evt) {\n const { setCookie } = this;\n // Store cookies, for sort field and type (asc/desc)\n setCookie('sort-field', evt.map(item => item.field));\n setCookie('sort-type', evt.map(item => item.type));\n },\n /**\n * Get vue-good-table sort field and sort order.\n * @param {string} defaultField - default vue good table field to sort by.\n * @param {string} defaultType - default vue good table sort order (ascending / descending).\n * @returns {object} - Object with the field and type properties.\n */\n getSortBy(defaultField = 'title', defaultType = 'asc') {\n const { getCookie } = this;\n // Try to get cookies, for sort field and type (asc/desc)\n const sortField = getCookie('sort-field');\n const sortType = getCookie('sort-type');\n const sort = [];\n\n if (Array.isArray(sortField) && sortField.length === 2) {\n sortField.forEach((_, index) => {\n sort.push({ field: sortField[index] || defaultField, type: sortType[index] || defaultType });\n });\n return sort;\n }\n\n if (sortField === null || sortType === null) {\n return ({ field: defaultField, type: defaultType });\n }\n\n return ({ field: sortField[0] || defaultField, type: sortType[0] || defaultType });\n }\n },\n created() {\n // Watch the columns property on the VM. This is the default named property for the vue-good-tables columns.\n this.$watch(() => this.columns, columns => {\n // Monitor the columns, to update the cookies, when changed.\n const { setCookie } = this;\n for (const column of columns) {\n if (column) {\n setCookie(column.label, column.hidden);\n }\n }\n }, { deep: true });\n }\n };\n};\n","import pretty from 'pretty-bytes';\nimport { mapGetters, mapState } from 'vuex';\n\n/**\n * Vue bindings for the simple, small poster and banner layouts.\n * @returns {void}\n */\nexport const showlistTableMixin = {\n data() {\n const { getCookie } = this;\n return {\n columns: [{\n label: 'Next Ep',\n field: 'nextAirDate',\n type: 'date',\n sortable: true,\n dateInputFormat: 'yyyy-MM-dd\\'T\\'HH:mm:ssXXX',\n dateOutputFormat: 'yyyy-MM-dd\\'T\\'HH:mm:ssXXX',\n sortFn: this.sortDateNext,\n hidden: getCookie('Next Ep')\n }, {\n label: 'Prev Ep',\n field: 'prevAirDate',\n type: 'date',\n sortable: true,\n dateInputFormat: 'yyyy-MM-dd\\'T\\'HH:mm:ssXXX',\n dateOutputFormat: 'yyyy-MM-dd\\'T\\'HH:mm:ssXXX',\n sortFn: this.sortDatePrev,\n hidden: getCookie('Prev Ep')\n }, {\n label: 'Show',\n field: 'title',\n filterOptions: {\n enabled: true\n },\n sortFn: this.sortTitle,\n hidden: getCookie('Show')\n }, {\n label: 'Network',\n field: 'network',\n filterOptions: {\n enabled: true\n },\n hidden: getCookie('Network')\n }, {\n label: 'Indexer',\n field: 'indexer',\n filterOptions: {\n enabled: true,\n filterDropdownItems: ['tvdb', 'tvmaze', 'tmdb']\n },\n hidden: getCookie('Indexer')\n }, {\n label: 'Quality',\n field: 'config.qualities',\n filterOptions: {\n enabled: true,\n filterFn: this.qualityColumnFilterFn\n },\n sortable: false,\n hidden: getCookie('Quality')\n }, {\n label: 'Downloads',\n field: 'stats.tooltip.percentage',\n sortFn: this.sortDownloads,\n type: 'boolean',\n hidden: getCookie('Downloads')\n }, {\n label: 'Size',\n type: 'number',\n field: 'stats.episodes.size',\n hidden: getCookie('Size')\n }, {\n label: 'Active',\n field: this.fealdFnActive,\n filterOptions: {\n enabled: true,\n filterDropdownItems: [\n { value: true, text: 'yes' },\n { value: false, text: 'no' }\n ]\n },\n type: 'boolean',\n hidden: getCookie('Active')\n }, {\n label: 'Status',\n field: 'status',\n filterOptions: {\n enabled: true\n },\n hidden: getCookie('Status')\n }, {\n label: 'Xem',\n field: this.fealdFnXem,\n filterOptions: {\n enabled: true,\n filterDropdownItems: [\n { value: true, text: 'yes' },\n { value: false, text: 'no' }\n ]\n },\n type: 'boolean',\n hidden: getCookie('Xem')\n }]\n };\n },\n computed: {\n ...mapState({\n config: state => state.config.general,\n indexerConfig: state => state.config.indexers.indexers,\n stateLayout: state => state.config.layout,\n qualityValues: state => state.config.consts.qualities.values\n }),\n ...mapGetters({\n fuzzyParseDateTime: 'fuzzyParseDateTime',\n showsInLists: 'showsInLists'\n }),\n maxNextAirDate() {\n const { shows } = this;\n return Math.max(...shows.filter(show => show.nextAirDate).map(show => Date.parse(show.nextAirDate)));\n }\n },\n methods: {\n prettyBytes: bytes => pretty(bytes),\n showIndexerUrl(show) {\n const { indexerConfig } = this;\n if (!show.indexer) {\n return;\n }\n\n const id = show.id[show.indexer];\n const indexerUrl = indexerConfig[show.indexer].showUrl;\n\n return `${indexerUrl}${id}`;\n },\n parsePrevDateFn(row) {\n const { fuzzyParseDateTime } = this;\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 parseNextDateFn(row) {\n const { fuzzyParseDateTime } = this;\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 fealdFnXem(row) {\n return row.xemNumbering && row.xemNumbering.length !== 0;\n },\n fealdFnActive(row) {\n return row.config && !row.config.paused && row.status === 'Continuing';\n },\n sortDateNext(x, y) {\n const { maxNextAirDate } = this;\n\n if (x === null && y === null) {\n return 0;\n }\n\n if (x === null || y === null) {\n return x === null ? 1 : -1;\n }\n\n // Convert to timestamps\n x = Date.parse(x);\n y = Date.parse(y);\n\n // This next airdate lies in the past. We need to correct this.\n if (x < Date.now()) {\n x += maxNextAirDate;\n }\n\n if (y < Date.now()) {\n y += maxNextAirDate;\n }\n\n return (x < y ? -1 : (x > y ? 1 : 0));\n },\n sortDatePrev(x, y) {\n if (x === null && y === null) {\n return 0;\n }\n\n // Standardize dates and nulls\n x = x ? Date.parse(x) : 0;\n y = y ? Date.parse(y) : 0;\n\n if (x === null || y === null) {\n return x === null ? -1 : 1;\n }\n\n const xTsDiff = x - Date.now();\n const yTsDiff = y - Date.now();\n\n return xTsDiff < yTsDiff ? -1 : (xTsDiff > yTsDiff ? 1 : 0);\n },\n sortTitle(x, y) {\n const { stateLayout } = this;\n const { sortArticle } = stateLayout;\n\n let titleX = x;\n let titleY = y;\n\n if (!sortArticle) {\n titleX = titleX.replace(/^((?:a(?!\\s+to)n?)|the)\\s/i, '').toLowerCase();\n titleY = titleY.replace(/^((?:a(?!\\s+to)n?)|the)\\s/i, '').toLowerCase();\n }\n\n return (titleX < titleY ? -1 : (titleX > titleY ? 1 : 0));\n },\n sortDownloads(x, y, _, rowX, rowY) {\n if ((x === 0 || x === 100) && x === y) {\n return rowX.stats.episodes.total < rowY.stats.episodes.total ? -1 : (rowX.stats.episodes.total < rowY.stats.episodes.total ? 1 : 0);\n }\n\n return x < y ? -1 : (x > y ? 1 : 0);\n },\n qualityColumnFilterFn(data, filterString) {\n const { qualityValues } = this;\n return [...data.allowed, ...data.preferred].map(q => qualityValues.find(qv => qv.value === q).name.includes(filterString)).some(isTrue => isTrue);\n }\n }\n};\n","/** @type {import('.').SubMenu} */\nexport const configSubMenu = [\n { title: 'General', path: 'config/general/', icon: 'menu-icon-config' },\n { title: 'Backup/Restore', path: 'config/backuprestore/', icon: 'menu-icon-backup' },\n { title: 'Search Settings', path: 'config/search/', icon: 'menu-icon-manage-searches' },\n { title: 'Search Providers', path: 'config/providers/', icon: 'menu-icon-provider' },\n { title: 'Subtitles Settings', path: 'config/subtitles/', icon: 'menu-icon-backlog' },\n { title: 'Post-Processing', path: 'config/postProcessing/', icon: 'menu-icon-postprocess' },\n { title: 'Notifications', path: 'config/notifications/', icon: 'menu-icon-notification' },\n { title: 'Anime', path: 'config/anime/', icon: 'menu-icon-anime' }\n];\n\n// eslint-disable-next-line valid-jsdoc\n/** @type {import('.').SubMenuFunction} */\nexport const errorlogsSubMenu = vm => {\n const { $route, $store } = vm;\n const level = $route.params.level || $route.query.level;\n const { config } = $store.state;\n const { loggingLevels, numErrors, numWarnings } = config.general.logs;\n if (Object.keys(loggingLevels).length === 0) {\n return [];\n }\n\n const isLevelError = (level === undefined || Number(level) === loggingLevels.error);\n\n return [\n {\n title: 'Clear Errors',\n path: 'errorlogs/clearerrors/',\n requires: numErrors >= 1 && isLevelError,\n icon: 'ui-icon ui-icon-trash'\n },\n {\n title: 'Clear Warnings',\n path: `errorlogs/clearerrors/?level=${loggingLevels.warning}`,\n requires: numWarnings >= 1 && Number(level) === loggingLevels.warning,\n icon: 'ui-icon ui-icon-trash'\n },\n {\n title: 'Submit Errors',\n path: 'errorlogs/submit_errors/',\n requires: numErrors >= 1 && isLevelError,\n confirm: 'submiterrors',\n icon: 'ui-icon ui-icon-arrowreturnthick-1-n'\n }\n ];\n};\n\n/** @type {import('.').SubMenu} */\nexport const historySubMenu = [\n { title: 'Clear History', path: 'history/clearHistory', icon: 'ui-icon ui-icon-trash', confirm: 'clearhistory' },\n { title: 'Trim History', path: 'history/trimHistory', icon: 'menu-icon-cut', confirm: 'trimhistory' }\n];\n\n// eslint-disable-next-line valid-jsdoc\n/** @type {import('.').SubMenuFunction} */\nexport const showSubMenu = vm => {\n const { $route, $store } = vm;\n const { config } = $store.state;\n const { notifiers } = config;\n\n const showSlug = $route.params.showSlug || $route.query.showslug;\n\n const show = $store.getters.getCurrentShow;\n const { showQueueStatus } = show;\n\n const queuedActionStatus = action => {\n if (!showQueueStatus) {\n return false;\n }\n return Boolean(showQueueStatus.find(status => status.action === action && status.active === true));\n };\n\n const isBeingAdded = queuedActionStatus('isBeingAdded');\n const isBeingUpdated = queuedActionStatus('isBeingUpdated');\n const isBeingSubtitled = queuedActionStatus('isBeingSubtitled');\n\n /** @type {import('.').SubMenu} */\n let menu = [{\n title: 'Edit',\n path: `home/editShow?showslug=${showSlug}`,\n icon: 'ui-icon ui-icon-pencil'\n }];\n if (!isBeingAdded && !isBeingUpdated) {\n menu = menu.concat([\n {\n title: show.config.paused ? 'Resume' : 'Pause',\n path: `home/togglePause?showslug=${showSlug}`,\n icon: `ui-icon ui-icon-${show.config.paused ? 'play' : 'pause'}`\n },\n {\n title: 'Remove',\n path: `home/deleteShow?showslug=${showSlug}`,\n confirm: 'removeshow',\n icon: 'ui-icon ui-icon-trash'\n },\n {\n title: 'Re-scan files',\n path: `home/refreshShow?showslug=${showSlug}`,\n icon: 'ui-icon ui-icon-refresh'\n },\n {\n title: 'Force Full Update',\n path: `home/updateShow?showslug=${showSlug}`,\n icon: 'ui-icon ui-icon-transfer-e-w'\n },\n {\n title: 'Update show in KODI',\n path: `home/updateKODI?showslug=${showSlug}`,\n method: 'updatekodi',\n requires: notifiers.kodi.enabled && notifiers.kodi.update.library,\n icon: 'menu-icon-kodi'\n },\n {\n title: 'Update show in Emby',\n path: `home/updateEMBY?showslug=${showSlug}`,\n requires: notifiers.emby.enabled,\n icon: 'menu-icon-emby'\n },\n {\n title: 'Preview Rename',\n path: `home/testRename?showslug=${showSlug}`,\n icon: 'ui-icon ui-icon-tag'\n },\n {\n title: 'Download Subtitles',\n path: `home/subtitleShow?showslug=${showSlug}`,\n requires: config.subtitles.enabled && !isBeingSubtitled && show.config.subtitlesEnabled,\n icon: 'menu-icon-backlog'\n }\n ]);\n }\n return menu;\n};\n","import {\n configSubMenu,\n errorlogsSubMenu,\n historySubMenu,\n showSubMenu\n} from './sub-menus';\n\n/** @type {import('.').Route[]} */\nconst homeRoutes = [\n {\n path: '/home',\n name: 'home',\n meta: {\n title: 'Home',\n topMenu: 'home',\n converted: true\n },\n component: () => import('../components/home.vue')\n },\n {\n path: '/home/editShow',\n name: 'editShow',\n meta: {\n topMenu: 'home',\n subMenu: showSubMenu,\n converted: true,\n nocache: true // Use this flag, to have the router-view use :key=\"$route.fullPath\"\n },\n component: () => import('../components/edit-show.vue')\n },\n {\n path: '/home/displayShow',\n name: 'show',\n meta: {\n topMenu: 'home',\n subMenu: showSubMenu,\n converted: true,\n nocache: true // Use this flag, to have the router-view use :key=\"$route.fullPath\"\n },\n component: () => import('../components/display-show.vue')\n },\n {\n path: '/home/snatchSelection',\n name: 'snatchSelection',\n meta: {\n topMenu: 'home',\n subMenu: showSubMenu,\n converted: true,\n nocache: true // Use this flag, to have the router-view use :key=\"$route.fullPath\"\n },\n component: () => import('../components/snatch-selection.vue')\n },\n {\n path: '/home/testRename',\n name: 'testRename',\n meta: {\n topMenu: 'home',\n subMenu: showSubMenu,\n title: 'Preview Rename',\n header: 'Preview Rename',\n converted: true\n },\n component: () => import('../components/test-rename.vue')\n },\n {\n path: '/home/postprocess',\n name: 'postprocess',\n meta: {\n title: 'Manual Post-Processing',\n header: 'Manual Post-Processing',\n topMenu: 'home',\n converted: true\n },\n component: () => import('../components/manual-post-process.vue')\n },\n {\n path: '/home/status',\n name: 'status',\n meta: {\n title: 'Status',\n topMenu: 'system',\n converted: true\n },\n component: () => import('../components/status.vue')\n },\n {\n path: '/home/restart',\n name: 'restart',\n meta: {\n title: 'Restarting...',\n header: 'Performing Restart',\n topMenu: 'system',\n converted: true\n },\n component: () => import('../components/restart.vue')\n },\n {\n path: '/home/shutdown',\n name: 'shutdown',\n meta: {\n header: 'Shutting down',\n topMenu: 'system',\n converted: true\n },\n component: () => import('../components/restart.vue'),\n props: { shutdown: true }\n },\n {\n path: '/home/update',\n name: 'update',\n meta: {\n header: 'Update Medusa',\n topMenu: 'system',\n converted: true\n },\n component: () => import('../components/update.vue')\n }\n];\n\n/** @type {import('.').Route[]} */\nconst configRoutes = [\n {\n path: '/config',\n name: 'config',\n meta: {\n title: 'Help & Info',\n header: 'Medusa Configuration',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config.vue')\n },\n {\n path: '/config/anime',\n name: 'configAnime',\n meta: {\n title: 'Config - Anime',\n header: 'Anime',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-anime.vue')\n },\n {\n path: '/config/backuprestore',\n name: 'configBackupRestore',\n meta: {\n title: 'Config - Backup/Restore',\n header: 'Backup/Restore',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-backup-restore.vue')\n },\n {\n path: '/config/general',\n name: 'configGeneral',\n meta: {\n title: 'Config - General',\n header: 'General Configuration',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-general.vue')\n },\n {\n path: '/config/notifications',\n name: 'configNotifications',\n meta: {\n title: 'Config - Notifications',\n header: 'Notifications',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-notifications.vue')\n },\n {\n path: '/config/postProcessing',\n name: 'configPostProcessing',\n meta: {\n title: 'Config - Post-Processing',\n header: 'Post-Processing',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-post-processing.vue')\n },\n {\n path: '/config/providers',\n name: 'configSearchProviders',\n meta: {\n title: 'Config - Providers',\n header: 'Search Providers',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-providers.vue')\n },\n {\n path: '/config/search',\n name: 'configSearchSettings',\n meta: {\n title: 'Config - Episode Search',\n header: 'Search Settings',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-search.vue')\n },\n {\n path: '/config/subtitles',\n name: 'configSubtitles',\n meta: {\n title: 'Config - Subtitles',\n header: 'Subtitles',\n topMenu: 'config',\n subMenu: configSubMenu,\n converted: true\n },\n component: () => import('../components/config-subtitles.vue')\n }\n];\n\n/** @type {import('.').Route[]} */\nconst addShowRoutes = [\n {\n path: '/addShows',\n name: 'addShows',\n meta: {\n title: 'Add Shows',\n header: 'Add Shows',\n topMenu: 'home',\n converted: true\n },\n component: () => import('../components/add-shows.vue')\n },\n {\n path: '/addShows/existingShows',\n name: 'addExistingShows',\n meta: {\n title: 'Add Existing Shows',\n header: 'Add Existing Shows',\n topMenu: 'home',\n converted: true\n },\n component: () => import('../components/new-shows-existing.vue')\n },\n {\n path: '/addShows/newShow',\n name: 'addNewShow',\n meta: {\n title: 'Add New Show',\n header: 'Add New Show',\n topMenu: 'home',\n converted: true\n },\n props: route => ({ ...route.params }),\n component: () => import('../components/new-show.vue')\n }\n];\n\n/** @type {import('.').Route} */\nconst loginRoute = {\n path: '/login',\n name: 'login',\n meta: {\n title: 'Login'\n },\n component: () => import('../components/login.vue')\n};\n\n/** @type {import('.').Route} */\nconst addRecommendedRoute = {\n path: '/addRecommended',\n name: 'addRecommended',\n meta: {\n title: 'Add Recommended Shows',\n header: 'Add Recommended Shows',\n topMenu: 'home',\n converted: true\n },\n component: () => import('../components/recommended.vue')\n};\n\n/** @type {import('.').Route} */\nconst scheduleRoute = {\n path: '/schedule',\n name: 'schedule',\n meta: {\n title: 'Schedule',\n header: 'Schedule',\n topMenu: 'schedule',\n converted: true\n },\n component: () => import('../components/schedule.vue')\n};\n\n/** @type {import('.').Route} */\nconst historyRoute = {\n path: '/history',\n name: 'history',\n meta: {\n title: 'History',\n header: 'History',\n topMenu: 'history',\n subMenu: historySubMenu,\n converted: true\n },\n component: () => import('../components/history.vue')\n};\n\n/** @type {import('.').Route} */\nconst downloadsRoute = {\n path: '/downloads',\n name: 'downloads',\n meta: {\n title: 'Downloads',\n header: 'Downloads',\n converted: true\n },\n component: () => import('../components/current-downloads.vue')\n};\n\n/** @type {import('.').Route[]} */\nconst manageRoutes = [\n {\n path: '/manage',\n name: 'manage',\n meta: {\n title: 'Mass Update',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/manage-mass-update.vue'),\n props: true\n },\n {\n path: '/manage/changeIndexer',\n name: 'manageChangeIndexer',\n meta: {\n title: 'Change show indexer',\n header: 'Change show indexer',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/change-indexer.vue')\n },\n {\n path: '/manage/backlogOverview',\n name: 'manageBacklogOverview',\n meta: {\n title: 'Backlog Overview',\n header: 'Backlog Overview',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/manage-backlog.vue')\n },\n {\n path: '/manage/episodeStatuses',\n name: 'manageEpisodeOverview',\n meta: {\n title: 'Episode Overview',\n header: 'Episode Overview',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/manage-episode-status.vue')\n },\n {\n path: '/manage/failedDownloads',\n name: 'manageFailedDownloads',\n meta: {\n title: 'Failed Downloads',\n header: 'Failed Downloads',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/manage-failed-downloads.vue')\n },\n {\n path: '/manage/manageSearches',\n name: 'manageManageSearches',\n meta: {\n title: 'Manage Searches',\n header: 'Manage Searches',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/manage-searches.vue')\n },\n {\n path: '/manage/massEdit',\n name: 'manageMassEdit',\n meta: {\n title: 'Mass Edit',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/manage-mass-edit.vue'),\n props: true\n },\n {\n path: '/manage/subtitleMissed',\n name: 'manageSubtitleMissed',\n meta: {\n title: 'Missing Subtitles',\n header: 'Missing Subtitles',\n topMenu: 'manage',\n converted: true\n },\n component: () => import('../components/manage-missing-subtitles.vue')\n }\n];\n\n/** @type {import('.').Route[]} */\nconst errorLogsRoutes = [\n {\n path: '/errorlogs',\n name: 'errorlogs',\n meta: {\n title: 'Logs & Errors',\n topMenu: 'system',\n subMenu: errorlogsSubMenu,\n converted: true\n },\n component: () => import('../components/log-reporter.vue'),\n props: true\n },\n {\n path: '/errorlogs/viewlog',\n name: 'viewlog',\n meta: {\n title: 'Logs',\n header: 'Log File',\n topMenu: 'system',\n converted: true\n },\n component: () => import('../components/logs.vue')\n }\n];\n\n/** @type {import('.').Route} */\nconst newsRoute = {\n path: '/news',\n name: 'news',\n meta: {\n title: 'News',\n header: 'News',\n topMenu: 'system'\n }\n};\n\n/** @type {import('.').Route} */\nconst changesRoute = {\n path: '/changes',\n name: 'changes',\n meta: {\n title: 'Changelog',\n header: 'Changelog',\n topMenu: 'system'\n }\n};\n\n/** @type {import('.').Route} */\nconst ircRoute = {\n path: '/IRC',\n name: 'IRC',\n meta: {\n title: 'IRC',\n topMenu: 'system',\n converted: true\n },\n component: () => import('../components/irc.vue')\n};\n\n/** @type {import('.').Route} */\nconst notFoundRoute = {\n path: '/not-found',\n name: 'not-found',\n meta: {\n title: '404',\n header: '404 - page not found'\n },\n component: () => import('../components/http/404.vue')\n};\n\n// @NOTE: Redirect can only be added once all routes are vue\n/*\n/** @type {import('.').Route} *-/\nconst notFoundRedirect = {\n path: '*',\n redirect: '/not-found'\n};\n*/\n\n/** @type {import('.').Route[]} */\nexport default [\n ...homeRoutes,\n ...configRoutes,\n ...addShowRoutes,\n loginRoute,\n addRecommendedRoute,\n scheduleRoute,\n historyRoute,\n downloadsRoute,\n ...manageRoutes,\n ...errorLogsRoutes,\n newsRoute,\n changesRoute,\n ircRoute,\n notFoundRoute\n];\n","import Vue from 'vue';\nimport VueRouter from 'vue-router';\n\nimport routes from './routes';\n\nVue.use(VueRouter);\n\nexport const base = document.body.getAttribute('web-root') + '/';\n\nconst router = new VueRouter({\n base,\n mode: 'history',\n routes\n});\n\nrouter.beforeEach((to, from, next) => {\n const { meta } = to;\n const { title } = meta;\n\n // If there's no title then it's not a .vue route\n // or it's handling its own title\n if (title) {\n document.title = `${title} | Medusa`;\n }\n\n // Always call next otherwise the will be empty\n next();\n});\n\nexport default router;\n","import {\n LOGIN_PENDING,\n LOGIN_SUCCESS,\n LOGIN_FAILED,\n LOGOUT,\n REFRESH_TOKEN,\n REMOVE_AUTH_ERROR\n} from '../mutation-types';\n\nconst state = {\n isAuthenticated: false,\n user: {},\n tokens: {\n access: null,\n refresh: null\n },\n error: null\n};\n\nconst mutations = {\n [LOGIN_PENDING]() { },\n [LOGIN_SUCCESS](state, user) {\n state.user = user;\n state.isAuthenticated = true;\n state.error = null;\n },\n [LOGIN_FAILED](state, { error }) {\n state.user = {};\n state.isAuthenticated = false;\n state.error = error;\n },\n [LOGOUT](state) {\n state.user = {};\n state.isAuthenticated = false;\n state.error = null;\n },\n [REFRESH_TOKEN]() {},\n [REMOVE_AUTH_ERROR]() {}\n};\n\nconst getters = {};\n\nconst actions = {\n login(context, credentials) {\n const { commit } = context;\n commit(LOGIN_PENDING);\n\n // @TODO: Add real JWT login\n const apiLogin = credentials => Promise.resolve(credentials);\n\n return apiLogin(credentials).then(user => {\n commit(LOGIN_SUCCESS, user);\n return { success: true };\n }).catch(error => {\n commit(LOGIN_FAILED, { error, credentials });\n return { success: false, error };\n });\n },\n logout(context) {\n const { commit } = context;\n commit(LOGOUT);\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","const state = {\n show: {\n airs: null,\n airsFormatValid: null,\n akas: null,\n cache: null,\n classification: null,\n seasonCount: [],\n config: {\n airByDate: null,\n aliases: [],\n anime: null,\n defaultEpisodeStatus: null,\n dvdOrder: null,\n location: null,\n locationValid: null,\n paused: null,\n qualities: {\n allowed: [],\n preferred: []\n },\n release: {\n requiredWords: [],\n ignoredWords: [],\n blacklist: [],\n whitelist: [],\n requiredWordsExclude: null,\n ignoredWordsExclude: null\n },\n scene: null,\n seasonFolders: null,\n sports: null,\n subtitlesEnabled: null,\n airdateOffset: null,\n templates: null,\n searchTemplates: []\n },\n countries: null,\n genres: [],\n id: {\n tvdb: null,\n trakt: null,\n imdb: null,\n slug: null\n },\n indexer: null,\n imdbInfo: {\n akas: null,\n certificates: null,\n countries: null,\n countryCodes: null,\n genres: null,\n imdbId: null,\n imdbInfoId: null,\n indexer: null,\n indexerId: null,\n lastUpdate: null,\n plot: null,\n rating: null,\n runtimes: null,\n title: null,\n votes: null\n },\n language: null,\n network: null,\n nextAirDate: null,\n plot: null,\n rating: {\n imdb: {\n rating: null,\n votes: null\n }\n },\n runtime: null,\n showType: null,\n status: null,\n title: null,\n type: null,\n year: {},\n size: null,\n\n // ===========================\n // Detailed (`?detailed=true`)\n // ===========================\n\n showQueueStatus: [],\n xemNumbering: [],\n sceneAbsoluteNumbering: [],\n xemAbsoluteNumbering: [],\n sceneNumbering: [],\n\n // ===========================\n // Episodes (`?episodes=true`)\n // ===========================\n\n // Seasons array is added to the show object under this query,\n // but we currently check to see if this property is defined before fetching the show with `?episodes=true`.\n seasons: [],\n episodeCount: null\n },\n provider: {\n id: null,\n name: null,\n config: {},\n cache: []\n }\n};\n\nconst mutations = {};\n\nconst getters = {};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import Vue from 'vue';\n\nimport { api } from '../../api';\nimport { ADD_HISTORY, ADD_HISTORY_ROW, ADD_SHOW_HISTORY, ADD_SHOW_EPISODE_HISTORY } from '../mutation-types';\nimport { episodeToSlug } from '../../utils/core';\n\nconst state = {\n remote: {\n rows: [],\n totalRows: 0,\n page: 1,\n perPage: 25,\n sort: [{\n field: 'date',\n type: 'desc'\n }],\n filter: null\n },\n remoteCompact: {\n rows: [],\n totalRows: 0,\n page: 1,\n perPage: 25,\n sort: [{\n field: 'date',\n type: 'desc'\n }],\n filter: null\n },\n episodeHistory: {},\n historyLast: null,\n historyLastCompact: null,\n loading: false\n};\n\nconst mutations = {\n [ADD_HISTORY_ROW](state, { history, compact }) {\n // Only evaluate compact once.\n const historyKey = compact ? 'remoteCompact' : 'remote';\n\n // Update state, add one item at the top.\n state[historyKey].rows.unshift(history);\n },\n [ADD_HISTORY](state, { history, compact }) {\n // Only evaluate compact once.\n const historyKey = compact ? 'remoteCompact' : 'remote';\n\n // Update state\n Vue.set(state[historyKey], 'rows', history);\n },\n [ADD_SHOW_HISTORY](state, { showSlug, history }) {\n // Add history data to episodeHistory, but without passing the show slug.\n for (const row of history) {\n if (!Object.keys(state.episodeHistory).includes(showSlug)) {\n Vue.set(state.episodeHistory, showSlug, {});\n }\n\n const episodeSlug = episodeToSlug(row.season, row.episode);\n if (!state.episodeHistory[showSlug][episodeSlug]) {\n state.episodeHistory[showSlug][episodeSlug] = [];\n }\n\n state.episodeHistory[showSlug][episodeSlug].push(row);\n }\n },\n [ADD_SHOW_EPISODE_HISTORY](state, { showSlug, episodeSlug, history }) {\n // Keep an object of shows, with their history per episode\n // Example: {tvdb1234: {s01e01: [history]}}\n\n if (!Object.keys(state.episodeHistory).includes(showSlug)) {\n Vue.set(state.episodeHistory, showSlug, {});\n }\n\n Vue.set(state.episodeHistory[showSlug], episodeSlug, history);\n },\n setLoading(state, value) {\n state.loading = value;\n },\n setRemoteTotal(state, { total, compact = false }) {\n state[compact ? 'remoteCompact' : 'remote'].totalRows = total;\n }\n};\n\nconst getters = {\n getShowHistoryBySlug: state => showSlug => state.showHistory[showSlug],\n getLastReleaseName: state => ({ showSlug, episodeSlug }) => {\n if (state.episodeHistory[showSlug] !== undefined) {\n if (state.episodeHistory[showSlug][episodeSlug] !== undefined) {\n if (state.episodeHistory[showSlug][episodeSlug].length === 1) {\n return state.episodeHistory[showSlug][episodeSlug][0].resource;\n }\n const filteredHistory = state.episodeHistory[showSlug][episodeSlug]\n .sort((a, b) => (a.actionDate - b.actionDate) * -1)\n .filter(ep => ['Snatched', 'Downloaded'].includes(ep.statusName) && ep.resource !== '');\n if (filteredHistory.length > 0) {\n return filteredHistory[0].resource;\n }\n }\n }\n },\n getEpisodeHistory: state => ({ showSlug, episodeSlug }) => {\n if (state.episodeHistory[showSlug] === undefined) {\n return [];\n }\n\n return state.episodeHistory[showSlug][episodeSlug] || [];\n },\n getSeasonHistory: state => ({ showSlug, season }) => {\n if (state.episodeHistory[showSlug] === undefined) {\n return [];\n }\n\n return Object.values(state.episodeHistory[showSlug]).flat().filter(row => row.season === season) || [];\n }\n};\n\n/**\n * An object representing request parameters for getting a show from the API.\n *\n * @typedef {object} ShowGetParameters\n * @property {boolean} detailed Fetch detailed information? (e.g. scene/xem numbering)\n * @property {boolean} episodes Fetch seasons & episodes?\n */\n\nconst actions = {\n /**\n * Get show history from API and commit it to the store.\n *\n * @param {*} context The store context.\n * @param {ShowIdentifier&ShowGetParameters} parameters Request parameters.\n * @returns {Promise} The API response.\n */\n async getShowHistory(context, { slug }) {\n const { commit } = context;\n\n const response = await api.get(`/history/${slug}`);\n if (response.data.length > 0) {\n commit(ADD_SHOW_HISTORY, { showSlug: slug, history: response.data });\n }\n },\n /**\n * Get detailed history from API and commit them to the store.\n *\n * @param {*} context - The store context.\n * @param {object} args - arguments.\n */\n async getHistory(context, args) {\n const { commit } = context;\n let url = '/history';\n const page = args?.page || 1;\n const limit = args?.perPage || 1000;\n let sort = args?.sort || [{ field: 'date', type: 'desc' }];\n const filter = args?.filter || {};\n const showSlug = args?.showSlug;\n const compact = args?.compact;\n\n const params = {\n page,\n limit\n };\n\n if (sort) {\n if (!Array.isArray(sort)) {\n sort = [sort];\n }\n params.sort = sort;\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n if (showSlug) {\n url = `${url}/${showSlug}`;\n }\n\n if (compact) {\n params.compact = true;\n }\n\n commit('setLoading', true);\n let response = null;\n try {\n response = await api.get(url, { params }); // eslint-disable-line no-await-in-loop\n if (response) {\n commit('setRemoteTotal', { total: Number(response.headers['x-pagination-count']), compact });\n if (showSlug) {\n commit(ADD_SHOW_HISTORY, { showSlug, history: response.data, compact });\n } else {\n commit(ADD_HISTORY, { history: response.data, compact });\n }\n }\n } catch (error) {\n if (error.response && error.response.status === 404) {\n console.debug(`No history available${showSlug ? ' for show ' + showSlug : ''}`);\n }\n }\n\n commit('setLoading', false);\n },\n /**\n * Get episode history from API and commit it to the store.\n *\n * @param {*} context The store context.\n * @param {ShowIdentifier&ShowGetParameters} parameters Request parameters.\n * @returns {Promise} The API response.\n */\n getShowEpisodeHistory(context, { showSlug, episodeSlug }) {\n return new Promise(resolve => {\n const { commit } = context;\n\n api.get(`/history/${showSlug}/episode/${episodeSlug}`)\n .then(response => {\n if (response.data.length > 0) {\n commit(ADD_SHOW_EPISODE_HISTORY, { showSlug, episodeSlug, history: response.data });\n }\n resolve();\n })\n .catch(() => {\n console.warn(`No episode history found for show ${showSlug} and episode ${episodeSlug}`);\n });\n });\n },\n updateHistory({ rootState, commit }, data) {\n // Update store's search queue item. (provided through websocket)\n const compact = rootState.config.layout.history === 'compact';\n // We can't live update the compact layout, as it requires to aggregate the data.\n if (compact) {\n return;\n }\n commit(ADD_HISTORY_ROW, { history: data });\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { NOTIFICATIONS_ENABLED, NOTIFICATIONS_DISABLED } from '../mutation-types';\n\nconst state = {\n enabled: true\n};\n\nconst mutations = {\n [NOTIFICATIONS_ENABLED](state) {\n state.enabled = true;\n },\n [NOTIFICATIONS_DISABLED](state) {\n state.enabled = false;\n }\n};\n\nconst getters = {};\n\nconst actions = {\n enable(context) {\n const { commit } = context;\n commit(NOTIFICATIONS_ENABLED);\n },\n disable(context) {\n const { commit } = context;\n commit(NOTIFICATIONS_DISABLED);\n },\n test() {\n return window.displayNotification('error', 'test', 'test
    hello world
    • item 1
    • item 2
    ', 'notification-test');\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import Vue from 'vue';\n\nimport { api } from '../../api';\nimport {\n ADD_PROVIDER,\n ADD_PROVIDERS,\n ADD_PROVIDER_CACHE,\n ADD_SEARCH_RESULTS,\n REMOVE_PROVIDER\n} from '../mutation-types';\n\nconst state = {\n providers: []\n};\n\nconst mutations = {\n [ADD_PROVIDER](state, provider) {\n if (!state.providers.find(p => p.id === provider.id)) {\n state.providers.push(provider);\n }\n },\n [ADD_PROVIDERS](state, providers) {\n providers.forEach(provider => {\n const existingProvider = state.providers.find(p => p.id === provider.id);\n if (existingProvider) {\n Vue.set(state.providers, state.providers.indexOf(existingProvider), provider);\n } else {\n state.providers.push(provider);\n }\n });\n },\n [REMOVE_PROVIDER](state, providerId) {\n state.providers = state.providers.filter(prov => prov.id !== providerId);\n },\n [ADD_PROVIDER_CACHE](state, { providerId, cache }) {\n // Check if this provider has already been added.\n let currentProvider = state.providers.find(prov => prov.id === providerId);\n if (!currentProvider) {\n currentProvider = {\n name: '',\n config: {}\n };\n state.providers.push(currentProvider);\n }\n\n if (currentProvider.cache === undefined) {\n Vue.set(currentProvider, 'cache', []);\n }\n\n const newCache = [];\n\n for (const result of cache) {\n const existingIdentifier = currentProvider.cache.find(item => item.identifier === result.identifier);\n if (existingIdentifier) {\n newCache.push({ ...existingIdentifier, ...result });\n } else {\n newCache.push(result);\n }\n }\n\n Vue.set(currentProvider, 'cache', newCache);\n },\n /**\n * Add search results which have been retreived through the webSocket.\n * @param {*} state - Vue state\n * @param {Array} searchResults - One or more search results.\n */\n [ADD_SEARCH_RESULTS](state, searchResults) {\n for (const searchResult of searchResults) {\n let currentProvider = state.providers.find(prov => prov.id === searchResult.provider.id);\n\n if (!currentProvider) {\n currentProvider = {\n name: '',\n config: {},\n cache: []\n };\n }\n\n const { cache } = currentProvider;\n\n // Check if we don't allready have this result in our store.\n // In that case, we update the existing object.\n const existingSearchResult = (cache || []).find(result => result.identifier === searchResult.identifier);\n if (existingSearchResult) {\n // Because this is an existing result, whe're not overwriting dateAdded field.\n const { dateAdded, ...rest } = searchResult;\n Vue.set(currentProvider.cache, cache.indexOf(existingSearchResult), { ...existingSearchResult, ...rest });\n } else {\n Vue.set(currentProvider, 'cache', [...cache || [], ...[searchResult]]);\n }\n }\n }\n};\n\nconst getters = {\n providerNameToId: _ => providerName => providerName.replace(/[^\\d\\w_]/gi, '_').toLowerCase().trim() // eslint-disable-line unicorn/better-regex\n};\n\n/**\n * An object representing request parameters for getting a show from the API.\n *\n * @typedef {object} ShowGetParameters\n * @property {boolean} detailed Fetch detailed information? (e.g. scene/xem numbering)\n * @property {boolean} episodes Fetch seasons & episodes?\n */\n\nconst actions = {\n /**\n * Get providers.\n *\n * @param {*} context The store context.\n * @returns {Promise} The API response.\n */\n getProviders(context) {\n return new Promise((resolve, reject) => {\n const { commit } = context;\n api.get('/providers')\n .then(response => {\n commit(ADD_PROVIDERS, response.data);\n resolve();\n })\n .catch(error => {\n console.error(`Could not get providers with error: ${error}`);\n reject();\n });\n });\n },\n /**\n * Get provider cache results for enabled providers.\n *\n * @param {*} context The store context.\n * @param {String} The provider id.\n * @returns {void}.\n */\n async getProviderCacheResults(context, { showSlug, season, episode }) {\n const { commit, state } = context;\n const limit = 1000;\n const params = { limit, showslug: showSlug, season };\n if (episode) {\n params.episode = episode;\n }\n\n const getProviderResults = async provider => {\n let page = 0;\n let lastPage = false;\n const results = [];\n\n const currentProvider = state.providers.find(prov => prov.id === provider.id);\n if (!currentProvider) {\n return results;\n }\n\n const { id: providerId } = currentProvider;\n\n page = 0;\n lastPage = false;\n\n while (!lastPage) {\n let response = null;\n page += 1;\n\n params.page = page;\n\n try {\n response = await api.get(`/providers/${providerId}/results`, { params }); // eslint-disable-line no-await-in-loop\n } catch (error) {\n if (error.response && error.response.status === 404) {\n console.debug(`No results available for provider ${provider}`);\n }\n\n lastPage = true;\n }\n\n if (response) {\n commit(ADD_PROVIDER_CACHE, { providerId, cache: response.data });\n results.push(...response.data);\n\n if (response.data.length < limit) {\n lastPage = true;\n }\n } else {\n lastPage = true;\n }\n }\n return results;\n };\n\n const result = {\n providersSearched: 0,\n totalSearchResults: []\n };\n\n for (const provider of state.providers) {\n if (!provider.config.enabled) {\n continue;\n }\n\n result.providersSearched += 1;\n const providerResults = await getProviderResults(provider); // eslint-disable-line no-await-in-loop\n result.totalSearchResults.push(...providerResults);\n }\n\n return result;\n },\n /**\n * Get provider cache results for enabled providers.\n *\n * @param {*} {commit} Destructured commit object.\n * @param {Object} searchResult - Search result.\n * @returns {void}.\n */\n addManualSearchResult({ commit }, searchResult) {\n commit(ADD_SEARCH_RESULTS, [searchResult]);\n }\n\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import Vue from 'vue';\nimport { api } from '../../api';\nimport {\n ADD_RECOMMENDED_SHOW,\n SET_RECOMMENDED_SHOWS,\n SET_RECOMMENDED_SHOWS_OPTIONS\n} from '../mutation-types';\n\nconst IMDB = 10;\nconst ANIDB = 11;\nconst TRAKT = 12;\nconst ANILIST = 13;\n\nconst state = {\n shows: [],\n trakt: {\n removedFromMedusa: [],\n blacklistEnabled: false,\n availableLists: []\n },\n categories: {},\n externals: {\n IMDB,\n ANIDB,\n TRAKT,\n ANILIST\n },\n sourceToString: {\n [IMDB]: 'imdb',\n [ANIDB]: 'anidb',\n [TRAKT]: 'trakt',\n [ANILIST]: 'anilist'\n }\n};\n\nconst mutations = {\n [ADD_RECOMMENDED_SHOW](state, show) {\n const existingShow = state.shows.find(({ seriesId, source }) => Number(show.seriesId[show.source]) === Number(seriesId[source]));\n\n if (!existingShow) {\n console.debug(`Adding ${show.title || show.source + String(show.seriesId)} as it wasn't found in the shows array`, show);\n state.shows.push(show);\n return;\n }\n\n // Merge new recommended show object over old one\n // this allows detailed queries to update the record\n // without the non-detailed removing the extra data\n console.debug(`Found ${show.title || show.source + String(show.seriesId)} in shows array attempting merge`);\n const newShow = {\n ...existingShow,\n ...show\n };\n\n // Update state\n Vue.set(state.shows, state.shows.indexOf(existingShow), newShow);\n console.debug(`Merged ${newShow.title || newShow.source + String(newShow.seriesId)}`, newShow);\n },\n [SET_RECOMMENDED_SHOWS](state, { shows, identifier }) {\n if (identifier) {\n // If an identifier has been passed, remove the old shows for this identifier.\n const source = Number(Object.keys(state.sourceToString).find(key => state.sourceToString[key] === identifier));\n state.shows = state.shows.filter(show => show.source !== source);\n } else {\n // No identifier passed, meaning remove all shows from store.\n state.shows = [];\n }\n state.shows = [...state.shows, ...shows];\n },\n [SET_RECOMMENDED_SHOWS_OPTIONS](state, data) {\n state.trakt.removedFromMedusa = data.trakt.removedFromMedusa;\n state.trakt.blacklistEnabled = data.trakt.blacklistEnabled;\n state.trakt.availableLists = data.trakt.availableLists;\n state.categories = data.categories;\n }\n\n};\n\nconst getters = {};\n\nconst actions = {\n /**\n * Get recommended shows from API and commit them to the store.\n *\n * @param {*} context - The store context.\n * @param {String} identifier - Identifier for the recommended shows list.\n * @returns {(undefined|Promise)} undefined if `shows` was provided or the API response if not.\n */\n getRecommendedShows({ commit }, identifier) {\n identifier = identifier ? identifier : '';\n return api.get(`/recommended/${identifier}`, { timeout: 60000 })\n .then(response => {\n commit(SET_RECOMMENDED_SHOWS, { shows: response.data.shows, identifier });\n commit(SET_RECOMMENDED_SHOWS_OPTIONS, response.data);\n });\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import Vue from 'vue';\nimport { api } from '../../api';\nimport {\n ADD_SHOW,\n ADD_SHOW_QUEUE_ITEM,\n ADD_SHOW_CONFIG,\n ADD_SHOWS,\n ADD_SHOW_CONFIG_TEMPLATE,\n ADD_SHOW_EPISODE,\n ADD_SHOW_SCENE_EXCEPTION,\n REMOVE_SHOW_SCENE_EXCEPTION,\n REMOVE_SHOW,\n REMOVE_SHOW_CONFIG_TEMPLATE\n} from '../mutation-types';\n\n/**\n * @typedef {object} ShowIdentifier\n * @property {string} indexer The indexer name (e.g. `tvdb`)\n * @property {number} id The show ID on the indexer (e.g. `12345`)\n */\n\nconst state = {\n shows: [],\n currentShow: {\n showSlug: null\n },\n loading: {\n total: null,\n current: null,\n display: false,\n finished: false\n },\n queueitems: []\n};\n\nconst mutations = {\n [ADD_SHOW](state, show) {\n const existingShow = state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer]));\n\n if (!existingShow) {\n console.debug(`Adding ${show.title || show.indexer + String(show.id)} as it wasn't found in the shows array`, show);\n state.shows.push(show);\n return;\n }\n\n // Merge new show object over old one\n // this allows detailed queries to update the record\n // without the non-detailed removing the extra data\n console.debug(`Found ${show.title || show.indexer + String(show.id)} in shows array attempting merge`);\n const newShow = {\n ...existingShow,\n ...show\n };\n\n // Repair the searchTemplates\n newShow.config.searchTemplates = show.config.searchTemplates ? show.config.searchTemplates : existingShow.config.searchTemplates;\n\n // Update state\n Vue.set(state.shows, state.shows.indexOf(existingShow), newShow);\n console.debug(`Merged ${newShow.title || newShow.indexer + String(newShow.id)}`, newShow);\n },\n [ADD_SHOWS](state, shows) {\n // If the show is already available, we only want to merge values\n const mergedShows = [];\n for (const newShow of shows) {\n const existing = state.shows.find(stateShow => stateShow.id.slug === newShow.id.slug);\n if (existing) {\n const {\n sceneAbsoluteNumbering,\n xemAbsoluteNumbering,\n sceneNumbering,\n ...showWithoutDetailed\n } = newShow;\n\n // Repair searchTemplates.\n const mergedShow = { ...existing, ...showWithoutDetailed };\n mergedShow.config.searchTemplates = showWithoutDetailed.config.searchTemplates ? showWithoutDetailed.config.searchTemplates : existing.config.searchTemplates;\n\n mergedShows.push(mergedShow);\n } else {\n mergedShows.push(newShow);\n }\n }\n state.shows = mergedShows;\n console.debug(`Added ${shows.length} shows to store`);\n },\n [ADD_SHOW_CONFIG](state, { show, config }) {\n const existingShow = state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer]));\n existingShow.config = { ...existingShow.config, ...config };\n },\n currentShow(state, showSlug) {\n state.currentShow.showSlug = showSlug;\n },\n setLoadingTotal(state, total) {\n state.loading.total = total;\n },\n setLoadingCurrent(state, current) {\n state.loading.current = current;\n },\n updateLoadingCurrent(state, current) {\n state.loading.current += current;\n },\n setLoadingDisplay(state, display) {\n state.loading.display = display;\n },\n setLoadingFinished(state, finished) {\n state.loading.finished = finished;\n },\n [ADD_SHOW_EPISODE](state, { show, episodes }) {\n // Creating a new show object (from the state one) as we want to trigger a store update\n const newShow = Object.assign({}, state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer])));\n\n if (!newShow.seasons) {\n newShow.seasons = [];\n }\n\n // Recreate an Array with season objects, with each season having an episodes array.\n // This format is used by vue-good-table (displayShow).\n episodes.forEach(episode => {\n const existingSeason = newShow.seasons.find(season => season.season === episode.season);\n\n if (existingSeason) {\n const foundIndex = existingSeason.children.findIndex(element => element.slug === episode.slug);\n if (foundIndex === -1) {\n existingSeason.children.push(episode);\n } else {\n existingSeason.children.splice(foundIndex, 1, episode);\n }\n } else {\n const newSeason = {\n season: episode.season,\n children: [],\n html: false,\n mode: 'span',\n label: 1\n };\n newShow.seasons.push(newSeason);\n newSeason.children.push(episode);\n }\n });\n\n // Update state\n const existingShow = state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer]));\n Vue.set(state.shows, state.shows.indexOf(existingShow), newShow);\n console.log(`Storing episodes for show ${newShow.title} seasons: ${[...new Set(episodes.map(episode => episode.season))].join(', ')}`);\n },\n [ADD_SHOW_SCENE_EXCEPTION](state, { show, exception }) {\n // Get current show object\n const currentShow = Object.assign({}, state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer])));\n\n if (currentShow.config.aliases.find(e => e.title === exception.title && e.season === exception.season)) {\n console.warn(`Can't add exception ${exception.title} with season ${exception.season} to show ${currentShow.title} as it already exists.`);\n return;\n }\n\n currentShow.config.aliases.push(exception);\n },\n [REMOVE_SHOW_SCENE_EXCEPTION](state, { show, exception }) {\n // Get current show object\n const currentShow = Object.assign({}, state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer])));\n\n if (!currentShow.config.aliases.find(e => e.title === exception.title && e.season === exception.season)) {\n console.warn(`Can't remove exception ${exception.title} with season ${exception.season} to show ${currentShow.title} as it does not exist.`);\n return;\n }\n\n currentShow.config.aliases.splice(currentShow.config.aliases.indexOf(exception), 1);\n },\n [ADD_SHOW_QUEUE_ITEM](state, queueItem) {\n const existingQueueItem = state.queueitems.find(item => item.identifier === queueItem.identifier);\n\n if (existingQueueItem) {\n Vue.set(state.queueitems, state.queueitems.indexOf(existingQueueItem), { ...existingQueueItem, ...queueItem });\n } else {\n Vue.set(state.queueitems, state.queueitems.length, queueItem);\n }\n },\n [ADD_SHOW_CONFIG_TEMPLATE](state, { show, template }) {\n // Get current show object\n const currentShow = Object.assign({}, state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer])));\n\n if (currentShow.config.searchTemplates.find(t => t.template === template.pattern)) {\n console.warn(`Can't add template (${template.pattern} to show ${currentShow.title} as it already exists.`);\n return;\n }\n\n currentShow.config.searchTemplates.push(template);\n },\n [REMOVE_SHOW_CONFIG_TEMPLATE](state, { show, template }) {\n // Get current show object\n const currentShow = Object.assign({}, state.shows.find(({ id, indexer }) => Number(show.id[show.indexer]) === Number(id[indexer])));\n\n if (template.id) {\n currentShow.config.searchTemplates = currentShow.config.searchTemplates.filter(\n t => t.id !== template.id\n );\n return;\n }\n\n currentShow.config.searchTemplates = currentShow.config.searchTemplates.filter(\n t => !(t.title === template.title && t.season === template.season && t.template === template.template)\n );\n },\n [REMOVE_SHOW](state, removedShow) {\n state.shows = state.shows.filter(existingShow => removedShow.id.slug !== existingShow.id.slug);\n },\n initShowsFromStore(state) {\n // Check if the ID exists\n if (localStorage.getItem('shows')) {\n Vue.set(state, 'shows', JSON.parse(localStorage.getItem('shows')));\n }\n }\n};\n\nconst getters = {\n getShowById: state => {\n /**\n * Get a show from the loaded shows state, identified by show slug.\n *\n * @param {string} showSlug Show identifier.\n * @returns {object|undefined} Show object or undefined if not found.\n */\n const getShowById = showSlug => state.shows.find(show => show.id.slug === showSlug);\n return getShowById;\n },\n getShowByTitle: state => title => state.shows.find(show => show.title === title),\n getSeason: state => ({ showSlug, season }) => {\n const show = state.shows.find(show => show.id.slug === showSlug);\n return show && show.seasons ? show.seasons[season] : undefined;\n },\n getEpisode: state => ({ showSlug, season, episode }) => {\n const show = state.shows.find(show => show.id.slug === showSlug);\n return show && show.seasons && show.seasons.find(s => s.season === season) ? show.seasons.find(s => s.season === season).children.find(ep => ep.episode === episode) : undefined;\n },\n getCurrentShow: (state, _, rootState) => {\n return state.shows.find(show => show.id.slug === state.currentShow.showSlug) || rootState.defaults.show;\n },\n showsWithStats: (state, getters, rootState) => {\n if (!state.shows) {\n return [];\n }\n\n return state.shows.map(show => {\n let showStats = rootState.stats.show.stats.find(stat => stat.indexerId === getters.indexerNameToId(show.indexer) && stat.seriesId === show.id[show.indexer]);\n const newLine = '\\u000D';\n let text = 'Unaired';\n let title = '';\n\n if (!showStats) {\n showStats = {\n epDownloaded: 0,\n epSnatched: 0,\n epTotal: 0,\n seriesSize: 0\n };\n }\n\n if (showStats.epTotal >= 1) {\n text = showStats.epDownloaded;\n title = `Downloaded: ${showStats.epDownloaded}`;\n\n if (showStats.epSnatched) {\n text += `+${showStats.epSnatched}`;\n title += `${newLine}Snatched: ${showStats.epSnatched}`;\n }\n\n text += ` / ${showStats.epTotal}`;\n title += `${newLine}Total: ${showStats.epTotal}`;\n }\n\n show.stats = {\n episodes: {\n total: showStats.epTotal,\n snatched: showStats.epSnatched,\n downloaded: showStats.epDownloaded,\n size: showStats.seriesSize\n },\n tooltip: {\n text,\n title,\n percentage: (showStats.epDownloaded * 100) / (showStats.epTotal || 1)\n }\n };\n return show;\n });\n },\n showsInLists: (state, getters, rootState) => {\n const { layout, general } = rootState.config;\n const { show } = layout;\n const { showListOrder } = show;\n const { rootDirs } = general;\n const { selectedRootIndex, local } = layout;\n const { showFilterByName } = local;\n\n const { showsWithStats } = getters;\n\n let shows = null;\n\n // Filter root dirs\n shows = showsWithStats.filter(show => selectedRootIndex === -1 || show.config.location.includes(rootDirs.slice(1)[selectedRootIndex]));\n\n // Filter by text for the banner, simple and smallposter layouts.\n // The Poster layout uses vue-isotope and this does not respond well to changes to the `list` property.\n if (layout.home !== 'poster') {\n shows = shows.filter(show => show.title.toLowerCase().includes(showFilterByName.toLowerCase()));\n }\n\n const categorizedShows = showListOrder.filter(\n listTitle => shows.filter(\n show => show.config.showLists.map(\n list => list.toLowerCase()\n ).includes(listTitle.toLowerCase())\n ).length > 0\n ).map(\n listTitle => ({ listTitle, shows: shows.filter(\n show => show.config.showLists.map(list => list.toLowerCase()).includes(listTitle.toLowerCase())\n ) })\n );\n\n // Check for shows that are not in any category anymore\n const uncategorizedShows = shows.filter(show => {\n return show.config.showLists.map(item => {\n return showListOrder.map(list => list.toLowerCase()).includes(item.toLowerCase());\n }).every(item => !item);\n });\n\n if (uncategorizedShows.length > 0) {\n categorizedShows.push({ listTitle: 'uncategorized', shows: uncategorizedShows });\n }\n\n if (categorizedShows.length === 0 && uncategorizedShows.length === 0) {\n categorizedShows.push({ listTitle: 'Series', shows: [] });\n }\n\n return categorizedShows;\n }\n};\n\n/**\n * An object representing request parameters for getting a show from the API.\n *\n * @typedef {object} ShowGetParameters\n * @property {boolean} detailed Fetch detailed information? (e.g. scene/xem numbering)\n * @property {boolean} episodes Fetch seasons & episodes?\n */\n\nconst actions = {\n /**\n * Get show from API and commit it to the store.\n *\n * @param {*} context The store context.\n * @param {ShowIdentifier&ShowGetParameters} parameters Request parameters.\n * @returns {Promise} The API response.\n */\n getShow(context, { showSlug, detailed, episodes }) {\n return new Promise((resolve, reject) => {\n const { commit } = context;\n const params = {};\n let timeout = 30000;\n\n if (detailed !== undefined) {\n params.detailed = detailed;\n timeout = 60000;\n timeout = 60000;\n }\n\n if (episodes !== undefined) {\n params.episodes = episodes;\n timeout = 60000;\n }\n\n api.get(`/series/${showSlug}`, { params, timeout })\n .then(res => {\n commit(ADD_SHOW, res.data);\n resolve(res.data);\n })\n .catch(error => {\n reject(error);\n });\n });\n },\n /**\n * Get episdoes for a specified show from API and commit it to the store.\n *\n * @param {*} context - The store context.\n * @param {ShowParameteres} parameters - Request parameters.\n * @returns {Promise} The API response.\n */\n getEpisodes({ commit, getters }, { showSlug, season }) {\n return new Promise((resolve, reject) => {\n const { getShowById } = getters;\n const show = getShowById(showSlug);\n\n const limit = 1000;\n const params = {\n limit\n };\n\n if (season !== undefined) {\n params.season = season;\n }\n\n // Get episodes\n api.get(`/series/${showSlug}/episodes`, { params })\n .then(response => {\n commit(ADD_SHOW_EPISODE, { show, episodes: response.data });\n resolve();\n })\n .catch(error => {\n console.log(`Could not retrieve a episodes for show ${showSlug}, error: ${error}`);\n reject(error);\n });\n });\n },\n /**\n * Get shows from API and commit them to the store.\n *\n * @param {*} context - The store context.\n * @param {(ShowIdentifier&ShowGetParameters)[]} shows Shows to get. If not provided, gets the first 1k shows.\n * @returns {undefined|Promise} undefined if `shows` was provided or the API response if not.\n */\n getShows(context, shows) {\n const { commit, dispatch, state, rootState } = context;\n\n // If no shows are provided get the first 1000\n if (shows) {\n // Return a specific show list. (not used afaik).\n return shows.forEach(show => dispatch('getShow', show));\n }\n\n return new Promise((resolve, _) => {\n // Loading new shows, commit show loading information to state.\n commit('setLoadingTotal', 0);\n commit('setLoadingCurrent', 0);\n commit('setLoadingDisplay', true);\n\n const limit = 1000;\n const page = 1;\n const params = {\n limit,\n page\n };\n\n const pageRequests = [];\n const newShows = [];\n\n // Get first page\n pageRequests.push(api.get('/series', { params })\n .then(response => {\n commit('setLoadingTotal', Number(response.headers['x-pagination-count']));\n const totalPages = Number(response.headers['x-pagination-total']);\n\n newShows.push(...response.data);\n\n commit('updateLoadingCurrent', response.data.length);\n\n // Optionally get additional pages\n for (let page = 2; page <= totalPages; page++) {\n pageRequests.push(new Promise((resolve, reject) => {\n const newPage = { page };\n newPage.limit = params.limit;\n return api.get('/series', { params: newPage })\n .then(response => {\n newShows.push(...response.data);\n commit('updateLoadingCurrent', response.data.length);\n resolve();\n })\n .catch(error => {\n reject(error);\n });\n }));\n }\n })\n .catch(() => {\n console.log('Could not retrieve a list of shows');\n })\n .finally(() => {\n Promise.all(pageRequests)\n .then(() => {\n // Commit all the found shows to store.\n commit(ADD_SHOWS, newShows);\n\n // Update (namespaced) localStorage\n const namespace = rootState.config.system.webRoot ? `${rootState.config.system.webRoot}_` : '';\n try {\n localStorage.setItem(`${namespace}shows`, JSON.stringify(state.shows));\n } catch (error) {\n console.warn(error);\n }\n resolve();\n });\n })\n );\n });\n },\n setShow(_, { showSlug, data }) {\n // Update show, updated show will arrive over a WebSocket message\n return api.patch(`series/${showSlug}`, data);\n },\n updateShow(context, show) {\n // Update local store\n const { commit } = context;\n return commit(ADD_SHOW, show);\n },\n addSceneException(context, { show, exception }) {\n const { commit } = context;\n commit(ADD_SHOW_SCENE_EXCEPTION, { show, exception });\n },\n removeSceneException(context, { show, exception }) {\n const { commit } = context;\n commit(REMOVE_SHOW_SCENE_EXCEPTION, { show, exception });\n },\n setCurrentShow(context, showSlug) {\n return new Promise(resolve => {\n // Set current show\n const { commit } = context;\n commit('currentShow', showSlug);\n resolve();\n });\n },\n setShowConfig(context, { show, config }) {\n const { commit } = context;\n commit(ADD_SHOW_CONFIG, { show, config });\n },\n removeShow({ commit, rootState, state }, show) {\n // Remove the show from store and localStorage (provided through websocket)\n commit(REMOVE_SHOW, show);\n\n // Update recentShows.\n rootState.config.general.recentShows = rootState.config.general.recentShows.filter(\n recentShow => recentShow.showSlug !== show.id.slug\n );\n const config = {\n recentShows: rootState.config.general.recentShows\n };\n api.patch('config/main', config);\n\n // Update (namespaced) localStorage\n const namespace = rootState.config.system.webRoot ? `${rootState.config.system.webRoot}_` : '';\n localStorage.setItem(`${namespace}shows`, JSON.stringify(state.shows));\n },\n updateShowQueueItem(context, queueItem) {\n // Update store's search queue item. (provided through websocket)\n const { commit } = context;\n return commit(ADD_SHOW_QUEUE_ITEM, queueItem);\n },\n addSearchTemplate(context, { show, template }) {\n const { commit } = context;\n\n commit(ADD_SHOW_CONFIG_TEMPLATE, { show, template });\n const data = {\n config: {\n searchTemplates: context.getters.getCurrentShow.config.searchTemplates\n }\n };\n return api.patch(`series/${show.indexer}${show.id[show.indexer]}`, data);\n },\n removeSearchTemplate(context, { show, template }) {\n const { commit } = context;\n\n commit(REMOVE_SHOW_CONFIG_TEMPLATE, { show, template });\n const data = {\n config: {\n searchTemplates: context.getters.getCurrentShow.config.searchTemplates\n }\n };\n return api.patch(`series/${show.indexer}${show.id[show.indexer]}`, data);\n }\n\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { api } from '../../api';\nimport { ADD_SCHEDULE } from '../mutation-types';\n\nconst state = {\n categories: ['later', 'missed', 'soon', 'today'],\n later: [],\n missed: [],\n soon: [],\n today: [],\n displayCategory: {\n later: false,\n missed: false,\n soon: true,\n today: true\n }\n};\n\nconst mutations = {\n [ADD_SCHEDULE](state, schedule) {\n for (const category in schedule) { // eslint-disable-line guard-for-in\n state[category] = schedule[category];\n }\n },\n setDisplayCategory(state, { category, value }) {\n state.displayCategory[category] = value;\n }\n};\n\nconst getters = {\n getScheduleFlattened: state => {\n const flattendedSchedule = [];\n const { categories, displayCategory } = state;\n for (const category of categories) {\n if (!displayCategory[category]) {\n continue;\n }\n\n const episodes = state[category];\n for (const episode of episodes) {\n episode.class = category;\n }\n flattendedSchedule.push(...episodes);\n }\n return flattendedSchedule;\n },\n /**\n * Group the coming episodes into an array of objects with an attibute header (the week day)\n * and an attribute episodes with an array of coming episodes.\n * @param {object} state - local state object.\n * @param {object} getters - local getters object.\n * @param {object} rootState - root state object.\n * @returns {array} - Array of grouped episodes by header.\n */\n groupedSchedule: (state, getters, rootState) => {\n const { missed, soon, today, later, displayCategory } = state;\n const { displayPaused } = rootState.config.layout.comingEps;\n\n const days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n /* Return an array of the days to come */\n const comingDays = (currentDay, nrComingDays) => {\n let currentDayOfTheWeek = currentDay.getDay();\n const returnDays = [];\n for (let i = 0; i < nrComingDays; i++) {\n if (currentDayOfTheWeek > 7) {\n currentDayOfTheWeek = 1;\n }\n returnDays.push(currentDayOfTheWeek);\n currentDayOfTheWeek += 1;\n }\n return returnDays;\n };\n\n const _MS_PER_DAY = 1000 * 60 * 60 * 24;\n\n // A and b are javascript Date objects\n function dateDiffInDays(a, b) {\n // Discard the time and time-zone information.\n const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());\n const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());\n\n return Math.floor((utc2 - utc1) / _MS_PER_DAY);\n }\n\n const newArray = [];\n const combinedEpisodes = [];\n\n if (displayCategory.missed) {\n combinedEpisodes.push(...missed);\n }\n\n if (displayCategory.today) {\n combinedEpisodes.push(...today);\n }\n\n if (displayCategory.soon) {\n combinedEpisodes.push(...soon);\n }\n\n if (displayCategory.later) {\n combinedEpisodes.push(...later);\n }\n\n const filteredEpisodes = combinedEpisodes.filter(item => !item.paused || displayPaused);\n if (filteredEpisodes.length === 0) {\n return [];\n }\n\n let currentDay = new Date(filteredEpisodes[0].airdate);\n\n // Group the coming episodes by day.\n for (const episode of filteredEpisodes) {\n // Calculate the gaps in the week, for which we don't have any scheduled shows.\n if (currentDay !== new Date(episode.airdate)) {\n const diffDays = dateDiffInDays(currentDay, new Date(episode.airdate));\n if (diffDays > 1) {\n let dayHeader = days[comingDays(currentDay, diffDays)[1] - 1];\n\n // Add the elipses if there is a wider gap then 1 day.\n if (diffDays > 2) {\n dayHeader = `${dayHeader} ...`;\n }\n\n newArray.push({\n header: dayHeader,\n class: 'soon',\n episodes: []\n });\n }\n }\n\n currentDay = new Date(episode.airdate);\n\n let weekDay = newArray.find(item => item.airdate === episode.airdate);\n if (!weekDay) {\n weekDay = {\n airdate: episode.airdate,\n header: days[episode.weekday],\n class: 'soon',\n episodes: []\n };\n newArray.push(weekDay);\n }\n\n episode.airsTime = episode.airs.split(' ').slice(-2).join(' ');\n weekDay.episodes.push(episode);\n }\n return newArray;\n },\n /**\n * Group and sort the coming episodes into an array of objects with an attibute header (the week day).\n * Group the coming episodes into groups of missed, today, soon (subgrouped per day) and later.\n * @param {object} state - local state object.\n * @param {object} getters - local getters object.\n * @param {object} rootState - root state object.\n * @returns {array} - Array of grouped episodes by header.\n */\n sortedSchedule: (state, getters, rootState) => sort => {\n const {\n displayCategory,\n missed, today, soon, later\n } = state;\n const { displayPaused } = rootState.config.layout.comingEps;\n const days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n const newArray = [];\n\n if (sort === 'date') {\n if (displayCategory.missed) {\n // Group missed episodes (one group)\n newArray.push({\n header: 'missed',\n class: 'missed',\n episodes: missed.filter(item => !item.paused || displayPaused)\n });\n }\n\n if (displayCategory.today) {\n // Group missed episodes (one group)\n newArray.push({\n header: 'today',\n class: 'today',\n episodes: today.filter(item => !item.paused || displayPaused)\n });\n }\n\n if (displayCategory.soon) {\n // Group the coming episodes by day.\n for (const episode of soon.filter(item => !item.paused || displayPaused)) {\n let weekDay = newArray.find(item => item.header === days[episode.weekday]);\n if (!weekDay) {\n weekDay = {\n header: days[episode.weekday],\n class: 'soon',\n episodes: []\n };\n newArray.push(weekDay);\n }\n weekDay.episodes.push(episode);\n }\n }\n\n if (displayCategory.later) {\n // Group later episodes (one group)\n newArray.push({\n header: 'later',\n class: 'later',\n episodes: later.filter(item => !item.paused || displayPaused)\n });\n }\n return newArray;\n }\n\n if (sort === 'network') {\n const { getScheduleFlattened } = getters;\n const filteredSchedule = getScheduleFlattened.filter(item => !item.paused || displayPaused);\n\n for (const episode of filteredSchedule.sort((a, b) => a.network.localeCompare(b.network))) {\n let network = newArray.find(item => item.header === episode.network);\n if (!network) {\n network = {\n header: episode.network,\n class: episode.class,\n episodes: []\n };\n newArray.push(network);\n }\n network.episodes.push(episode);\n }\n return newArray;\n }\n }\n};\n\n/**\n * An object representing request parameters for getting a show from the API.\n *\n * @typedef {object} ShowGetParameters\n * @property {boolean} detailed Fetch detailed information? (e.g. scene/xem numbering)\n * @property {boolean} episodes Fetch seasons & episodes?\n */\n\nconst actions = {\n /**\n * Get show schedule from API and commit it to the store.\n *\n * @param {*} context The store context.\n * @param {ShowIdentifier&ShowGetParameters} parameters Request parameters.\n * @returns {Promise} The API response.\n */\n async getSchedule({ commit, state }) {\n const params = {\n category: state.categories,\n paused: true\n };\n const response = await api.get('/schedule', { params });\n if (response.data) {\n commit(ADD_SCHEDULE, response.data);\n }\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import {\n SOCKET_ONOPEN,\n SOCKET_ONCLOSE,\n SOCKET_ONERROR,\n SOCKET_ONMESSAGE,\n SOCKET_RECONNECT,\n SOCKET_RECONNECT_ERROR\n} from '../mutation-types';\n\nconst state = {\n isConnected: false,\n // Current message\n message: {},\n // Delivered messages for this session\n messages: [],\n reconnectError: false\n};\n\nconst mutations = {\n [SOCKET_ONOPEN](state) {\n state.isConnected = true;\n },\n [SOCKET_ONCLOSE](state) {\n state.isConnected = false;\n },\n [SOCKET_ONERROR](state, event) {\n console.error(state, event);\n },\n // Default handler called for all websocket methods\n [SOCKET_ONMESSAGE](state, message) {\n const { data, event } = message;\n\n // Set the current message\n state.message = message;\n\n if (event === 'notification') {\n // Save it so we can look it up later\n const existingMessage = state.messages.filter(message => message.hash === data.hash);\n if (existingMessage.length === 1) {\n state.messages[state.messages.indexOf(existingMessage)] = message;\n } else {\n state.messages.push(message);\n }\n }\n },\n // Mutations for websocket reconnect methods\n [SOCKET_RECONNECT](state, count) {\n console.info(state, count);\n },\n [SOCKET_RECONNECT_ERROR](state) {\n state.reconnectError = true;\n\n const title = 'Error connecting to websocket';\n let error = '';\n error += 'Please check your network connection. ';\n error += 'If you are using a reverse proxy, please take a look at our wiki for config examples.';\n\n window.displayNotification('notice', title, error);\n }\n};\n\nconst getters = {};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { api } from '../../api';\nimport { ADD_STATS, SET_STATS, SET_MAX_DOWNLOAD_COUNT } from '../mutation-types';\n\nconst state = {\n overall: {\n episodes: {\n downloaded: null,\n snatched: null,\n total: null\n },\n shows: {\n active: null,\n total: null\n }\n },\n show: {\n maxDownloadCount: 0,\n stats: []\n }\n};\n\nconst mutations = {\n [ADD_STATS](state, payload) {\n const { type, stats } = payload;\n state[type] = Object.assign(state[type], stats);\n },\n [SET_STATS](state, stats) {\n state.stats = stats;\n },\n [SET_MAX_DOWNLOAD_COUNT](state, downloadCount) {\n state.maxDownloadCount = downloadCount;\n }\n};\n\nconst getters = {};\n\nconst actions = {\n getStats(context, type) {\n const { commit } = context;\n return api.get(`/stats/${(type || '')}`).then(res => {\n commit(ADD_STATS, {\n type: (type || 'overall'),\n stats: res.data\n });\n });\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG, UPDATE_SHOWLIST_DEFAULT } from '../../mutation-types';\n\nconst state = {\n anidb: {\n enabled: false,\n username: null,\n password: null,\n useMylist: false\n },\n autoAnimeToList: false,\n showlistDefaultAnime: []\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'anime') {\n state = Object.assign(state, config);\n }\n },\n [UPDATE_SHOWLIST_DEFAULT](state, value) {\n state.showlistDefaultAnime = value;\n }\n};\n\nconst getters = {};\n\nconst actions = {\n updateShowlistDefault(context, showlistDefaultAnime) {\n const { commit } = context;\n return commit(UPDATE_SHOWLIST_DEFAULT, showlistDefaultAnime);\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG } from '../../mutation-types';\n\nconst state = {\n torrents: {\n authType: null,\n dir: null,\n enabled: null,\n highBandwidth: null,\n host: null,\n label: null,\n labelAnime: null,\n method: null,\n path: null,\n paused: null,\n rpcUrl: null,\n seedLocation: null,\n seedTime: null,\n username: null,\n password: null,\n verifySSL: null,\n testStatus: 'Click below to test'\n },\n nzb: {\n enabled: null,\n method: null,\n nzbget: {\n category: null,\n categoryAnime: null,\n categoryAnimeBacklog: null,\n categoryBacklog: null,\n host: null,\n priority: null,\n useHttps: null,\n username: null,\n password: null\n },\n sabnzbd: {\n category: null,\n forced: null,\n categoryAnime: null,\n categoryBacklog: null,\n categoryAnimeBacklog: null,\n host: null,\n username: null,\n password: null,\n apiKey: null\n }\n }\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'clients') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG } from '../../mutation-types';\n\n/**\n * An object representing a split quality.\n *\n * @typedef {Object} Quality\n * @property {number[]} allowed - Allowed qualities\n * @property {number[]} preferred - Preferred qualities\n */\n\nconst state = {\n qualities: {\n values: [],\n anySets: [],\n presets: []\n },\n statuses: [],\n clientStatuses: []\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'consts') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {\n // Get a quality object using a key or a value\n getQuality: state => ({ key, value }) => {\n if ([key, value].every(x => x === undefined) || [key, value].every(x => x !== undefined)) {\n throw new Error('Conflict in `getQuality`: Please provide either `key` or `value`.');\n }\n return state.qualities.values.find(quality => key === quality.key || value === quality.value);\n },\n // Get a quality any-set object using a key or a value\n getQualityAnySet: state => ({ key, value }) => {\n if ([key, value].every(x => x === undefined) || [key, value].every(x => x !== undefined)) {\n throw new Error('Conflict in `getQualityAnySet`: Please provide either `key` or `value`.');\n }\n return state.qualities.anySets.find(preset => key === preset.key || value === preset.value);\n },\n // Get a quality preset object using a key or a value\n getQualityPreset: state => ({ key, value }) => {\n if ([key, value].every(x => x === undefined) || [key, value].every(x => x !== undefined)) {\n throw new Error('Conflict in `getQualityPreset`: Please provide either `key` or `value`.');\n }\n return state.qualities.presets.find(preset => key === preset.key || value === preset.value);\n },\n // Get a status object using a key or a value\n getStatus: state => ({ key, value }) => {\n if ([key, value].every(x => x === undefined) || [key, value].every(x => x !== undefined)) {\n throw new Error('Conflict in `getStatus`: Please provide either `key` or `value`.');\n }\n return state.statuses.find(status => key === status.key || value === status.value);\n },\n /**\n * Get an episode overview status using the episode status and quality.\n *\n * @typedef {Object} - Episode status\n * @property {Object} quality - Episode quality\n * @property {Object} configQualities - Shows configured qualities (allowed and preferred)\n * @returns {String} The overview status\n */\n // eslint-disable-next-line no-unused-vars\n getOverviewStatus: _state => (status, quality, configQualities) => {\n if (['Unset', 'Unaired'].includes(status)) {\n return 'Unaired';\n }\n\n if (['Skipped', 'Ignored'].includes(status)) {\n return 'Skipped';\n }\n\n if (['Archived'].includes(status)) {\n return 'Preferred';\n }\n\n if (['Wanted', 'Failed'].includes(status)) {\n return 'Wanted';\n }\n\n if (['Snatched', 'Snatched (Proper)', 'Snatched (Best)'].includes(status)) {\n return 'Snatched';\n }\n\n if (['Downloaded'].includes(status)) {\n // Check if the show has been configured with only allowed qualities.\n if (configQualities.allowed.length > 0 && configQualities.preferred.length === 0) {\n // This is a hack, because technically the quality does not fit in the Preferred quality.\n // But because 'preferred' translates to the css color \"green\", we use it.\n if (configQualities.allowed.includes(quality)) {\n return 'Preferred';\n }\n }\n\n if (configQualities.preferred.includes(quality)) {\n return 'Preferred';\n }\n\n if (configQualities.allowed.includes(quality)) {\n return 'Allowed';\n }\n\n return 'Wanted';\n }\n\n return status;\n },\n splitQuality: state => {\n /**\n * Split a combined quality to allowed and preferred qualities.\n * Converted Python method from `medusa.common.Quality.split_quality`.\n *\n * @param {number} quality - The combined quality to split\n * @returns {Quality} The split quality\n */\n const _splitQuality = quality => {\n return state.qualities.values.reduce((result, { value }) => {\n quality >>>= 0; // Unsigned int\n if (value & quality) {\n result.allowed.push(value);\n }\n if ((value << 16) & quality) {\n result.preferred.push(value);\n }\n return result;\n }, { allowed: [], preferred: [] });\n };\n return _splitQuality;\n }\n};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG } from '../../mutation-types';\n\nconst state = {\n main: {\n externalMappings: {},\n statusMap: {},\n traktIndexers: {},\n validLanguages: [],\n langabbvToId: {},\n recommendedLists: {}\n },\n indexers: {\n tvdb: {\n apiParams: {\n useZip: null,\n language: null\n },\n baseUrl: null,\n enabled: null,\n icon: null,\n id: null,\n identifier: null,\n mappedTo: null,\n name: null,\n scene_loc: null, // eslint-disable-line camelcase\n showUrl: null,\n xemOrigin: null\n },\n tmdb: {\n apiParams: {\n useZip: null,\n language: null\n },\n baseUrl: null,\n enabled: null,\n icon: null,\n id: null,\n identifier: null,\n mappedTo: null,\n name: null,\n scene_loc: null, // eslint-disable-line camelcase\n showUrl: null,\n xemOrigin: null\n },\n tvmaze: {\n apiParams: {\n useZip: null,\n language: null\n },\n baseUrl: null,\n enabled: null,\n icon: null,\n id: null,\n identifier: null,\n mappedTo: null,\n name: null,\n scene_loc: null, // eslint-disable-line camelcase\n showUrl: null,\n xemOrigin: null\n }\n }\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'indexers') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {\n // Get an indexer's name using its ID.\n indexerIdToName: state => indexerId => {\n if (!indexerId) {\n return undefined;\n }\n const { indexers } = state;\n return Object.keys(indexers).find(name => indexers[name].id === Number.parseInt(indexerId, 10));\n },\n // Get an indexer's ID using its name.\n indexerNameToId: state => indexerName => {\n const { indexers } = state;\n if (!indexerName || !indexers) {\n return undefined;\n }\n return indexers[indexerName].id;\n },\n /**\n * Return the indexers showUrl.\n * @param {object} state - State object.\n * @returns {string|undefined} Indexers show url or undefined if not found.\n */\n getIndexer: state => indexerId => {\n return Object.values(state.indexers).find(indexer => indexer.id === indexerId);\n }\n};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG, UPDATE_LAYOUT_LOCAL } from '../../mutation-types';\nimport { api } from '../../../api';\nimport formatDate from 'date-fns/format';\nimport parseISO from 'date-fns/parseISO';\nimport TimeAgo from 'javascript-time-ago';\nimport en from 'javascript-time-ago/locale/en';\n\nimport { convertDateFormat, divmod } from '../../../utils/core';\n\n// Add locale-specific relative date/time formatting rules.\nTimeAgo.addDefaultLocale(en);\n\nconst state = {\n show: {\n specials: null,\n showListOrder: [],\n pagination: {\n enable: null\n }\n },\n home: null,\n selectedRootIndex: null,\n history: null,\n historyLimit: null,\n schedule: null,\n wide: null,\n timezoneDisplay: null,\n timeStyle: null,\n dateStyle: null,\n themeName: null,\n splitHomeInTabs: null,\n animeSplitHome: null,\n fanartBackground: null,\n fanartBackgroundOpacity: null,\n trimZero: null,\n sortArticle: null,\n fuzzyDating: null,\n comingEps: {\n missedRange: null,\n sort: null,\n displayPaused: null,\n layout: null\n },\n backlogOverview: {\n status: null,\n period: null\n },\n posterSortdir: null,\n posterSortby: null,\n // Local config store properties, are saved to.\n local: {\n showFilterByName: '',\n posterSize: 188,\n currentShowTab: null\n }\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'layout') {\n state = Object.assign(state, config);\n }\n },\n [UPDATE_LAYOUT_LOCAL](state, local) {\n state.local = { ...state.local, ...local };\n }\n};\n\nconst getters = {\n fuzzyParseDateTime: state => (airDate, showSeconds = false) => {\n const timeAgo = new TimeAgo('en-US');\n const { dateStyle, fuzzyDating, timeStyle } = state;\n\n if (!airDate || !dateStyle) {\n return '';\n }\n\n if (fuzzyDating) {\n return timeAgo.format(new Date(airDate));\n }\n\n if (dateStyle === '%x') {\n return new Date(airDate).toLocaleString();\n }\n\n // Only the history page should show seconds.\n const formatTimeStyle = showSeconds ? timeStyle : timeStyle.replace(':%S', '');\n const fdate = parseISO(airDate);\n return formatDate(fdate, convertDateFormat(`${dateStyle} ${formatTimeStyle}`));\n },\n getShowFilterByName: state => {\n return state.local.showFilterByName;\n },\n /**\n * PrettyTimeDelta\n *\n * Translate seconds into a pretty hours, minutes, seconds representation.\n * @param {object} state - State object.\n * @returns {number} seconds - Number of seconds to translate.\n */\n prettyTimeDelta: state => seconds => { // eslint-disable-line no-unused-vars\n let signStr = '';\n if (seconds < 0) {\n signStr = '-';\n }\n\n let days = 0;\n let hours = 0;\n let minutes = 0;\n\n const daysSeconds = divmod(seconds, 86400);\n days = daysSeconds.quotient;\n seconds = daysSeconds.remainder;\n\n const hoursSeconds = divmod(seconds, 3600);\n hours = hoursSeconds.quotient;\n seconds = hoursSeconds.remainder;\n\n const minuteSeconds = divmod(seconds, 60);\n minutes = minuteSeconds.quotient;\n seconds = minuteSeconds.remainder;\n\n if (days > 0) {\n signStr += ` ${days}d`;\n }\n\n if (hours > 0) {\n signStr += ` ${hours}h`;\n }\n\n if (minutes > 0) {\n signStr += ` ${minutes}m`;\n }\n\n if (seconds > 0) {\n signStr += ` ${seconds}s`;\n }\n\n return signStr;\n }\n};\n\nconst actions = {\n setLayout(context, { page, layout }) {\n const { commit } = context;\n // Don't wait for the api, just commit to store.\n commit(ADD_CONFIG, {\n section: 'layout', config: { [page]: layout }\n });\n\n return api.patch('config/main', { layout: { [page]: layout } });\n },\n setTheme(context, { themeName }) {\n const { commit } = context;\n return api.patch('config/main', { layout: { themeName } })\n .then(() => {\n return commit(ADD_CONFIG, {\n section: 'layout', config: { themeName }\n });\n });\n },\n setSpecials(context, specials) {\n const { commit, state } = context;\n const show = Object.assign({}, state.show);\n show.specials = specials;\n\n return api.patch('config/main', { layout: { show } })\n .then(() => {\n return commit(ADD_CONFIG, {\n section: 'layout', config: { show }\n });\n });\n },\n setPosterSortBy(context, { value }) {\n const { commit } = context;\n return api.patch('config/main', { layout: { posterSortby: value } })\n .then(() => {\n return commit(ADD_CONFIG, {\n section: 'layout', config: { posterSortby: value }\n });\n });\n },\n setPosterSortDir(context, { value }) {\n const { commit } = context;\n return api.patch('config/main', { layout: { posterSortdir: value } })\n .then(() => {\n return commit(ADD_CONFIG, {\n section: 'layout', config: { posterSortdir: value }\n });\n });\n },\n setLayoutShow(context, value) {\n const { commit } = context;\n return api.patch('config/main', { layout: { show: value } })\n .then(() => {\n return commit(ADD_CONFIG, {\n section: 'layout', config: { show: value }\n });\n });\n },\n setStoreLayout(context, { key, value }) {\n const { commit } = context;\n return api.patch('config/main', { layout: { [key]: value } })\n .then(() => {\n return commit(ADD_CONFIG, {\n section: 'layout', config: { [key]: value }\n });\n });\n },\n setLayoutLocal(context, { key, value }) {\n const { commit } = context;\n return commit(UPDATE_LAYOUT_LOCAL, { [key]: value });\n },\n setBacklogOverview(context, { key, value }) {\n const { commit, state } = context;\n const backlogOverview = { ...state.backlogOverview };\n backlogOverview[key] = value;\n commit(ADD_CONFIG, {\n section: 'layout', config: { backlogOverview }\n });\n return api.patch('config/main', { layout: { backlogOverview } });\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n accessToken: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n webhook: null,\n tts: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n host: null,\n port: null,\n from: null,\n tls: null,\n username: null,\n password: null,\n addressList: [],\n subject: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n host: null,\n apiKey: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n api: null,\n id: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n host: null,\n password: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n alwaysOn: null,\n libraryCleanPending: null,\n cleanLibrary: null,\n host: [],\n username: null,\n password: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n update: {\n library: null,\n full: null,\n onlyFirst: null\n }\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n host: null,\n database: null,\n mount: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n host: null,\n dbloc: null,\n database: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n client: {\n host: [],\n username: null,\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null\n },\n server: {\n updateLibrary: null,\n host: [],\n enabled: null,\n https: null,\n username: null,\n password: null,\n token: null\n }\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n api: [],\n messageTitle: null,\n priority: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n authToken: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n authToken: null,\n device: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n api: null,\n device: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n apiKey: null,\n userKey: null,\n device: [],\n sound: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n host: null,\n name: null,\n shareName: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n webhook: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n api: null,\n id: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n pinUrl: null,\n username: null,\n accessToken: null,\n timeout: null,\n defaultIndexer: null,\n sync: null,\n syncRemove: null,\n syncWatchlist: null,\n methodAdd: null,\n removeWatchlist: null,\n removeSerieslist: null,\n removeShowFromApplication: null,\n startPaused: null,\n blacklistName: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","export const state = {\n enabled: null,\n notifyOnSnatch: null,\n notifyOnDownload: null,\n notifyOnSubtitleDownload: null,\n dmto: null,\n prefix: null,\n directMessage: null\n};\n\nexport const mutations = {};\n\nexport const getters = {};\n\nexport const actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import anime from './anime';\nimport clients from './clients';\nimport consts from './consts';\nimport indexers from './indexers';\nimport layout from './layout';\nimport general from './general';\nimport metadata from './metadata';\nimport notifiers from './notifiers';\nimport postprocessing from './postprocessing';\nimport search from './search';\nimport subtitles from './subtitles';\nimport system from './system';\n\nconst modules = {\n anime,\n clients,\n consts,\n indexers,\n layout,\n general,\n metadata,\n notifiers,\n postprocessing,\n search,\n subtitles,\n system\n};\n\nconst state = {};\n\nconst mutations = {};\n\nconst getters = {};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions,\n modules\n};\n","import { api, apiRoute } from '../../../api';\nimport { ADD_CONFIG } from '../../mutation-types';\nimport { arrayUnique, arrayExclude } from '../../../utils/core';\n\nconst state = {\n addTitleWithYear: null,\n wikiUrl: null,\n donationsUrl: null,\n namingForceFolders: null,\n sourceUrl: null,\n rootDirs: [],\n subtitles: {\n enabled: null\n },\n brokenProviders: [],\n logs: {\n debug: null,\n dbDebug: null,\n loggingLevels: {},\n numErrors: null,\n numWarnings: null,\n actualLogDir: null,\n nr: null,\n size: null,\n subliminalLog: null,\n privacyLevel: null,\n custom: {}\n },\n cpuPreset: null,\n subtitlesMulti: null,\n anonRedirect: null,\n recentShows: [],\n randomShowSlug: null, // @TODO: Recreate this in Vue when the webapp has a reliable list of shows to choose from.\n showDefaults: {\n status: null,\n statusAfter: null,\n quality: null,\n subtitles: null,\n seasonFolders: null,\n anime: null,\n scene: null,\n showLists: null\n },\n launchBrowser: null,\n defaultPage: null,\n trashRemoveShow: null,\n indexerDefaultLanguage: null,\n showUpdateHour: null,\n indexerTimeout: null,\n indexerDefault: null,\n plexFallBack: {\n enable: null,\n notifications: null,\n timeout: null\n },\n recommended: {\n cache: {\n shows: null,\n trakt: null,\n imdb: null,\n anidb: null,\n anilist: null\n },\n trakt: {\n selectedLists: [],\n availableLists: []\n }\n },\n versionNotify: null,\n autoUpdate: null,\n updateFrequency: null,\n notifyOnUpdate: null,\n availableThemes: null,\n timePresets: [],\n datePresets: [],\n webInterface: {\n apiKey: null,\n log: null,\n username: null,\n password: null,\n port: null,\n host: null,\n notifyOnLogin: null,\n ipv6: null,\n httpsEnable: null,\n httpsCert: null,\n httpsKey: null,\n handleReverseProxy: null\n },\n sslVerify: null,\n sslCaBundle: null,\n noRestart: null,\n encryptionVersion: null,\n calendarUnprotected: null,\n calendarIcons: null,\n proxySetting: null,\n proxyProviders: null,\n proxyClients: null,\n proxyIndexers: null,\n proxyOthers: null,\n skipRemovedFiles: null,\n epDefaultDeletedStatus: null,\n developer: null,\n experimental: null,\n git: {\n username: null,\n password: null,\n token: null,\n authType: null,\n remote: null,\n path: null,\n org: null,\n reset: null,\n resetBranches: null,\n url: null\n },\n // Remove backlogOverview after manage_backlogOverview.mako is gone.\n backlogOverview: {\n status: null,\n period: null\n },\n // Remove themeName when we get fully rid of MEDUSA.config.\n themeName: null,\n providers: {\n prowlarr: {\n url: null,\n apikey: null\n }\n }\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'main') {\n state = Object.assign(state, config);\n }\n },\n addRecentShow(state, { show }) {\n state.recentShows = state.recentShows.filter(\n filterShow =>\n !(filterShow.showSlug === show.showSlug && filterShow.name === show.name)\n );\n\n state.recentShows.unshift(show); // Add the new show object to the start of the array.\n state.recentShows = state.recentShows.slice(0, 5); // Cut the array of at 5 items.\n },\n updateTraktSelectedLists(state, selectedLists) {\n state.recommended.trakt.selectedLists = selectedLists;\n }\n};\n\nconst getters = {\n effectiveIgnored: (state, _, rootState) => series => {\n const seriesIgnored = series.config.release.ignoredWords.map(x => x.toLowerCase());\n const globalIgnored = rootState.config.search.filters.ignored.map(x => x.toLowerCase());\n if (!series.config.release.ignoredWordsExclude) {\n return arrayUnique(globalIgnored.concat(seriesIgnored));\n }\n return arrayExclude(globalIgnored, seriesIgnored);\n },\n effectiveRequired: (state, _, rootState) => series => {\n const seriesRequired = series.config.release.requiredWords.map(x => x.toLowerCase());\n const globalRequired = rootState.config.search.filters.required.map(x => x.toLowerCase());\n if (!series.config.release.requiredWordsExclude) {\n return arrayUnique(globalRequired.concat(seriesRequired));\n }\n return arrayExclude(globalRequired, seriesRequired);\n }\n};\n\nconst actions = {\n getConfig(context, section) {\n const { commit } = context;\n return api.get('/config/' + (section || '')).then(res => {\n if (section) {\n const config = res.data;\n commit(ADD_CONFIG, { section, config });\n return config;\n }\n\n const sections = res.data;\n Object.keys(sections).forEach(section => {\n const config = sections[section];\n commit(ADD_CONFIG, { section, config });\n });\n return sections;\n });\n },\n setConfig(context, { section, config }) {\n return api.patch(`config/${section}`, config);\n },\n updateConfig(context, { section, config }) {\n const { commit } = context;\n return commit(ADD_CONFIG, { section, config });\n },\n getApiKey(context) {\n const { commit } = context;\n const section = 'main';\n const config = { webInterface: { apiKey: '' } };\n return apiRoute.get('config/general/generate_api_key')\n .then(response => {\n config.webInterface.apiKey = response.data;\n return commit(ADD_CONFIG, { section, config });\n });\n },\n setRecentShow({ commit, state }, show) {\n commit('addRecentShow', { show });\n const config = {\n recentShows: state.recentShows\n };\n return api.patch('config/main', config);\n },\n setCustomLogs({ commit }, logs) {\n // Convert back to object.\n const reducedLogs = logs.reduce((obj, item) => ({ ...obj, [item.identifier]: item.level }), {});\n\n return api.patch('config/main', { logs: { custom: logs } })\n .then(() => {\n return commit(ADD_CONFIG, {\n section: 'main', config: { logs: { custom: reducedLogs } }\n });\n });\n },\n setTraktSelectedLists({ commit }, selectedLists) {\n return api.patch('config/main', { recommended: { trakt: { selectedLists } } })\n .then(() => {\n return commit('updateTraktSelectedLists', selectedLists);\n });\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG } from '../../mutation-types';\n\nconst state = {\n metadataProviders: {}\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'metadata') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG } from '../../../mutation-types';\nimport boxcar2 from './boxcar2';\nimport discord from './discord';\nimport email from './email';\nimport emby from './emby';\nimport freemobile from './freemobile';\nimport growl from './growl';\nimport kodi from './kodi';\nimport libnotify from './libnotify';\nimport nmj from './nmj';\nimport nmjv2 from './nmjv2';\nimport plex from './plex';\nimport prowl from './prowl';\nimport pushalot from './pushalot';\nimport pushbullet from './pushbullet';\nimport join from './join';\nimport pushover from './pushover';\nimport pyTivo from './py-tivo';\nimport slack from './slack';\nimport synology from './synology';\nimport synologyIndex from './synology-index';\nimport telegram from './telegram';\nimport trakt from './trakt';\nimport twitter from './twitter';\n\nconst state = {};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'notifiers') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {};\n\nconst actions = {};\n\nconst modules = {\n boxcar2,\n discord,\n email,\n emby,\n freemobile,\n growl,\n kodi,\n libnotify,\n nmj,\n nmjv2,\n plex,\n prowl,\n pushalot,\n pushbullet,\n join,\n pushover,\n pyTivo,\n slack,\n synology,\n synologyIndex,\n telegram,\n trakt,\n twitter\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions,\n modules\n};\n","import { ADD_CONFIG } from '../../mutation-types';\n\nconst state = {\n naming: {\n pattern: null,\n multiEp: null,\n enableCustomNamingSports: null,\n enableCustomNamingAirByDate: null,\n patternSports: null,\n patternAirByDate: null,\n enableCustomNamingAnime: null,\n patternAnime: null,\n animeMultiEp: null,\n animeNamingType: null,\n stripYear: null\n },\n showDownloadDir: null,\n processAutomatically: null,\n processMethod: null,\n deleteRarContent: null,\n unpack: null,\n noDelete: null,\n reflinkAvailable: null,\n postponeIfSyncFiles: null,\n autoPostprocessorFrequency: 10,\n airdateEpisodes: null,\n moveAssociatedFiles: null,\n allowedExtensions: [],\n addShowsWithoutDir: null,\n createMissingShowDirs: null,\n renameEpisodes: null,\n postponeIfNoSubs: null,\n nfoRename: null,\n syncFiles: [],\n fileTimestampTimezone: 'local',\n extraScripts: [],\n extraScriptsUrl: null,\n multiEpStrings: {},\n downloadHandler: {\n enabled: null,\n frequency: null,\n minFrequency: null,\n torrentSeedRatio: null,\n torrentSeedAction: null\n },\n ffmpeg: {\n checkStreams: null,\n path: ''\n }\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'postprocessing') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG } from '../../mutation-types';\n\nconst state = {\n filters: {\n ignoreUnknownSubs: false,\n ignored: [\n 'german',\n 'french',\n 'core2hd',\n 'dutch',\n 'swedish',\n 'reenc',\n 'MrLss',\n 'dubbed'\n ],\n undesired: [\n 'internal',\n 'xvid'\n ],\n ignoredSubsList: [\n 'dk',\n 'fin',\n 'heb',\n 'kor',\n 'nor',\n 'nordic',\n 'pl',\n 'swe'\n ],\n required: [],\n preferred: []\n },\n general: {\n minDailySearchFrequency: 10,\n minBacklogFrequency: 720,\n dailySearchFrequency: 40,\n checkPropersInterval: '4h',\n usenetRetention: 500,\n maxCacheAge: 30,\n backlogDays: 7,\n backlogFrequency: 720,\n cacheTrimming: false,\n downloadPropers: true,\n failedDownloads: {\n enabled: null,\n deleteFailed: null\n },\n removeFromClient: false,\n randomizeProviders: false,\n propersSearchDays: 2,\n allowHighPriority: true,\n trackersList: [\n 'udp://tracker.coppersurfer.tk:6969/announce',\n 'udp://tracker.leechers-paradise.org:6969/announce',\n 'udp://tracker.zer0day.to:1337/announce',\n 'udp://tracker.opentrackr.org:1337/announce',\n 'http://tracker.opentrackr.org:1337/announce',\n 'udp://p4p.arenabg.com:1337/announce',\n 'http://p4p.arenabg.com:1337/announce',\n 'udp://explodie.org:6969/announce',\n 'udp://9.rarbg.com:2710/announce',\n 'http://explodie.org:6969/announce',\n 'http://tracker.dler.org:6969/announce',\n 'udp://public.popcorn-tracker.org:6969/announce',\n 'udp://tracker.internetwarriors.net:1337/announce',\n 'udp://ipv4.tracker.harry.lu:80/announce',\n 'http://ipv4.tracker.harry.lu:80/announce',\n 'udp://mgtracker.org:2710/announce',\n 'http://mgtracker.org:6969/announce',\n 'udp://tracker.mg64.net:6969/announce',\n 'http://tracker.mg64.net:6881/announce',\n 'http://torrentsmd.com:8080/announce'\n ]\n }\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'search') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {};\n\nconst actions = {};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG } from '../../mutation-types';\n\nconst state = {\n acceptUnknownEmbeddedSubs: null,\n codeFilter: [],\n enabled: null,\n eraseCache: null,\n extraScripts: [],\n finderFrequency: null,\n hearingImpaired: null,\n ignoreEmbeddedSubs: null,\n keepOnlyWanted: null,\n location: null,\n logHistory: null,\n multiLanguage: null,\n perfectMatch: null,\n preScripts: [],\n providerLogins: {\n addic7ed: { user: '', pass: '' },\n legendastv: { user: '', pass: '' },\n opensubtitles: { user: '', pass: '' }\n },\n services: [],\n stopAtFirst: null,\n wantedLanguages: [],\n wikiUrl: ''\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'subtitles') {\n state = Object.assign(state, config);\n }\n }\n};\n\nconst getters = {};\n\nconst actions = {\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import { ADD_CONFIG, ADD_REMOTE_BRANCHES, ADD_SHOW_QUEUE_ITEM } from '../../mutation-types';\nimport { api, apiRoute } from '../../../api.js';\n\n/**\n * An object representing a scheduler.\n *\n * If a scheduler isn't initialized on the backend,\n * this object will only have the `key` and `name` properties.\n * @typedef {object} Scheduler\n * @property {string} key\n * A camelCase key representing this scheduler.\n * @property {string} name\n * The scheduler's name.\n * @property {boolean} [isAlive]\n * Is the scheduler alive?\n * @property {boolean|string} [isEnabled]\n * Is the scheduler enabled? For the `backlog` scheduler, the value might be `Paused`.\n * @property {boolean} [isActive]\n * Is the scheduler's action currently running?\n * @property {string|null} [startTime]\n * The time of day in which this scheduler runs (format: ISO-8601 time), or `null` if not applicable.\n * @property {number} [cycleTime]\n * The duration in milliseconds between each run, or `null` if not applicable.\n * @property {number} [nextRun]\n * The duration in milliseconds until the next run.\n * @property {string} [lastRun]\n * The date and time of the previous run (format: ISO-8601 date-time).\n * @property {boolean} [isSilent]\n * Is the scheduler silent?\n */\n\nconst state = {\n branch: null,\n memoryUsage: null,\n schedulers: [],\n showQueue: [],\n diskSpace: [],\n sslVersion: null,\n pythonVersion: null,\n pid: null,\n os: null,\n logDir: null,\n dbPath: null,\n configFile: null,\n databaseVersion: {\n major: null,\n minor: null\n },\n locale: null,\n timezone: null,\n localUser: null,\n programDir: null,\n dataDir: null,\n cacheDir: null,\n appArgs: [],\n webRoot: null,\n runsInDocker: null,\n newestVersionMessage: null,\n gitRemoteBranches: [],\n cpuPresets: null,\n news: {\n lastRead: null,\n latest: null,\n unread: null\n },\n ffprobeVersion: null\n};\n\nconst mutations = {\n [ADD_CONFIG](state, { section, config }) {\n if (section === 'system') {\n state = Object.assign(state, config);\n }\n },\n [ADD_REMOTE_BRANCHES](state, branches) {\n state.gitRemoteBranches = branches;\n }\n};\n\nconst getters = {\n getScheduler: state => {\n /**\n * Get a scheduler object using a key.\n *\n * @param {string} key The combined quality to split.\n * @returns {Scheduler|object} The scheduler object or an empty object if not found.\n */\n const _getScheduler = key => state.schedulers.find(scheduler => key === scheduler.key) || {};\n return _getScheduler;\n }\n};\n\nconst actions = {\n getGitRemoteBranches(context) {\n const { commit } = context;\n return apiRoute('home/branchForceUpdate')\n .then(response => {\n if (response.data && response.data.branches.length > 0) {\n commit(ADD_REMOTE_BRANCHES, response.data.branches);\n return response.data.branches;\n }\n });\n },\n getShowQueue(context) {\n const { commit } = context;\n return api.get('/config/system/showQueue').then(res => {\n const showQueue = res.data;\n const config = { showQueue };\n commit(ADD_CONFIG, { section: 'system', config });\n return showQueue;\n });\n },\n updateQueueItemShow(context, queueItem) {\n // Update store's show queue item. (provided through websocket)\n const { commit } = context;\n return commit(ADD_SHOW_QUEUE_ITEM, queueItem);\n }\n\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import Vue from 'vue';\nimport { ADD_QUEUE_ITEM } from '../mutation-types';\n\nconst state = {\n queueitems: []\n};\n\nconst mutations = {\n [ADD_QUEUE_ITEM](state, queueItem) {\n const existingQueueItem = state.queueitems.find(item => item.identifier === queueItem.identifier);\n\n if (existingQueueItem) {\n Vue.set(state.queueitems, state.queueitems.indexOf(existingQueueItem), { ...existingQueueItem, ...queueItem });\n } else {\n Vue.set(state.queueitems, state.queueitems.length, queueItem);\n }\n }\n};\n\nconst getters = {\n getQueueItemsByName: state => name => state.queueitems.filter(q => name.includes(q.name)),\n getQueueItemsByIdentifier: state => identifier => state.queueitems.filter(q => q.identifier === identifier)\n};\n\nconst actions = {\n updateQueueItem(context, queueItem) {\n // Update store's search queue item. (provided through websocket)\n const { commit } = context;\n return commit(ADD_QUEUE_ITEM, queueItem);\n }\n};\n\nexport default {\n state,\n mutations,\n getters,\n actions\n};\n","import Vue from 'vue';\nimport Vuex, { Store } from 'vuex';\nimport VueNativeSock from 'vue-native-websocket';\nimport {\n auth,\n config,\n defaults,\n history,\n notifications,\n provider,\n recommended,\n schedule,\n shows,\n socket,\n stats,\n queue\n} from './modules';\nimport {\n SOCKET_ONOPEN,\n SOCKET_ONCLOSE,\n SOCKET_ONERROR,\n SOCKET_ONMESSAGE,\n SOCKET_RECONNECT,\n SOCKET_RECONNECT_ERROR\n} from './mutation-types';\n\nVue.use(Vuex);\n\nconst store = new Store({\n modules: {\n auth,\n config,\n defaults,\n history,\n notifications,\n provider,\n recommended,\n schedule,\n shows,\n socket,\n stats,\n queue\n },\n state: {},\n mutations: {},\n getters: {},\n actions: {}\n});\n\n// Keep as a non-arrow function for `this` context.\nconst passToStoreHandler = function(eventName, event, next) {\n const target = eventName.toUpperCase();\n const eventData = event.data;\n\n if (target === 'SOCKET_ONMESSAGE') {\n const message = JSON.parse(eventData);\n const { data, event } = message;\n\n // Show the notification to the user\n if (event === 'notification') {\n const { body, hash, type, title } = data;\n window.displayNotification(type, title, body, hash);\n } else if (event === 'configUpdated') {\n const { section, config } = data;\n this.store.dispatch('updateConfig', { section, config });\n } else if (event === 'showUpdated' || event === 'showAdded') {\n this.store.dispatch('updateShow', data);\n } else if (event === 'showRemoved') {\n // We need this for the QueueItemChangeIndexer\n this.store.dispatch('removeShow', data);\n } else if (event === 'addManualSearchResult') {\n this.store.dispatch('addManualSearchResult', data);\n } else if (event === 'QueueItemUpdate') {\n this.store.dispatch('updateQueueItem', data);\n } else if (event === 'QueueItemShow') {\n // Used as a generic showqueue item. If you want to know the specific action (update, refresh, remove, etc.)\n // Use queueItem.name. Like queueItem.name === 'REFRESH'.\n if (data.name === 'REMOVE-SHOW') {\n this.store.dispatch('removeShow', data.show);\n } else {\n this.store.dispatch('updateShowQueueItem', data);\n }\n } else if (event === 'historyUpdate') {\n this.store.dispatch('updateHistory', data);\n } else {\n window.displayNotification('info', event, data);\n }\n }\n\n // Resume normal 'passToStore' handling\n next(eventName, event);\n};\n\nconst websocketUrl = (() => {\n const { protocol, host } = window.location;\n const proto = protocol === 'https:' ? 'wss:' : 'ws:';\n const WSMessageUrl = '/ui';\n const webRoot = document.body.getAttribute('web-root');\n return `${proto}//${host}${webRoot}/ws${WSMessageUrl}`;\n})();\n\nVue.use(VueNativeSock, websocketUrl, {\n store,\n format: 'json',\n reconnection: true, // (Boolean) whether to reconnect automatically (false)\n reconnectionAttempts: 2, // (Number) number of reconnection attempts before giving up (Infinity),\n reconnectionDelay: 1000, // (Number) how long to initially wait before attempting a new (1000)\n passToStoreHandler, // (Function|) Handler for events triggered by the WebSocket (false)\n mutations: {\n SOCKET_ONOPEN,\n SOCKET_ONCLOSE,\n SOCKET_ONERROR,\n SOCKET_ONMESSAGE,\n SOCKET_RECONNECT,\n SOCKET_RECONNECT_ERROR\n }\n});\n\nexport default store;\n","const LOGIN_PENDING = '🔒 Logging in';\nconst LOGIN_SUCCESS = '🔒 ✅ Login Successful';\nconst LOGIN_FAILED = '🔒 ❌ Login Failed';\nconst LOGOUT = '🔒 Logout';\nconst REFRESH_TOKEN = '🔒 Refresh Token';\nconst REMOVE_AUTH_ERROR = '🔒 Remove Auth Error';\nconst SOCKET_ONOPEN = '🔗 ✅ WebSocket connected';\nconst SOCKET_ONCLOSE = '🔗 ❌ WebSocket disconnected';\nconst SOCKET_ONERROR = '🔗 ❌ WebSocket error';\nconst SOCKET_ONMESSAGE = '🔗 ✉️ 📥 WebSocket message received';\nconst SOCKET_RECONNECT = '🔗 🔃 WebSocket reconnecting';\nconst SOCKET_RECONNECT_ERROR = '🔗 🔃 ❌ WebSocket reconnection attempt failed';\nconst NOTIFICATIONS_ENABLED = '🔔 Notifications Enabled';\nconst NOTIFICATIONS_DISABLED = '🔔 Notifications Disabled';\nconst ADD_CONFIG = '⚙️ Config added to store';\nconst UPDATE_LAYOUT_LOCAL = '⚙️ Local layout updated in store';\nconst ADD_REMOTE_BRANCHES = '⚙️ Add git remote branches to store';\nconst ADD_SHOW = '📺 Show added to store';\nconst ADD_SHOW_CONFIG = '📺 Show config updated in store';\nconst ADD_SHOWS = '📺 Multiple Shows added to store in bulk';\nconst ADD_SHOW_EPISODE = '📺 Shows season with episodes added to store';\nconst ADD_STATS = 'ℹ️ Statistics added to store';\nconst ADD_RECOMMENDED_SHOW = '📺 Recommended Show added to store';\nconst SET_RECOMMENDED_SHOWS = '📺 Recommended Shows added to store';\nconst SET_RECOMMENDED_SHOWS_OPTIONS = '📺 Recommended Show Options added to store';\nconst SET_STATS = 'SET_STATS';\nconst SET_MAX_DOWNLOAD_COUNT = 'SET_MAX_DOWNLOAD_COUNT';\nconst ADD_SHOW_SCENE_EXCEPTION = '📺 Add a scene exception';\nconst REMOVE_SHOW_SCENE_EXCEPTION = '📺 Remove a scene exception';\nconst REMOVE_SHOW_CONFIG_TEMPLATE = '📺 Remove a shows search template';\nconst ADD_HISTORY = '📺 History added to store';\nconst ADD_HISTORY_ROW = '📺 History row added to store';\nconst ADD_SHOW_CONFIG_TEMPLATE = '📺 Search template added to shows templates';\nconst ADD_SHOW_HISTORY = '📺 Show specific History added to store';\nconst ADD_SHOW_EPISODE_HISTORY = \"📺 Show's episode specific History added to store\";\nconst ADD_PROVIDER = '⛽ Provider added to store';\nconst ADD_PROVIDERS = '⛽ Provider list added to store';\nconst ADD_PROVIDER_CACHE = '⛽ Provider cache results added to store';\nconst ADD_SEARCH_RESULTS = '⛽ New search results added for provider';\nconst ADD_QUEUE_ITEM = '🔍 Search queue item updated';\nconst ADD_SHOW_QUEUE_ITEM = '📺 Show queue item added to store';\nconst REMOVE_SHOW = '📺 Show removed from store';\nconst REMOVE_PROVIDER = '⛽ Provider removed';\nconst UPDATE_SHOWLIST_DEFAULT = '⚙️ Anime config showlist default updated';\nconst ADD_SCHEDULE = '📅 Schedule information added';\n\nexport {\n LOGIN_PENDING,\n LOGIN_SUCCESS,\n LOGIN_FAILED,\n LOGOUT,\n REFRESH_TOKEN,\n REMOVE_AUTH_ERROR,\n SOCKET_ONOPEN,\n SOCKET_ONCLOSE,\n SOCKET_ONERROR,\n SOCKET_ONMESSAGE,\n SOCKET_RECONNECT,\n SOCKET_RECONNECT_ERROR,\n NOTIFICATIONS_ENABLED,\n NOTIFICATIONS_DISABLED,\n ADD_CONFIG,\n UPDATE_LAYOUT_LOCAL,\n ADD_HISTORY,\n ADD_HISTORY_ROW,\n ADD_SHOW,\n ADD_STATS,\n ADD_SHOW_CONFIG,\n ADD_RECOMMENDED_SHOW,\n SET_RECOMMENDED_SHOWS,\n SET_RECOMMENDED_SHOWS_OPTIONS,\n ADD_SHOWS,\n ADD_SHOW_EPISODE,\n ADD_REMOTE_BRANCHES,\n SET_STATS,\n SET_MAX_DOWNLOAD_COUNT,\n ADD_SHOW_SCENE_EXCEPTION,\n REMOVE_SHOW_SCENE_EXCEPTION,\n REMOVE_SHOW_CONFIG_TEMPLATE,\n ADD_SHOW_HISTORY,\n ADD_SHOW_EPISODE_HISTORY,\n ADD_PROVIDER,\n ADD_PROVIDERS,\n ADD_PROVIDER_CACHE,\n ADD_SEARCH_RESULTS,\n ADD_QUEUE_ITEM,\n ADD_SHOW_QUEUE_ITEM,\n REMOVE_SHOW,\n REMOVE_PROVIDER,\n UPDATE_SHOWLIST_DEFAULT,\n ADD_SHOW_CONFIG_TEMPLATE,\n ADD_SCHEDULE\n};\n","export const isDevelopment = process.env.NODE_ENV === 'development';\n\n/**\n * Calculate the combined value of the selected qualities.\n * @param {number[]} allowedQualities - Array of allowed qualities.\n * @param {number[]} [preferredQualities=[]] - Array of preferred qualities.\n * @returns {number} An unsigned integer.\n */\nexport const combineQualities = (allowedQualities, preferredQualities = []) => {\n const reducer = (accumulator, currentValue) => accumulator | currentValue;\n const allowed = allowedQualities.reduce((a, c) => reducer(a, c), 0);\n const preferred = preferredQualities.reduce((a, c) => reducer(a, c), 0);\n\n return (allowed | (preferred << 16)) >>> 0; // Unsigned int\n};\n\n/**\n * Return a human readable representation of the provided size.\n * @param {number} bytes - The size in bytes to convert\n * @param {boolean} [useDecimal=false] - Use decimal instead of binary prefixes (e.g. kilo = 1000 instead of 1024)\n * @returns {string} The converted size.\n */\nexport const humanFileSize = (bytes, useDecimal = false) => {\n if (!bytes) {\n bytes = 0;\n }\n\n bytes = Math.max(bytes, 0);\n\n const thresh = useDecimal ? 1000 : 1024;\n if (Math.abs(bytes) < thresh) {\n return bytes.toFixed(2) + ' B';\n }\n const units = ['KB', 'MB', 'GB', 'TB', 'PB'];\n let u = -1;\n do {\n bytes /= thresh;\n ++u;\n } while (Math.abs(bytes) >= thresh && u < units.length - 1);\n\n return `${bytes.toFixed(2)} ${units[u]}`;\n};\n\n// Maps Python date/time tokens to date-fns tokens\n// Python: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior\n// date-fns: https://date-fns.org/v2.0.0-alpha.27/docs/format\nconst datePresetMap = {\n '%a': 'ccc', // Weekday name, short\n '%A': 'cccc', // Weekday name, full\n '%w': 'c', // Weekday number\n '%d': 'dd', // Day of the month, zero-padded\n '%b': 'LLL', // Month name, short\n '%B': 'LLLL', // Month name, full\n '%m': 'MM', // Month number, zero-padded\n '%y': 'yy', // Year without century, zero-padded\n '%Y': 'yyyy', // Year with century\n '%H': 'HH', // Hour (24-hour clock), zero-padded\n '%I': 'hh', // Hour (12-hour clock), zero-padded\n '%p': 'a', // AM / PM\n '%M': 'mm', // Minute, zero-padded\n '%S': 'ss', // Second, zero-padded\n '%f': 'SSSSSS', // Microsecond, zero-padded\n '%z': 'xx', // UTC offset in the form +HHMM or -HHMM\n // '%Z': '', // [UNSUPPORTED] Time zone name\n '%j': 'DDD', // Day of the year, zero-padded\n '%U': 'II', // Week number of the year (Sunday as the first day of the week), zero padded\n '%W': 'ww', // Week number of the year (Monday as the first day of the week)\n '%c': 'Pp', // Locale's appropriate date and time representation\n '%x': 'P', // Locale's appropriate date representation\n '%X': 'p', // Locale's appropriate time representation\n '%%': '%' // Literal '%' character\n};\n\n/**\n * Convert a Python date format to a DateFns compatible date format.\n * Automatically escapes non-token characters.\n * @param {string} format - The Python date format.\n * @returns {string} The new format.\n */\nexport const convertDateFormat = format => {\n let newFormat = '';\n let index = 0;\n let escaping = false;\n while (index < format.length) {\n const chr = format.charAt(index);\n // Escape single quotes\n if (chr === \"'\") {\n newFormat += chr + chr;\n } else if (chr === '%') {\n if (escaping) {\n escaping = false;\n newFormat += \"'\";\n }\n\n ++index;\n if (index === format.length) {\n throw new Error(`Single % at end of format string: ${format}`);\n }\n const chr2 = format.charAt(index);\n const tokenKey = chr + chr2;\n const token = datePresetMap[tokenKey];\n if (token === undefined) {\n throw new Error(`Unrecognized token \"${tokenKey}\" in format string: ${format}`);\n }\n newFormat += token;\n // Only letters need to escaped\n } else if (/[^a-z]/i.test(chr)) {\n if (escaping) {\n escaping = false;\n newFormat += \"'\";\n }\n newFormat += chr;\n // Escape anything else\n } else {\n if (!escaping) {\n escaping = true;\n newFormat += \"'\";\n }\n newFormat += chr;\n }\n\n ++index;\n\n if (index === format.length && escaping) {\n newFormat += \"'\";\n }\n }\n return newFormat;\n};\n\n/**\n * Create an array with unique strings\n * @param {string[]} array - array with strings\n * @returns {string[]} array with unique strings\n */\nexport const arrayUnique = array => {\n return array.reduce((result, item) => {\n return result.includes(item) ? result : result.concat(item);\n }, []);\n};\n\n/**\n * Exclude strings out of the array `exclude` compared to the strings in the array baseArray.\n * @param {string[]} baseArray - array of strings\n * @param {string[]} exclude - array of strings which we want to exclude in baseArray\n * @returns {string[]} reduced array\n */\nexport const arrayExclude = (baseArray, exclude) => {\n return baseArray.filter(item => !exclude.includes(item));\n};\n\n/**\n * A simple wait function.\n * @param {number} ms - Time to wait.\n * @returns {Promise} Resolves when done waiting.\n */\nexport const wait = /* istanbul ignore next */ ms => new Promise(resolve => setTimeout(resolve, ms));\n\n/**\n * Returns when `check` evaluates as truthy.\n * @param {function} check - Function to evaluate every poll interval.\n * @param {number} [poll=100] - Interval to check, in milliseconds.\n * @param {number} [timeout=3000] - Timeout to stop waiting after, in milliseconds.\n * @returns {Promise} The approximate amount of time waited, in milliseconds.\n * @throws Will throw an error when the timeout has been exceeded.\n */\nexport const waitFor = /* istanbul ignore next */ async (check, poll = 100, timeout = 3000) => {\n let ms = 0;\n while (!check()) {\n await wait(poll); // eslint-disable-line no-await-in-loop\n ms += poll;\n if (ms > timeout) {\n throw new Error(`waitFor timed out (${timeout}ms)`);\n }\n }\n return ms;\n};\n\n/**\n * Transform a season and episode number to an episode slug.\n * If the episode number is not provided, return a season slug.\n * @param {number} season - Season number.\n * @param {number} episode - Episode number.\n * @returns {string} Episode or Season slug.\n */\nexport const episodeToSlug = (season, episode) => {\n if (episode) {\n return `s${season.toString().padStart(2, '0')}e${episode.toString().padStart(2, '0')}`;\n }\n return `s${season.toString().padStart(2, '0')}`;\n};\n\n/**\n * Transform a showSlug to separate indexer and showId.\n * @param {string} showSlug - Show slug.\n * @returns {object} Object with attributes indexer and showId.\n */\nexport const showSlugToId = showSlug => {\n const show = { indexer: undefined, showId: undefined };\n if (showSlug === undefined) {\n return show;\n }\n\n const match = showSlug.toLowerCase().match(/([a-z]+)(\\d+)/);\n show.indexer = match[1];\n show.showId = match[2];\n return show;\n};\n\n/**\n * Force reload.\n * Force a reload of the page and ignore local cache.\n * window.location.reload(true) doesn't seem to work on chrome. But the self assign does.\n*/\nexport const forceBrowserReload = () => {\n if (Boolean(window.chrome) && Boolean(window.chrome.webstore)) {\n window.location.href = window.location.href; // eslint-disable-line no-self-assign\n } else {\n window.location.reload(true);\n }\n};\n\n/**\n * Divmod\n *\n * Calculate a divider and mod.\n * @param {number} seconds - Number of seconds to divmod.\n * @param {number} div - Divider and modulus.\n * @returns {object} - And object with keys quotient and remainder.\n */\nexport const divmod = (seconds, div) => {\n const quotient = Math.floor(seconds / div);\n const remainder = seconds % div;\n return { quotient, remainder };\n};\n","import { api } from '../api';\n\n/**\n * Attach a jquery qtip to elements with the .imdbstars class.\n */\nexport const attachImdbTooltip = () => {\n $('.imdbstars').qtip({\n content: {\n text() {\n // Retrieve content from custom attribute of the $('.selector') elements.\n return $(this).attr('qtip-content');\n }\n },\n show: {\n solo: true\n },\n position: {\n my: 'right center',\n at: 'center left',\n adjust: {\n y: 0,\n x: -6\n }\n },\n style: {\n tip: {\n corner: true,\n method: 'polygon'\n },\n classes: 'qtip-rounded qtip-shadow ui-tooltip-sb'\n }\n });\n};\n\n/**\n * Attach a default qtip to elements with the addQTip class.\n */\nexport const addQTip = () => {\n $('.addQTip').each((_, element) => {\n $(element).css({\n cursor: 'help',\n 'text-shadow': '0px 0px 0.5px #666'\n });\n\n const my = $(element).data('qtip-my') || 'left center';\n const at = $(element).data('qtip-at') || 'middle right';\n\n $(element).qtip({\n show: {\n solo: true\n },\n position: {\n my,\n at\n },\n style: {\n tip: {\n corner: true,\n method: 'polygon'\n },\n classes: 'qtip-rounded qtip-shadow ui-tooltip-sb'\n }\n });\n });\n};\n\n/**\n * Start checking for running searches.\n * @param {String} showSlug - Show slug\n * @param {Object} vm - vue instance\n */\nexport const updateSearchIcons = (showSlug, vm) => {\n if ($.fn.updateSearchIconsStarted || !showSlug) {\n return;\n }\n\n $.fn.updateSearchIconsStarted = true;\n $.fn.forcedSearches = [];\n\n const enableLink = el => {\n el.disabled = false;\n };\n\n const disableLink = el => {\n el.disabled = true;\n };\n\n /**\n * Update search icons based on it's current search status (queued, error, searched)\n * @param {*} results - Search queue results\n * @param {*} vm - Vue instance\n */\n const updateImages = results => {\n $.each(results, (_, ep) => {\n // Get td element for current ep\n const loadingImage = 'loading16.gif';\n const queuedImage = 'queued.png';\n const searchImage = 'search16.png';\n\n if (ep.show.slug !== vm.show.id.slug) {\n return true;\n }\n\n // Try to get the Element\n const img = vm.$refs[`search-${ep.episode.slug}`];\n if (img) {\n if (ep.search.status.toLowerCase() === 'searching') {\n // El=$('td#' + ep.season + 'x' + ep.episode + '.search img');\n img.title = 'Searching';\n img.alt = 'Searching';\n img.src = 'images/' + loadingImage;\n disableLink(img);\n } else if (ep.search.status.toLowerCase() === 'queued') {\n // El=$('td#' + ep.season + 'x' + ep.episode + '.search img');\n img.title = 'Queued';\n img.alt = 'queued';\n img.src = 'images/' + queuedImage;\n disableLink(img);\n } else if (ep.search.status.toLowerCase() === 'finished') {\n // El=$('td#' + ep.season + 'x' + ep.episode + '.search img');\n img.title = 'Searching';\n img.alt = 'searching';\n img.src = 'images/' + searchImage;\n enableLink(img);\n }\n }\n });\n };\n\n /**\n * Check the search queues / history for current or past searches and update the icons.\n */\n const checkManualSearches = () => {\n let pollInterval = 5000;\n\n api.get(`search/${showSlug}`)\n .then(response => {\n if (response.data.results && response.data.results.length > 0) {\n pollInterval = 5000;\n } else {\n pollInterval = 15000;\n }\n\n updateImages(response.data.results);\n }).catch(error => {\n console.error(String(error));\n pollInterval = 30000;\n }).finally(() => {\n setTimeout(checkManualSearches, pollInterval);\n });\n };\n\n checkManualSearches();\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vgt-table-styling .vgt-table{width:100%;margin-right:auto;margin-left:auto;text-align:left;border-spacing:0}.vgt-table-styling .vgt-table th,.vgt-table-styling .vgt-table td{padding:4px;vertical-align:middle}.vgt-table-styling .vgt-table th:first-child,.vgt-table-styling .vgt-table td:first-child{border-left:none}.vgt-table-styling .vgt-table th{text-align:center;border-collapse:collapse;font-weight:normal;position:relative}.vgt-table-styling .vgt-table span.break-word{word-wrap:break-word}.vgt-table-styling .vgt-table thead th.sorting.sorting-asc{background-position-x:right;background-position-y:bottom}.vgt-table-styling .vgt-table thead th.sorting{background-repeat:no-repeat}.vgt-table-styling .vgt-table thead th.sorting.sorting-desc{background-color:#555;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}.vgt-table-styling .vgt-table thead th.sorting.sorting-asc{background-color:#555;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");background-position-x:right;background-position-y:bottom}.vgt-table-styling .vgt-table th.sortable button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;position:absolute;top:0;left:0;width:100%;height:100%}.vgt-table-styling .vgt-table thead th{padding:4px;cursor:default}.vgt-table-styling .vgt-table input.tablesorter-filter{width:98%;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.vgt-table-styling .vgt-table tr.tablesorter-filter-row,.vgt-table-styling .vgt-table tr.tablesorter-filter-row td{text-align:center}.vgt-table-styling .vgt-table input.tablesorter-filter-row .disabled{display:none}.vgt-table-styling .vgt-table tfoot tr{text-align:center;border-collapse:collapse}.vgt-table-styling .vgt-table tfoot a{text-decoration:none}.vgt-table-styling .vgt-table th.vgt-row-header{text-align:left}.vgt-table-styling .vgt-table .season-header{display:inline;margin-left:5px}.vgt-table-styling .vgt-table tr.spacer{height:25px}.vgt-table-styling .vgt-table tr:hover{opacity:.9}.vgt-table-styling .vgt-table tr.status td>span{color:#000}.vgt-table-styling .vgt-table span.episode-title>a{text-decoration:none}.vgt-table-styling .vgt-table span.episode-title>a:hover,.vgt-table-styling .vgt-table span.episode-title>a:focus{text-decoration:underline}.vgt-table-styling .vgt-table .skipped{background-color:#bedeed}.vgt-table-styling .vgt-table .snatched{background-color:#ebc1ea}.vgt-table-styling .vgt-table .downloaded{background-color:#ffda8a}.vgt-table-styling .vgt-table .failed{background-color:#f99}.vgt-table-styling .vgt-table .subtitled{background-color:#bedeed}.vgt-table-styling .vgt-table .archived{background-color:#f5f1e4}.vgt-table-styling .tablesorter-header-inner{padding:0 2px;text-align:center}.vgt-table-styling .vgt-dropdown>.button-group{position:relative}.vgt-table-styling .dropdown-toggle{position:absolute;z-index:1;top:.1em;right:.1em;width:1em;transition:width .2s ease-in-out}.vgt-table-styling .dropdown-toggle:hover,.vgt-table-styling .dropdown-toggle:active{width:2em}.vgt-table-styling .vgt-dropdown-menu{position:absolute;z-index:1;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-clip:padding-box;border-radius:3px;right:0;top:2em}.vgt-table-styling .vgt-dropdown-menu>li>span{display:block;padding:3px 5px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap}.vgt-table-styling .align-center{display:flex;justify-content:center}.vgt-table-styling .span-center>span{display:flex;justify-content:center}.vgt-table-styling .indexer-image :not(:last-child){margin-right:5px}.vgt-table-styling .button-row{width:100%;display:inline-block}.vgt-table-styling .global-ignored td.release span{color:red}.vgt-table-styling .show-ignored td.release span{color:red;font-style:italic}.vgt-table-styling .global-required td.release span{color:green}.vgt-table-styling .show-required td.release span{color:green;font-style:italic}.vgt-table-styling .global-undesired td.release span{color:orange}.vgt-table-styling td.col-footer{text-align:left !important}.vgt-table-styling .vgt-wrap__footer{color:#fff;padding:1em;background-color:#333;margin-bottom:1em;display:flex;justify-content:space-between}.vgt-table-styling .footer__row-count,.vgt-table-styling .footer__navigation__page-info{display:inline}.vgt-table-styling .footer__row-count__label{margin-right:1em}.vgt-table-styling .vgt-wrap__footer .footer__navigation{font-size:14px}.vgt-table-styling .vgt-pull-right{float:right !important}.vgt-table-styling .footer__navigation__page-btn{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;line-height:16px;vertical-align:middle;border-radius:1px}.vgt-table-styling .footer__navigation__page-btn:hover{text-decoration:none;background-position:0 -150px;transition:background-position 0s linear;background-image:none}.vgt-table-styling .footer__navigation__page-btn.disabled{display:none}.vgt-table-styling .vgt-wrap__footer .footer__navigation__page-btn .chevron{width:24px;height:24px;border-radius:15%;position:relative;margin:0 8px}.vgt-table-styling .vgt-wrap__footer .footer__navigation__info,.vgt-table-styling .vgt-wrap__footer .footer__navigation__page-info{display:inline-flex;color:#909399;margin:0 16px;margin-top:0;margin-right:16px;margin-bottom:0;margin-left:16px}.vgt-table-styling .vgt-input{height:23px;line-height:23px;font-size:.9em;width:100%;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;padding:0 10px;margin:0}.vgt-table-styling .vgt-select{height:23px;line-height:23px;font-size:.9em;width:100%;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;padding:0 10px}.vgt-table-styling .schedule tr.today{background-color:#f5f1e4}.vgt-table-styling .schedule tr.soon{background-color:#dfd}.vgt-table-styling .schedule tr.missed{background-color:#fdd}.vgt-table-styling .schedule tr.later{background-color:#bedeed}.vgt-table-styling .schedule tr,.vgt-table-styling .schedule tr a{color:#000}.tooltip-wrapper{float:left;min-width:340px}.invalid{background-color:#ff5b5b}.tooltip{display:block !important;z-index:10000}.tooltip .tooltip-inner{background:#ffef93;color:#555;border-radius:16px;padding:5px 10px 4px;border:1px solid #f1d031;-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.tooltip .tooltip-arrow{width:0;height:0;position:absolute;margin:5px;border:1px solid #ffef93;z-index:1}.tooltip[x-placement^=top]{margin-bottom:5px}.tooltip[x-placement^=top] .tooltip-arrow{border-width:5px 5px 0 5px;border-left-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;bottom:-5px;left:calc(50% - 4px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=bottom]{margin-top:5px}.tooltip[x-placement^=bottom] .tooltip-arrow{border-width:0 5px 5px 5px;border-left-color:transparent !important;border-right-color:transparent !important;border-top-color:transparent !important;top:-5px;left:calc(50% - 4px);margin-top:0;margin-bottom:0}.tooltip[x-placement^=right]{margin-left:5px}.tooltip[x-placement^=right] .tooltip-arrow{border-width:5px 5px 5px 0;border-left-color:transparent !important;border-top-color:transparent !important;border-bottom-color:transparent !important;left:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip[x-placement^=left]{margin-right:5px}.tooltip[x-placement^=left] .tooltip-arrow{border-width:5px 0 5px 5px;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;right:-4px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover .popover-inner{background:#ffef93;color:#555;padding:24px;border-radius:5px;box-shadow:0 5px 30px rgba(0,0,0,.1)}.tooltip.popover .popover-arrow{border-color:#ffef93}.tooltip[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.modal-container{border:1px solid #111;box-shadow:0 0 12px 0 rgba(0,0,0,.175);border-radius:0}.modal-header{padding:9px 15px;border-bottom:none;border-radius:0;background-color:#373737}.modal-content{background:#222;border-radius:0;border:1px solid rgba(0,0,0,.2);box-shadow:0 5px 15px rgba(0,0,0,.5);color:#fff}.modal-body{background:#222;overflow-y:auto}.modal-footer{border-top:none;text-align:center}.vue-tags-input{width:273px;border:1px solid #ccc;border-radius:3px}.vue-tags-input .ti-tag{display:inline-flex;width:100%}.vue-tags-input .ti-input{border:none}.vue-tags-input .country-left{margin-right:5px}svg.back-arrow{color:#337ab7;width:20px;height:20px;float:left;margin-right:1em;cursor:pointer}svg.back-arrow:hover,svg.back-arrow:focus{color:#23527c;transform:translateX(-2px);transition:transform ease-in-out .2s}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/style/vgt-table.scss\",\"webpack://./src/style/v-tooltip.scss\",\"webpack://./src/style/modal.scss\",\"webpack://./src/style/vue-tags.scss\",\"webpack://./src/style/back-arrow.scss\"],\"names\":[],\"mappings\":\"AAEI,8BACI,UAAA,CACA,iBAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CAEA,kEAEI,WAAA,CACA,qBAAA,CAIJ,0FAEI,gBAAA,CAGJ,iCACI,iBAAA,CACA,wBAAA,CACA,kBAAA,CACA,iBAAA,CAGJ,8CACI,oBAAA,CAGJ,2DACI,2BAAA,CACA,4BAAA,CAGJ,+CACI,2BAAA,CAGJ,4DACI,qBAAA,CACA,wDAAA,CAGJ,2DACI,qBAAA,CACA,wDAAA,CACA,2BAAA,CACA,4BAAA,CAGJ,iDACI,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,sBAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CAGJ,uCACI,WAAA,CACA,cAAA,CAGJ,uDACI,SAAA,CACA,WAAA,CACA,6BAAA,CACA,0BAAA,CACA,qBAAA,CAGJ,mHAEI,iBAAA,CAIJ,qEACI,YAAA,CAGJ,uCACI,iBAAA,CACA,wBAAA,CAGJ,sCACI,oBAAA,CAGJ,gDACI,eAAA,CAGJ,6CACI,cAAA,CACA,eAAA,CAGJ,wCACI,WAAA,CAGJ,uCACI,UAAA,CAMJ,gDACI,UAAA,CAGJ,mDACI,oBAAA,CAEA,kHAEI,yBAAA,CAIR,uCACI,wBAAA,CAGJ,wCACI,wBAAA,CAGJ,0CACI,wBAAA,CAGJ,sCACI,qBAAA,CAGJ,yCACI,wBAAA,CAGJ,wCACI,wBAAA,CAIR,6CACI,aAAA,CACA,iBAAA,CAGJ,+CACI,iBAAA,CAGJ,oCACI,iBAAA,CACA,SAAA,CACA,QAAA,CACA,UAAA,CACA,SAAA,CACA,gCAAA,CAEA,qFAEI,SAAA,CAIR,sCACI,iBAAA,CACA,SAAA,CACA,UAAA,CACA,eAAA,CACA,aAAA,CACA,cAAA,CACA,cAAA,CACA,eAAA,CACA,eAAA,CACA,2BAAA,CACA,iBAAA,CACA,OAAA,CACA,OAAA,CAEA,8CACI,aAAA,CACA,eAAA,CACA,UAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CAKR,iCACI,YAAA,CACA,sBAAA,CAGJ,qCACI,YAAA,CACA,sBAAA,CAGJ,oDACI,gBAAA,CAGJ,+BACI,UAAA,CACA,oBAAA,CAGJ,mDACI,SAAA,CAGJ,iDACI,SAAA,CACA,iBAAA,CAGJ,oDACI,WAAA,CAGJ,kDACI,WAAA,CACA,iBAAA,CAGJ,qDACI,YAAA,CAGJ,iCACI,0BAAA,CAGJ,qCACI,UAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CACA,6BAAA,CAGJ,wFAEI,cAAA,CAGJ,6CACI,gBAAA,CAGJ,yDACI,cAAA,CAGJ,mCACI,sBAAA,CAGJ,iDACI,oBAAA,CACA,gBAAA,CACA,eAAA,CACA,cAAA,CACA,gBAAA,CACA,qBAAA,CACA,iBAAA,CAGJ,uDACI,oBAAA,CACA,4BAAA,CACA,wCAAA,CACA,qBAAA,CAGJ,0DACI,YAAA,CAGJ,4EACI,UAAA,CACA,WAAA,CACA,iBAAA,CACA,iBAAA,CACA,YAAA,CAGJ,mIAEI,mBAAA,CACA,aAAA,CACA,aAAA,CACA,YAAA,CACA,iBAAA,CACA,eAAA,CACA,gBAAA,CAGJ,8BACI,WAAA,CACA,gBAAA,CACA,cAAA,CACA,UAAA,CACA,qBAAA,CACA,qBAAA,CACA,qBAAA,CACA,iBAAA,CACA,cAAA,CACA,QAAA,CAGJ,+BACI,WAAA,CACA,gBAAA,CACA,cAAA,CACA,UAAA,CACA,qBAAA,CACA,qBAAA,CACA,qBAAA,CACA,iBAAA,CACA,cAAA,CAIJ,sCACI,wBAAA,CAGJ,qCACI,qBAAA,CAGJ,uCACI,qBAAA,CAGJ,sCACI,wBAAA,CAGJ,kEAEI,UAAA,CCnWR,iBACI,UAAA,CACA,eAAA,CAGJ,SACI,wBARW,CAWf,SACI,wBAAA,CACA,aAAA,CAEA,wBACI,kBAlBO,CAmBP,UAAA,CACA,kBAAA,CACA,oBAAA,CACA,wBAAA,CACA,kDAAA,CACA,+CAAA,CACA,0CAAA,CAGJ,wBACI,OAAA,CACA,QAAA,CACA,iBAAA,CACA,UAAA,CACA,wBAAA,CACA,SAAA,CAKR,2BACI,iBAAA,CACA,0CACI,0BAAA,CACA,wCAAA,CACA,yCAAA,CACA,0CAAA,CACA,WAAA,CACA,oBAAA,CACA,YAAA,CACA,eAAA,CAIR,8BACI,cAAA,CACA,6CACI,0BAAA,CACA,wCAAA,CACA,yCAAA,CACA,uCAAA,CACA,QAAA,CACA,oBAAA,CACA,YAAA,CACA,eAAA,CAIR,6BACI,eAAA,CACA,4CACI,0BAAA,CACA,wCAAA,CACA,uCAAA,CACA,0CAAA,CACA,SAAA,CACA,mBAAA,CACA,aAAA,CACA,cAAA,CAIR,4BACI,gBAAA,CACA,2CACI,0BAAA,CACA,uCAAA,CACA,yCAAA,CACA,0CAAA,CACA,UAAA,CACA,mBAAA,CACA,aAAA,CACA,cAAA,CAKJ,gCACI,kBAjGO,CAkGP,UAAA,CACA,YAAA,CACA,iBAAA,CACA,oCAAA,CAGJ,gCACI,oBAzGO,CA6Gf,2BACI,iBAAA,CACA,SAAA,CACA,uCAAA,CAGJ,4BACI,kBAAA,CACA,SAAA,CACA,uBAAA,CCtHJ,iBACI,qBAAA,CACA,sCAAA,CACA,eAAA,CAGJ,cACI,gBAAA,CACA,kBAAA,CACA,eAAA,CACA,wBAAA,CAGJ,eACI,eAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,UAAA,CAGJ,YACI,eAAA,CACA,eAAA,CAGJ,cACI,eAAA,CACA,iBAAA,CC7BJ,gBACI,WAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wBACI,mBAAA,CACA,UAAA,CAGJ,0BACI,WAAA,CAGJ,8BACI,gBAAA,CCfR,eACI,aAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,gBAAA,CACA,cAAA,CAGJ,0CAEI,aAAA,CACA,0BAAA,CACA,oCAAA\",\"sourcesContent\":[\"/** Use this as table styling for all table layouts */\\n.vgt-table-styling {\\n .vgt-table {\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n text-align: left;\\n border-spacing: 0;\\n \\n th,\\n td {\\n padding: 4px;\\n vertical-align: middle;\\n }\\n\\n /* remove extra border from left edge */\\n th:first-child,\\n td:first-child {\\n border-left: none;\\n }\\n\\n th {\\n text-align: center;\\n border-collapse: collapse;\\n font-weight: normal;\\n position: relative;\\n }\\n\\n span.break-word {\\n word-wrap: break-word;\\n }\\n\\n thead th.sorting.sorting-asc {\\n background-position-x: right;\\n background-position-y: bottom;\\n }\\n\\n thead th.sorting {\\n background-repeat: no-repeat;\\n }\\n\\n thead th.sorting.sorting-desc {\\n background-color: rgb(85, 85, 85);\\n background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);\\n }\\n\\n thead th.sorting.sorting-asc {\\n background-color: rgb(85, 85, 85);\\n background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);\\n background-position-x: right;\\n background-position-y: bottom;\\n }\\n\\n th.sortable button {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n background: transparent;\\n border: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n }\\n\\n thead th {\\n padding: 4px;\\n cursor: default;\\n }\\n\\n input.tablesorter-filter {\\n width: 98%;\\n height: auto;\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n }\\n\\n tr.tablesorter-filter-row,\\n tr.tablesorter-filter-row td {\\n text-align: center;\\n }\\n\\n /* optional disabled input styling */\\n input.tablesorter-filter-row .disabled {\\n display: none;\\n }\\n\\n tfoot tr {\\n text-align: center;\\n border-collapse: collapse;\\n }\\n\\n tfoot a {\\n text-decoration: none;\\n }\\n\\n th.vgt-row-header {\\n text-align: left;\\n }\\n\\n .season-header {\\n display: inline;\\n margin-left: 5px;\\n }\\n\\n tr.spacer {\\n height: 25px;\\n }\\n\\n tr:hover {\\n opacity: 0.9;\\n }\\n\\n /* When using collored rows (using the episode status name, Snatched, Downloaded, Failed, etc.)\\n * we'd like to have the text always black.\\n */\\n tr.status td > span {\\n color: rgb(0, 0, 0);\\n }\\n\\n span.episode-title > a {\\n text-decoration: none;\\n \\n &:hover,\\n &:focus {\\n text-decoration: underline;\\n }\\n }\\n\\n .skipped {\\n background-color: rgb(190, 222, 237);\\n }\\n \\n .snatched {\\n background-color: rgb(235, 193, 234);\\n }\\n \\n .downloaded {\\n background-color: rgb(255, 218, 138);\\n }\\n \\n .failed {\\n background-color: rgb(255, 153, 153);\\n }\\n \\n .subtitled {\\n background-color: rgb(190, 222, 237);\\n }\\n\\n .archived {\\n background-color: rgb(245, 241, 228);\\n }\\n } \\n\\n .tablesorter-header-inner {\\n padding: 0 2px;\\n text-align: center;\\n }\\n\\n .vgt-dropdown > .button-group {\\n position: relative;\\n }\\n\\n .dropdown-toggle {\\n position: absolute;\\n z-index: 1;\\n top: 0.1em;\\n right: 0.1em;\\n width: 1em;\\n transition: width 0.2s ease-in-out;\\n\\n &:hover,\\n &:active {\\n width: 2em;\\n }\\n }\\n\\n .vgt-dropdown-menu {\\n position: absolute;\\n z-index: 1;\\n float: left;\\n min-width: 160px;\\n padding: 5px 0;\\n margin: 2px 0 0;\\n font-size: 14px;\\n text-align: left;\\n list-style: none;\\n background-clip: padding-box;\\n border-radius: 3px;\\n right: 0;\\n top: 2em;\\n\\n > li > span {\\n display: block;\\n padding: 3px 5px;\\n clear: both;\\n font-weight: 400;\\n line-height: 1.42857143;\\n white-space: nowrap;\\n }\\n \\n }\\n\\n .align-center {\\n display: flex;\\n justify-content: center;\\n }\\n\\n .span-center > span {\\n display: flex;\\n justify-content: center;\\n }\\n\\n .indexer-image :not(:last-child) {\\n margin-right: 5px;\\n }\\n\\n .button-row {\\n width: 100%;\\n display: inline-block;\\n }\\n\\n .global-ignored td.release span {\\n color: red;\\n }\\n\\n .show-ignored td.release span {\\n color: red;\\n font-style: italic;\\n }\\n\\n .global-required td.release span {\\n color: green;\\n }\\n\\n .show-required td.release span {\\n color: green;\\n font-style: italic;\\n }\\n\\n .global-undesired td.release span {\\n color: orange;\\n }\\n\\n td.col-footer {\\n text-align: left !important;\\n }\\n\\n .vgt-wrap__footer {\\n color: rgb(255, 255, 255);\\n padding: 1em;\\n background-color: rgb(51, 51, 51);\\n margin-bottom: 1em;\\n display: flex;\\n justify-content: space-between;\\n }\\n\\n .footer__row-count,\\n .footer__navigation__page-info {\\n display: inline;\\n }\\n\\n .footer__row-count__label {\\n margin-right: 1em;\\n }\\n\\n .vgt-wrap__footer .footer__navigation {\\n font-size: 14px;\\n }\\n\\n .vgt-pull-right {\\n float: right !important;\\n }\\n\\n .footer__navigation__page-btn {\\n display: inline-block;\\n padding: 4px 10px;\\n margin-bottom: 0;\\n font-size: 12px;\\n line-height: 16px;\\n vertical-align: middle;\\n border-radius: 1px;\\n }\\n\\n .footer__navigation__page-btn:hover {\\n text-decoration: none;\\n background-position: 0 -150px;\\n transition: background-position 0s linear;\\n background-image: none;\\n }\\n\\n .footer__navigation__page-btn.disabled {\\n display: none;\\n }\\n\\n .vgt-wrap__footer .footer__navigation__page-btn .chevron {\\n width: 24px;\\n height: 24px;\\n border-radius: 15%;\\n position: relative;\\n margin: 0 8px;\\n }\\n\\n .vgt-wrap__footer .footer__navigation__info,\\n .vgt-wrap__footer .footer__navigation__page-info {\\n display: inline-flex;\\n color: #909399;\\n margin: 0 16px;\\n margin-top: 0;\\n margin-right: 16px;\\n margin-bottom: 0;\\n margin-left: 16px;\\n }\\n\\n .vgt-input {\\n height: 23px;\\n line-height: 23px;\\n font-size: 0.9em;\\n width: 100%;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n padding: 0 10px;\\n margin: 0;\\n }\\n \\n .vgt-select {\\n height: 23px;\\n line-height: 23px;\\n font-size: 0.9em;\\n width: 100%;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n padding: 0 10px;\\n }\\n\\n /* Schedule list layout */\\n .schedule tr.today {\\n background-color: rgb(245, 241, 228);\\n }\\n\\n .schedule tr.soon {\\n background-color: rgb(221, 255, 221);\\n }\\n\\n .schedule tr.missed {\\n background-color: rgb(255, 221, 221);\\n }\\n\\n .schedule tr.later {\\n background-color: rgb(190, 222, 237);\\n }\\n\\n .schedule tr,\\n .schedule tr a {\\n color: rgb(0, 0, 0);\\n }\\n}\",\"// variables\\n$tooltipColor: #ffef93;\\n$tooltipBorderColor: #f1d031;\\n$invalidColor: #ff5b5b;\\n\\n.tooltip-wrapper {\\n float: left;\\n min-width: 340px;\\n}\\n\\n.invalid {\\n background-color: $invalidColor;\\n}\\n\\n.tooltip {\\n display: block !important;\\n z-index: 10000;\\n\\n .tooltip-inner {\\n background: $tooltipColor;\\n color: #555;\\n border-radius: 16px;\\n padding: 5px 10px 4px;\\n border: 1px solid $tooltipBorderColor;\\n -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n }\\n\\n .tooltip-arrow {\\n width: 0;\\n height: 0;\\n position: absolute;\\n margin: 5px;\\n border: 1px solid $tooltipColor;\\n z-index: 1;\\n }\\n\\n}\\n\\n.tooltip[x-placement^='top'] {\\n margin-bottom: 5px;\\n .tooltip-arrow {\\n border-width: 5px 5px 0 5px;\\n border-left-color: transparent !important;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n bottom: -5px;\\n left: calc(50% - 4px);\\n margin-top: 0;\\n margin-bottom: 0;\\n }\\n}\\n\\n.tooltip[x-placement^='bottom'] {\\n margin-top: 5px;\\n .tooltip-arrow {\\n border-width: 0 5px 5px 5px;\\n border-left-color: transparent !important;\\n border-right-color: transparent !important;\\n border-top-color: transparent !important;\\n top: -5px;\\n left: calc(50% - 4px);\\n margin-top: 0;\\n margin-bottom: 0;\\n }\\n}\\n\\n.tooltip[x-placement^='right'] {\\n margin-left: 5px;\\n .tooltip-arrow {\\n border-width: 5px 5px 5px 0;\\n border-left-color: transparent !important;\\n border-top-color: transparent !important;\\n border-bottom-color: transparent !important;\\n left: -4px;\\n top: calc(50% - 5px);\\n margin-left: 0;\\n margin-right: 0;\\n }\\n}\\n\\n.tooltip[x-placement^='left'] {\\n margin-right: 5px;\\n .tooltip-arrow {\\n border-width: 5px 0 5px 5px;\\n border-top-color: transparent !important;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n right: -4px;\\n top: calc(50% - 5px);\\n margin-left: 0;\\n margin-right: 0;\\n }\\n}\\n\\n.tooltip.popover {\\n .popover-inner {\\n background: $tooltipColor;\\n color: #555;\\n padding: 24px;\\n border-radius: 5px;\\n box-shadow: 0 5px 30px rgba(black, 0.1);\\n }\\n\\n .popover-arrow {\\n border-color: $tooltipColor;\\n }\\n}\\n\\n.tooltip[aria-hidden='true'] {\\n visibility: hidden;\\n opacity: 0;\\n transition: opacity 0.15s, visibility 0.15s;\\n}\\n\\n.tooltip[aria-hidden='false'] {\\n visibility: visible;\\n opacity: 1;\\n transition: opacity 0.15s;\\n}\",\"/** Style the modal. This should be saved somewhere, where we create one modal template with slots, and style that. */\\n.modal-container {\\n border: 1px solid rgb(17, 17, 17);\\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.175);\\n border-radius: 0;\\n}\\n\\n.modal-header {\\n padding: 9px 15px;\\n border-bottom: none;\\n border-radius: 0;\\n background-color: rgb(55, 55, 55);\\n}\\n\\n.modal-content {\\n background: rgb(34, 34, 34);\\n border-radius: 0;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\\n color: white;\\n}\\n\\n.modal-body {\\n background: rgb(34, 34, 34);\\n overflow-y: auto;\\n}\\n\\n.modal-footer {\\n border-top: none;\\n text-align: center;\\n}\\n\",\".vue-tags-input {\\n width: 273px;\\n border: 1px solid rgb(204, 204, 204);\\n border-radius: 3px;\\n\\n .ti-tag {\\n display: inline-flex;\\n width: 100%;\\n }\\n\\n .ti-input {\\n border: none;\\n }\\n\\n .country-left {\\n margin-right: 5px;\\n }\\n}\",\"svg.back-arrow {\\n color: #337ab7;\\n width: 20px;\\n height: 20px;\\n float: left;\\n margin-right: 1em;\\n cursor: pointer;\\n}\\n\\nsvg.back-arrow:hover,\\nsvg.back-arrow:focus {\\n color: #23527c;\\n transform: translateX(-2px);\\n transition: transform ease-in-out 0.2s;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ndiv.anidb-release-group-ui-wrapper[data-v-390a1f71] {\\n clear: both;\\n margin-bottom: 20px;\\n}\\ndiv.anidb-release-group-ui-wrapper ul[data-v-390a1f71] {\\n border-style: solid;\\n border-width: thin;\\n padding: 5px 2px 2px 5px;\\n list-style: none;\\n}\\ndiv.anidb-release-group-ui-wrapper li.active[data-v-390a1f71] {\\n background-color: cornflowerblue;\\n}\\ndiv.anidb-release-group-ui-wrapper div.arrow img[data-v-390a1f71] {\\n cursor: pointer;\\n height: 32px;\\n width: 32px;\\n}\\ndiv.anidb-release-group-ui-wrapper img.deleteFromWhitelist[data-v-390a1f71],\\ndiv.anidb-release-group-ui-wrapper img.deleteFromBlacklist[data-v-390a1f71] {\\n float: right;\\n}\\ndiv.anidb-release-group-ui-wrapper #add-new-release-group p > img[data-v-390a1f71] {\\n height: 16px;\\n width: 16px;\\n background-color: rgb(204, 204, 204);\\n}\\ndiv.anidb-release-group-ui-wrapper.placeholder[data-v-390a1f71] {\\n height: 32px;\\n}\\ndiv.anidb-release-group-ui-wrapper.max-width[data-v-390a1f71] {\\n max-width: 960px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/anidb-release-group-ui.vue\"],\"names\":[],\"mappings\":\";AAoOA;IACA,WAAA;IACA,mBAAA;AACA;AAEA;IACA,mBAAA;IACA,kBAAA;IACA,wBAAA;IACA,gBAAA;AACA;AAEA;IACA,gCAAA;AACA;AAEA;IACA,eAAA;IACA,YAAA;IACA,WAAA;AACA;AAEA;;IAEA,YAAA;AACA;AAEA;IACA,YAAA;IACA,WAAA;IACA,oCAAA;AACA;AAEA;IACA,YAAA;AACA;AAEA;IACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.floating-badge {\\n position: absolute;\\n top: -5px;\\n right: -8px;\\n padding: 0 4px;\\n background-color: #777;\\n border: 2px solid #959595;\\n border-radius: 100px;\\n font-size: 12px;\\n font-weight: bold;\\n text-decoration: none;\\n color: white;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/app-header.vue\"],\"names\":[],\"mappings\":\";AAqTA;IACA,kBAAA;IACA,SAAA;IACA,WAAA;IACA,cAAA;IACA,sBAAA;IACA,yBAAA;IACA,oBAAA;IACA,eAAA;IACA,iBAAA;IACA,qBAAA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#filter-indexers[data-v-3f081943] {\\n float: right;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/change-indexer.vue\"],\"names\":[],\"mappings\":\";AAoJA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.display-inline[data-v-2b15cb28] {\\n display: inline;\\n}\\n.radio-item[data-v-2b15cb28] {\\n display: block;\\n}\\n.multiselect[data-v-2b15cb28] {\\n margin-bottom: 10px;\\n}\\n.margin-bottom-10[data-v-2b15cb28] {\\n margin-bottom: 10px;\\n}\\n.plotInfo[data-v-2b15cb28] {\\n cursor: help;\\n float: right;\\n position: relative;\\n top: 2px;\\n}\\n.plotInfoNone[data-v-2b15cb28] {\\n cursor: help;\\n float: right;\\n position: relative;\\n top: 2px;\\n opacity: 0.4;\\n}\\n.v-popover[data-v-2b15cb28] {\\n display: inline;\\n}\\n.tooltip-base[data-v-2b15cb28] {\\n position: relative;\\n display: inline-block !important;\\n z-index: 999;\\n max-width: 276px;\\n padding: 1px;\\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\\n font-style: normal;\\n font-weight: 400;\\n font-size: 14px;\\n line-height: 1.42857143;\\n line-break: auto;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n word-wrap: normal;\\n white-space: normal;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 6px;\\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\\n}\\n.tooltip-base.tooltip-themed-dark[data-v-2b15cb28] {\\n background-color: rgb(51, 51, 51);\\n border-color: #111;\\n}\\n.tooltip-base .tooltip-inner[data-v-2b15cb28] {\\n background-color: inherit;\\n color: inherit;\\n text-align: inherit;\\n max-width: inherit;\\n padding: 0;\\n border-radius: 6px;\\n}\\n.tooltip-title[data-v-2b15cb28] {\\n padding: 8px 14px;\\n margin: 0;\\n border-radius: 5px 5px 0 0;\\n}\\n.tooltip-content[data-v-2b15cb28] {\\n padding: 9px 14px;\\n margin: 0;\\n}\\n.tooltip-themed-dark .tooltip-title[data-v-2b15cb28] {\\n background-color: rgb(35, 35, 35);\\n border-bottom-color: #111;\\n}\\n.tooltip-themed-light .tooltip-title[data-v-2b15cb28] {\\n padding: 8px 14px;\\n margin: 0;\\n font-size: 14px;\\n background-color: #f7f7f7;\\n border-bottom: 1px solid #ebebeb;\\n border-radius: 5px 5px 0 0;\\n}\\n.tooltip-base[x-placement^=\\\"left\\\"][data-v-2b15cb28]::after,\\n.tooltip-base[x-placement^=\\\"left\\\"][data-v-2b15cb28]::before {\\n left: 100%;\\n top: 50%;\\n border: solid transparent;\\n content: \\\" \\\";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n.tooltip-base[x-placement^=\\\"left\\\"][data-v-2b15cb28]::after {\\n border-color: rgba(255, 255, 255, 0);\\n border-left-color: #fff;\\n border-width: 11px;\\n margin-top: -11px;\\n content: \\\" \\\";\\n}\\n.tooltip-base[x-placement^=\\\"left\\\"][data-v-2b15cb28]::before {\\n border-color: rgba(0, 0, 0, 0);\\n border-left-color: rgba(0, 0, 0, 0.2);\\n border-width: 12px;\\n margin-top: -12px;\\n content: \\\" \\\";\\n}\\n.tooltip-base[x-placement^=\\\"right\\\"][data-v-2b15cb28]::after,\\n.tooltip-base[x-placement^=\\\"right\\\"][data-v-2b15cb28]::before {\\n right: 100%;\\n top: 50%;\\n border: solid transparent;\\n content: \\\" \\\";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n.tooltip-base[x-placement^=\\\"right\\\"][data-v-2b15cb28]::after {\\n border-color: rgba(255, 255, 255, 0);\\n border-right-color: #fff;\\n border-width: 11px;\\n margin-top: -11px;\\n content: \\\" \\\";\\n}\\n.tooltip-base[x-placement^=\\\"right\\\"][data-v-2b15cb28]::before {\\n border-color: rgba(0, 0, 0, 0);\\n border-right-color: rgba(0, 0, 0, 0.2);\\n border-width: 12px;\\n margin-top: -12px;\\n content: \\\" \\\";\\n}\\n\\n/* The background of the arrow, the outline */\\n.tooltip-themed-dark[x-placement^=\\\"left\\\"][data-v-2b15cb28]::before {\\n border-left-color: #000 !important;\\n}\\n\\n/* The background of the arrow, the outline */\\n.tooltip-themed-dark[x-placement^=\\\"right\\\"][data-v-2b15cb28]::before {\\n border-right-color: #000 !important;\\n}\\n\\n/* The foreground of the arrow, the filling */\\n.tooltip-themed-dark[x-placement^=\\\"left\\\"][data-v-2b15cb28]::after {\\n border-left-color: rgb(51, 51, 51) !important;\\n}\\n\\n/* The foreground of the arrow, the filling */\\n.tooltip-themed-dark[x-placement^=\\\"right\\\"][data-v-2b15cb28]::after {\\n border-right-color: rgb(51, 51, 51) !important;\\n}\\n.tooltip-arrow[data-v-2b15cb28] {\\n display: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/config-general.vue\"],\"names\":[],\"mappings\":\";AAw9BA;IACA,eAAA;AACA;AAEA;IACA,cAAA;AACA;AAEA;IACA,mBAAA;AACA;AAEA;IACA,mBAAA;AACA;AAEA;IACA,YAAA;IACA,YAAA;IACA,kBAAA;IACA,QAAA;AACA;AAEA;IACA,YAAA;IACA,YAAA;IACA,kBAAA;IACA,QAAA;IACA,YAAA;AACA;AAEA;IACA,eAAA;AACA;AAEA;IACA,kBAAA;IACA,gCAAA;IACA,YAAA;IACA,gBAAA;IACA,YAAA;IACA,yDAAA;IACA,kBAAA;IACA,gBAAA;IACA,eAAA;IACA,uBAAA;IACA,gBAAA;IACA,iBAAA;IACA,qBAAA;IACA,iBAAA;IACA,oBAAA;IACA,sBAAA;IACA,kBAAA;IACA,oBAAA;IACA,iBAAA;IACA,mBAAA;IACA,sBAAA;IACA,4BAAA;IACA,oCAAA;IACA,kBAAA;IACA,yCAAA;AACA;AAEA;IACA,iCAAA;IACA,kBAAA;AACA;AAEA;IACA,yBAAA;IACA,cAAA;IACA,mBAAA;IACA,kBAAA;IACA,UAAA;IACA,kBAAA;AACA;AAEA;IACA,iBAAA;IACA,SAAA;IACA,0BAAA;AACA;AAEA;IACA,iBAAA;IACA,SAAA;AACA;AAEA;IACA,iCAAA;IACA,yBAAA;AACA;AAEA;IACA,iBAAA;IACA,SAAA;IACA,eAAA;IACA,yBAAA;IACA,gCAAA;IACA,0BAAA;AACA;AAEA;;IAEA,UAAA;IACA,QAAA;IACA,yBAAA;IACA,YAAA;IACA,SAAA;IACA,QAAA;IACA,kBAAA;IACA,oBAAA;AACA;AAEA;IACA,oCAAA;IACA,uBAAA;IACA,kBAAA;IACA,iBAAA;IACA,YAAA;AACA;AAEA;IACA,8BAAA;IACA,qCAAA;IACA,kBAAA;IACA,iBAAA;IACA,YAAA;AACA;AAEA;;IAEA,WAAA;IACA,QAAA;IACA,yBAAA;IACA,YAAA;IACA,SAAA;IACA,QAAA;IACA,kBAAA;IACA,oBAAA;AACA;AAEA;IACA,oCAAA;IACA,wBAAA;IACA,kBAAA;IACA,iBAAA;IACA,YAAA;AACA;AAEA;IACA,8BAAA;IACA,sCAAA;IACA,kBAAA;IACA,iBAAA;IACA,YAAA;AACA;;AAEA,6CAAA;AACA;IACA,kCAAA;AACA;;AAEA,6CAAA;AACA;IACA,mCAAA;AACA;;AAEA,8CAAA;AACA;IACA,6CAAA;AACA;;AAEA,8CAAA;AACA;IACA,8CAAA;AACA;AAEA;IACA,aAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.metadata {\\n padding-left: 20px;\\n display: flex;\\n}\\n.metadata-options-wrapper {\\n min-width: 190px;\\n}\\n.metadata-example-wrapper {\\n width: 325px;\\n margin-left: 4em;\\n}\\n@media (max-width: 480px) {\\n.metadata {\\n flex-direction: column;\\n}\\n.metadata-example-wrapper {\\n margin-left: 0;\\n}\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/config-post-processing.vue\"],\"names\":[],\"mappings\":\";AA6hBA;IACA,kBAAA;IACA,aAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;AACA;QACA,sBAAA;AACA;AAEA;QACA,cAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nul.extra-scripts {\\n padding: 0;\\n margin-left: 15px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/config-subtitles.vue\"],\"names\":[],\"mappings\":\";AA8OA;IACA,UAAA;IACA,iBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.infoTable tr td[data-v-0e222bd8]:first-child {\\n vertical-align: top;\\n}\\npre[data-v-0e222bd8] {\\n padding: 5px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/config.vue\"],\"names\":[],\"mappings\":\";AAmEA;IACA,mBAAA;AACA;AAEA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.defaultTable.displayShow[data-v-401cc7db] {\\n clear: both;\\n}\\n.displayShowTable.displayShow[data-v-401cc7db] {\\n clear: both;\\n}\\n.fanartBackground.displayShow[data-v-401cc7db] {\\n clear: both;\\n opacity: 0.9;\\n}\\n.fanartBackground table[data-v-401cc7db] {\\n table-layout: auto;\\n width: 100%;\\n border-collapse: collapse;\\n border-spacing: 0;\\n text-align: center;\\n border: none;\\n empty-cells: show;\\n color: rgb(0, 0, 0) !important;\\n}\\n.summaryFanArt[data-v-401cc7db] {\\n opacity: 0.9;\\n}\\n.fanartBackground > table th.vgt-row-header[data-v-401cc7db] {\\n border: none !important;\\n background-color: transparent !important;\\n color: rgb(255, 255, 255) !important;\\n padding-top: 15px !important;\\n text-align: left !important;\\n}\\n.fanartBackground td.col-search[data-v-401cc7db] {\\n text-align: center;\\n}\\n\\n/* Trying to migrate this from tablesorter */\\n\\n/* =======================================================================\\ntablesorter.css\\n========================================================================== */\\n.displayShow[data-v-401cc7db] .vgt-global-search__input.vgt-pull-left {\\n float: left;\\n height: 40px;\\n}\\n.displayShow[data-v-401cc7db] .vgt-input {\\n border: 1px solid #ccc;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\\n height: 30px;\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\n.displayShow[data-v-401cc7db] div.vgt-responsive > table tbody > tr > th.vgt-row-header > span {\\n font-size: 24px;\\n margin-top: 20px;\\n margin-bottom: 10px;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table {\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n color: rgb(0, 0, 0);\\n text-align: left;\\n border-spacing: 0;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table th,\\n.displayShow[data-v-401cc7db] .vgt-table td {\\n padding: 4px;\\n border-top: rgb(34, 34, 34) 1px solid;\\n border-left: rgb(34, 34, 34) 1px solid;\\n vertical-align: middle;\\n}\\n\\n/* remove extra border from left edge */\\n.displayShow[data-v-401cc7db] .vgt-table th:first-child,\\n.displayShow[data-v-401cc7db] .vgt-table td:first-child {\\n border-left: none;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table span.break-word {\\n word-wrap: break-word;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table thead th.sorting.sorting-desc {\\n background-color: rgb(85, 85, 85);\\n background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);\\n}\\n.displayShow[data-v-401cc7db] .vgt-table thead th.sorting.sorting-asc {\\n background-color: rgb(85, 85, 85);\\n background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);\\n background-position-x: right;\\n background-position-y: bottom;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table th {\\n text-align: center;\\n text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);\\n background-color: rgb(51, 51, 51);\\n white-space: nowrap;\\n color: rgb(255, 255, 255);\\n border-collapse: collapse;\\n font-weight: normal;\\n position: relative;\\n background-image: none;\\n padding: 4px;\\n cursor: default;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table thead th.sortable button {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n background: transparent;\\n border: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table thead th.sorting {\\n background-repeat: no-repeat;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table input.tablesorter-filter {\\n width: 98%;\\n height: auto;\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table tr.tablesorter-filter-row,\\n.displayShow[data-v-401cc7db] .vgt-table tr.tablesorter-filter-row td {\\n text-align: center;\\n}\\n\\n/* optional disabled input styling */\\n.displayShow[data-v-401cc7db] .vgt-table input.tablesorter-filter-row .disabled {\\n display: none;\\n}\\n.tablesorter-header-inner[data-v-401cc7db] {\\n padding: 0 2px;\\n text-align: center;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table tfoot tr {\\n color: rgb(255, 255, 255);\\n text-align: center;\\n text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);\\n background-color: rgb(51, 51, 51);\\n border-collapse: collapse;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table tfoot a {\\n color: rgb(255, 255, 255);\\n text-decoration: none;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table th.vgt-row-header {\\n text-align: left;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table .season-header {\\n display: inline;\\n margin-left: 5px;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table tr.spacer {\\n height: 25px;\\n}\\n.displayShow[data-v-401cc7db] .vgt-table tr:hover {\\n opacity: 0.9;\\n}\\n.displayShow[data-v-401cc7db] .unaired {\\n background-color: rgb(245, 241, 228);\\n}\\n.displayShow[data-v-401cc7db] .skipped {\\n background-color: rgb(190, 222, 237);\\n}\\n.displayShow[data-v-401cc7db] .preferred {\\n background-color: rgb(195, 227, 200);\\n}\\n.displayShow[data-v-401cc7db] .archived {\\n background-color: rgb(195, 227, 200);\\n}\\n.displayShow[data-v-401cc7db] .allowed {\\n background-color: rgb(255, 218, 138);\\n}\\n.displayShow[data-v-401cc7db] .wanted {\\n background-color: rgb(255, 176, 176);\\n}\\n.displayShow[data-v-401cc7db] .snatched {\\n background-color: rgb(235, 193, 234);\\n}\\n.displayShow[data-v-401cc7db] .downloaded {\\n background-color: rgb(255, 218, 138);\\n}\\n.displayShow[data-v-401cc7db] .failed {\\n background-color: rgb(255, 153, 153);\\n}\\n.displayShow[data-v-401cc7db] span.unaired {\\n color: rgb(88, 75, 32);\\n}\\n.displayShow[data-v-401cc7db] span.skipped {\\n color: rgb(29, 80, 104);\\n}\\n.displayShow[data-v-401cc7db] span.preffered {\\n color: rgb(41, 87, 48);\\n}\\n.displayShow[data-v-401cc7db] span.allowed {\\n color: rgb(118, 81, 0);\\n}\\n.displayShow[data-v-401cc7db] span.wanted {\\n color: rgb(137, 0, 0);\\n}\\n.displayShow[data-v-401cc7db] span.snatched {\\n color: rgb(101, 33, 100);\\n}\\n.displayShow[data-v-401cc7db] span.unaired b,\\n.displayShow[data-v-401cc7db] span.skipped b,\\n.displayShow[data-v-401cc7db] span.preferred b,\\n.displayShow[data-v-401cc7db] span.allowed b,\\n.displayShow[data-v-401cc7db] span.wanted b,\\n.displayShow[data-v-401cc7db] span.snatched b {\\n color: rgb(0, 0, 0);\\n font-weight: 800;\\n}\\n.mobile-select[data-v-401cc7db] {\\n width: 110px;\\n font-size: x-small;\\n}\\ntd.col-footer[data-v-401cc7db] {\\n text-align: left !important;\\n}\\n.displayShow[data-v-401cc7db] .vgt-wrap__footer {\\n color: rgb(255, 255, 255);\\n padding: 1em;\\n background-color: rgb(51, 51, 51);\\n margin-bottom: 1em;\\n display: flex;\\n justify-content: space-between;\\n}\\n.displayShow[data-v-401cc7db] .footer__row-count,\\n.displayShow[data-v-401cc7db] .footer__navigation__page-info {\\n display: inline;\\n}\\n.displayShow[data-v-401cc7db] .footer__row-count__label {\\n margin-right: 1em;\\n}\\n.displayShow[data-v-401cc7db] .vgt-wrap__footer .footer__navigation {\\n font-size: 14px;\\n}\\n.displayShow[data-v-401cc7db] .vgt-pull-right {\\n float: right !important;\\n}\\n.displayShow[data-v-401cc7db] .vgt-wrap__footer .footer__navigation__page-btn .chevron {\\n width: 24px;\\n height: 24px;\\n border-radius: 15%;\\n position: relative;\\n margin: 0 8px;\\n}\\n.displayShow[data-v-401cc7db] .vgt-wrap__footer .footer__navigation__info,\\n.displayShow[data-v-401cc7db] .vgt-wrap__footer .footer__navigation__page-info {\\n display: inline-flex;\\n color: #909399;\\n margin: 0 16px;\\n margin-top: 0;\\n margin-right: 16px;\\n margin-bottom: 0;\\n margin-left: 16px;\\n}\\n.select-info span[data-v-401cc7db] {\\n margin-left: 5px;\\n line-height: 40px;\\n}\\n.subtitles > div[data-v-401cc7db] {\\n float: left;\\n}\\n.subtitles > div[data-v-401cc7db]:not(:last-child) {\\n margin-right: 2px;\\n}\\n.displayShow[data-v-401cc7db] .vgt-dropdown > .button-group {\\n position: relative;\\n}\\n.displayShow[data-v-401cc7db] .dropdown-toggle {\\n position: absolute;\\n z-index: 1;\\n top: 0.1em;\\n right: 0.1em;\\n width: 1em;\\n transition: width 0.2s ease-in-out;\\n}\\n.displayShow[data-v-401cc7db] .dropdown-toggle:hover,\\n.displayShow[data-v-401cc7db] .dropdown-toggle:active {\\n width: 2em;\\n}\\n.displayShow[data-v-401cc7db] .vgt-dropdown-menu {\\n position: absolute;\\n z-index: 1;\\n float: left;\\n min-width: 160px;\\n padding: 5px 0;\\n margin: 2px 0 0;\\n font-size: 14px;\\n text-align: left;\\n list-style: none;\\n background-clip: padding-box;\\n border-radius: 3px;\\n right: 0;\\n top: 2em;\\n}\\n.displayShow[data-v-401cc7db] .vgt-dropdown-menu > li > span {\\n display: block;\\n padding: 3px 5px;\\n clear: both;\\n font-weight: 400;\\n line-height: 1.42857143;\\n white-space: nowrap;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/display-show.vue\"],\"names\":[],\"mappings\":\";AA6/BA;IACA,WAAA;AACA;AAEA;IACA,WAAA;AACA;AAEA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,kBAAA;IACA,WAAA;IACA,yBAAA;IACA,iBAAA;IACA,kBAAA;IACA,YAAA;IACA,iBAAA;IACA,8BAAA;AACA;AAEA;IACA,YAAA;AACA;AAEA;IACA,uBAAA;IACA,wCAAA;IACA,oCAAA;IACA,4BAAA;IACA,2BAAA;AACA;AAEA;IACA,kBAAA;AACA;;AAEA,4CAAA;;AAEA;;4EAEA;AAEA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,sBAAA;IACA,8GAAA;IACA,YAAA;IACA,iBAAA;IACA,eAAA;IACA,gBAAA;IACA,kBAAA;AACA;AAEA;IACA,eAAA;IACA,gBAAA;IACA,mBAAA;AACA;AAEA;IACA,WAAA;IACA,kBAAA;IACA,iBAAA;IACA,mBAAA;IACA,gBAAA;IACA,iBAAA;AACA;AAEA;;IAEA,YAAA;IACA,qCAAA;IACA,sCAAA;IACA,sBAAA;AACA;;AAEA,uCAAA;AACA;;IAEA,iBAAA;AACA;AAEA;IACA,qBAAA;AACA;AAEA;IACA,iCAAA;IACA,qHAAA;AACA;AAEA;IACA,iCAAA;IACA,qHAAA;IACA,4BAAA;IACA,6BAAA;AACA;AAEA;IACA,kBAAA;IACA,2CAAA;IACA,iCAAA;IACA,mBAAA;IACA,yBAAA;IACA,yBAAA;IACA,mBAAA;IACA,kBAAA;IACA,sBAAA;IACA,YAAA;IACA,eAAA;AACA;AAEA;IACA,wBAAA;IACA,qBAAA;IACA,gBAAA;IACA,uBAAA;IACA,YAAA;IACA,kBAAA;IACA,MAAA;IACA,OAAA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,4BAAA;AACA;AAEA;IACA,UAAA;IACA,YAAA;IACA,8BAAA;IACA,2BAAA;IACA,sBAAA;AACA;AAEA;;IAEA,kBAAA;AACA;;AAEA,oCAAA;AACA;IACA,aAAA;AACA;AAEA;IACA,cAAA;IACA,kBAAA;AACA;AAEA;IACA,yBAAA;IACA,kBAAA;IACA,2CAAA;IACA,iCAAA;IACA,yBAAA;AACA;AAEA;IACA,yBAAA;IACA,qBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,eAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;AACA;AAEA;IACA,YAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,oCAAA;AACA;AAEA;IACA,sBAAA;AACA;AAEA;IACA,uBAAA;AACA;AAEA;IACA,sBAAA;AACA;AAEA;IACA,sBAAA;AACA;AAEA;IACA,qBAAA;AACA;AAEA;IACA,wBAAA;AACA;AAEA;;;;;;IAMA,mBAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,kBAAA;AACA;AAEA;IACA,2BAAA;AACA;AAEA;IACA,yBAAA;IACA,YAAA;IACA,iCAAA;IACA,kBAAA;IACA,aAAA;IACA,8BAAA;AACA;AAEA;;IAEA,eAAA;AACA;AAEA;IACA,iBAAA;AACA;AAEA;IACA,eAAA;AACA;AAEA;IACA,uBAAA;AACA;AAEA;IACA,WAAA;IACA,YAAA;IACA,kBAAA;IACA,kBAAA;IACA,aAAA;AACA;AAEA;;IAEA,oBAAA;IACA,cAAA;IACA,cAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;IACA,iBAAA;AACA;AAEA;IACA,gBAAA;IACA,iBAAA;AACA;AAEA;IACA,WAAA;AACA;AAEA;IACA,iBAAA;AACA;AAEA;IACA,kBAAA;AACA;AAEA;IACA,kBAAA;IACA,UAAA;IACA,UAAA;IACA,YAAA;IACA,UAAA;IACA,kCAAA;AACA;AAEA;;IAEA,UAAA;AACA;AAEA;IACA,kBAAA;IACA,UAAA;IACA,WAAA;IACA,gBAAA;IACA,cAAA;IACA,eAAA;IACA,eAAA;IACA,gBAAA;IACA,gBAAA;IACA,4BAAA;IACA,kBAAA;IACA,QAAA;IACA,QAAA;AACA;AAEA;IACA,cAAA;IACA,gBAAA;IACA,WAAA;IACA,gBAAA;IACA,uBAAA;IACA,mBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/*\\n@NOTE: This fixes the header blocking elements when using a hash link\\ne.g. displayShow?showslug=tvdb83462#season-5\\n*/\\n[false-link]::before {\\n content: '';\\n display: block;\\n position: absolute;\\n height: 100px;\\n margin-top: -100px;\\n z-index: -100;\\n}\\n.router-link,\\n.router-link-active {\\n cursor: pointer;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/app-link.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoKA;;;CAGA;AACA;IACA,WAAA;IACA,cAAA;IACA,kBAAA;IACA,aAAA;IACA,kBAAA;IACA,aAAA;AACA;AAEA;;IAEA,eAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.width-40[data-v-2f5931d0] {\\n width: 40px;\\n}\\n.width-50[data-v-2f5931d0] {\\n width: 50px;\\n}\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/asset.vue\"],\"names\":[],\"mappings\":\";AA6FA;IACA,WAAA;AACA;AAEA;IACA,WAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.warning-enter-active[data-v-149b4f77],\\n.warning-leave-active[data-v-149b4f77] {\\n -moz-transition-duration: 0.3s;\\n -webkit-transition-duration: 0.3s;\\n -o-transition-duration: 0.3s;\\n transition-duration: 0.3s;\\n -moz-transition-timing-function: ease-in;\\n -webkit-transition-timing-function: ease-in;\\n -o-transition-timing-function: ease-in;\\n transition-timing-function: ease-in;\\n}\\n.warning-enter-to[data-v-149b4f77],\\n.warning-leave[data-v-149b4f77] {\\n max-height: 100%;\\n}\\n.warning-enter[data-v-149b4f77],\\n.warning-leave-to[data-v-149b4f77] {\\n max-height: 0;\\n}\\n.warning[data-v-149b4f77] {\\n display: block;\\n overflow: hidden;\\n width: 100%;\\n position: absolute;\\n left: 0;\\n background-color: #e23636;\\n padding: 0 2px 0 2px;\\n}\\n.manager-note[data-v-149b4f77] {\\n margin: 5px 0;\\n padding: 10px;\\n border: 1px solid #ccc;\\n}\\n.manager-note > img[data-v-149b4f77] {\\n width: 16px;\\n padding-bottom: 4px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-custom-newznab.vue\"],\"names\":[],\"mappings\":\";AAwOA;;IAEA,8BAAA;IACA,iCAAA;IACA,4BAAA;IACA,yBAAA;IACA,wCAAA;IACA,2CAAA;IACA,sCAAA;IACA,mCAAA;AACA;AAEA;;IAEA,gBAAA;AACA;AAEA;;IAEA,aAAA;AACA;AAEA;IACA,cAAA;IACA,gBAAA;IACA,WAAA;IACA,kBAAA;IACA,OAAA;IACA,yBAAA;IACA,oBAAA;AACA;AAEA;IACA,aAAA;IACA,aAAA;IACA,sBAAA;AACA;AAEA;IACA,WAAA;IACA,mBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.testresult[data-v-66c33d58] {\\n display: inline-block;\\n border-style: solid;\\n border-width: 1px;\\n padding: 1px 4px 4px 4px;\\n border-color: #ccc;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-custom-prowlarr.vue\"],\"names\":[],\"mappings\":\";AA+MA;IACA,qBAAA;IACA,mBAAA;IACA,iBAAA;IACA,wBAAA;IACA,kBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.warning-enter-active[data-v-6ad09fdf],\\n.warning-leave-active[data-v-6ad09fdf] {\\n -moz-transition-duration: 0.3s;\\n -webkit-transition-duration: 0.3s;\\n -o-transition-duration: 0.3s;\\n transition-duration: 0.3s;\\n -moz-transition-timing-function: ease-in;\\n -webkit-transition-timing-function: ease-in;\\n -o-transition-timing-function: ease-in;\\n transition-timing-function: ease-in;\\n}\\n.warning-enter-to[data-v-6ad09fdf],\\n.warning-leave[data-v-6ad09fdf] {\\n max-height: 100%;\\n}\\n.warning-enter[data-v-6ad09fdf],\\n.warning-leave-to[data-v-6ad09fdf] {\\n max-height: 0;\\n}\\n.warning[data-v-6ad09fdf] {\\n display: block;\\n overflow: hidden;\\n width: 100%;\\n position: absolute;\\n left: 0;\\n background-color: #e23636;\\n padding: 0 2px 0 2px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-custom-torrentrss.vue\"],\"names\":[],\"mappings\":\";AAyJA;;IAEA,8BAAA;IACA,iCAAA;IACA,4BAAA;IACA,yBAAA;IACA,wCAAA;IACA,2CAAA;IACA,sCAAA;IACA,mCAAA;AACA;AAEA;;IAEA,gBAAA;AACA;AAEA;;IAEA,aAAA;AACA;AAEA;IACA,cAAA;IACA,gBAAA;IACA,WAAA;IACA,kBAAA;IACA,OAAA;IACA,yBAAA;IACA,oBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.warning-enter-active[data-v-16387a4c],\\n.warning-leave-active[data-v-16387a4c] {\\n -moz-transition-duration: 0.3s;\\n -webkit-transition-duration: 0.3s;\\n -o-transition-duration: 0.3s;\\n transition-duration: 0.3s;\\n -moz-transition-timing-function: ease-in;\\n -webkit-transition-timing-function: ease-in;\\n -o-transition-timing-function: ease-in;\\n transition-timing-function: ease-in;\\n}\\n.warning-enter-to[data-v-16387a4c],\\n.warning-leave[data-v-16387a4c] {\\n max-height: 100%;\\n}\\n.warning-enter[data-v-16387a4c],\\n.warning-leave-to[data-v-16387a4c] {\\n max-height: 0;\\n}\\n.warning[data-v-16387a4c] {\\n display: block;\\n overflow: hidden;\\n width: 100%;\\n position: absolute;\\n left: 0;\\n background-color: #e23636;\\n padding: 0 2px 0 2px;\\n z-index: 1;\\n}\\n.manager-note[data-v-16387a4c] {\\n margin: 5px 0;\\n padding: 10px;\\n border: 1px solid #ccc;\\n}\\n.manager-note > img[data-v-16387a4c] {\\n width: 16px;\\n padding-bottom: 4px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-custom-torznab.vue\"],\"names\":[],\"mappings\":\";AAsOA;;IAEA,8BAAA;IACA,iCAAA;IACA,4BAAA;IACA,yBAAA;IACA,wCAAA;IACA,2CAAA;IACA,sCAAA;IACA,mCAAA;AACA;AAEA;;IAEA,gBAAA;AACA;AAEA;;IAEA,aAAA;AACA;AAEA;IACA,cAAA;IACA,gBAAA;IACA,WAAA;IACA,kBAAA;IACA,OAAA;IACA,yBAAA;IACA,oBAAA;IACA,UAAA;AACA;AAEA;IACA,aAAA;IACA,aAAA;IACA,sBAAA;AACA;AAEA;IACA,WAAA;IACA,mBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ndiv.select-list ul[data-v-272125cb] {\\n padding-left: 0;\\n}\\ndiv.select-list li[data-v-272125cb] {\\n list-style-type: none;\\n display: flex;\\n}\\ndiv.select-list .new-item[data-v-272125cb] {\\n display: flex;\\n}\\ndiv.select-list .new-item-help[data-v-272125cb] {\\n font-weight: bold;\\n padding-top: 5px;\\n}\\ndiv.select-list input[data-v-272125cb],\\ndiv.select-list img[data-v-272125cb] {\\n display: inline-block;\\n box-sizing: border-box;\\n}\\ndiv.select-list.max-width[data-v-272125cb] {\\n max-width: 450px;\\n}\\ndiv.select-list .switch-input[data-v-272125cb] {\\n left: -8px;\\n top: 4px;\\n position: absolute;\\n z-index: 10;\\n opacity: 0.6;\\n}\\n.form-inline[data-v-272125cb] {\\n display: contents;\\n}\\n.select-season[data-v-272125cb] {\\n height: 30px;\\n padding: 0 3px 0 2px;\\n}\\n.select-season[disabled=disabled][data-v-272125cb] {\\n background-color: #eee;\\n}\\n.external-scene-exception[data-v-272125cb] {\\n display: table-cell;\\n width: 4.5px;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n background-color: #fff;\\n border-color: #ccc;\\n}\\n.external-scene-exception div[data-v-272125cb] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 40px;\\n height: 30px;\\n border: 1px solid #ccc;\\n border-top-left-radius: 0;\\n border-top-right-radius: 4px;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 4px;\\n z-index: 2;\\n margin-left: -1px;\\n}\\n.external-scene-exception > img[data-v-272125cb] {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.external-scene-exception:last-child > .div[data-v-272125cb] {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-scene-exceptions.vue\"],\"names\":[],\"mappings\":\";AA6JA;IACA,eAAA;AACA;AAEA;IACA,qBAAA;IACA,aAAA;AACA;AAEA;IACA,aAAA;AACA;AAEA;IACA,iBAAA;IACA,gBAAA;AACA;AAEA;;IAEA,qBAAA;IACA,sBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,UAAA;IACA,QAAA;IACA,kBAAA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,iBAAA;AACA;AAEA;IACA,YAAA;IACA,oBAAA;AACA;AAEA;IACA,sBAAA;AACA;AAEA;IACA,mBAAA;IACA,YAAA;IACA,yBAAA;IACA,4BAAA;IACA,sBAAA;IACA,kBAAA;AACA;AAEA;IACA,aAAA;IACA,mBAAA;IACA,uBAAA;IACA,WAAA;IACA,YAAA;IACA,sBAAA;IACA,yBAAA;IACA,4BAAA;IACA,4BAAA;IACA,+BAAA;IACA,UAAA;IACA,iBAAA;AACA;AAEA;IACA,cAAA;IACA,iBAAA;IACA,kBAAA;AACA;AAEA;IACA,yBAAA;IACA,4BAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.autocomplete-item[data-v-0fbc8b46] {\\n background: white;\\n color: black;\\n}\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-subtitle-languages.vue\"],\"names\":[],\"mappings\":\";AA+EA;IACA,iBAAA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.form-control {\\n color: rgb(0, 0, 0);\\n}\\n.input75 {\\n width: 75px;\\n margin-top: -4px;\\n}\\n.input250 {\\n width: 250px;\\n margin-top: -4px;\\n}\\n.input350 {\\n width: 350px;\\n margin-top: -4px;\\n}\\n.input450 {\\n width: 450px;\\n margin-top: -4px;\\n}\\ninput {\\n margin-bottom: 5px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-textbox-number.vue\"],\"names\":[],\"mappings\":\";AA4FA;IACA,mBAAA;AACA;AAEA;IACA,WAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,kBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.input75[data-v-1f6251e9] {\\n width: 75px;\\n margin-top: -4px;\\n}\\n.input250[data-v-1f6251e9] {\\n width: 250px;\\n margin-top: -4px;\\n}\\n.input350[data-v-1f6251e9] {\\n width: 350px;\\n margin-top: -4px;\\n}\\n.input450[data-v-1f6251e9] {\\n width: 450px;\\n margin-top: -4px;\\n}\\ninput[data-v-1f6251e9] {\\n margin-bottom: 5px;\\n width: 100%;\\n border: none;\\n}\\n.uri-error-enter-active[data-v-1f6251e9],\\n.uri-error-leave-active[data-v-1f6251e9] {\\n -moz-transition-duration: 0.3s;\\n -webkit-transition-duration: 0.3s;\\n -o-transition-duration: 0.3s;\\n transition-duration: 0.3s;\\n -moz-transition-timing-function: ease-in;\\n -webkit-transition-timing-function: ease-in;\\n -o-transition-timing-function: ease-in;\\n transition-timing-function: ease-in;\\n}\\n.uri-error-enter-to[data-v-1f6251e9],\\n.uri-error-leave[data-v-1f6251e9] {\\n max-height: 100%;\\n}\\n.uri-error-enter[data-v-1f6251e9],\\n.uri-error-leave-to[data-v-1f6251e9] {\\n max-height: 0;\\n}\\n.parent[data-v-1f6251e9] {\\n position: relative;\\n}\\ndiv.uri-error[data-v-1f6251e9] {\\n display: block;\\n overflow: hidden;\\n width: 100%;\\n position: absolute;\\n left: 0;\\n background-color: #e23636;\\n padding: 0 2px 0 2px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-textbox.vue\"],\"names\":[],\"mappings\":\";AAiGA;IACA,WAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,kBAAA;IACA,WAAA;IACA,YAAA;AACA;AAEA;;IAEA,8BAAA;IACA,iCAAA;IACA,4BAAA;IACA,yBAAA;IACA,wCAAA;IACA,2CAAA;IACA,sCAAA;IACA,mCAAA;AACA;AAEA;;IAEA,gBAAA;AACA;AAEA;;IAEA,aAAA;AACA;AAEA;IACA,kBAAA;AACA;AAEA;IACA,cAAA;IACA,gBAAA;IACA,WAAA;IACA,kBAAA;IACA,OAAA;IACA,yBAAA;IACA,oBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.input75 {\\n width: 75px;\\n margin-top: -4px;\\n}\\n.input250 {\\n width: 250px;\\n margin-top: -4px;\\n}\\n.input350 {\\n width: 350px;\\n margin-top: -4px;\\n}\\n.input450 {\\n width: 450px;\\n margin-top: -4px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/config-toggle-slider.vue\"],\"names\":[],\"mappings\":\";AAkFA;IACA,WAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ndiv.wrapper > div[data-v-12aec99f] {\\n margin-bottom: 5px;\\n}\\ndiv.identifier[data-v-12aec99f] {\\n float: none;\\n width: auto;\\n overflow: hidden;\\n}\\ndiv.level[data-v-12aec99f] {\\n float: right;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/custom-logs.vue\"],\"names\":[],\"mappings\":\";AA0EA;IACA,kBAAA;AACA;AAEA;IACA,WAAA;IACA,WAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ndiv.file-browser.max-width[data-v-eff76864] {\\n max-width: 450px;\\n}\\ndiv.file-browser .input-group-no-btn[data-v-eff76864] {\\n display: flex;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/file-browser.vue\"],\"names\":[],\"mappings\":\";AAmTA;IACA,gBAAA;AACA;AAEA;IACA,aAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.app-image[data-v-05ed6915] {\\n max-width: 100%;\\n max-height: 100%;\\n width: auto;\\n height: auto;\\n vertical-align: middle;\\n}\\nimg[data-v-05ed6915]:not([src]) {\\n visibility: hidden;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/lazy-image.vue\"],\"names\":[],\"mappings\":\";AA+HA;IACA,eAAA;IACA,gBAAA;IACA,WAAA;IACA,YAAA;IACA,sBAAA;AACA;AAEA;IACA,kBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.load-progress-bar-container {\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n}\\n.border {\\n box-sizing: border-box;\\n height: 26px;\\n text-size-adjust: 100%;\\n width: 382px;\\n perspective-origin: 191px 13px;\\n transform-origin: 191px 13px;\\n border: 1px solid #ccc;\\n border-radius: 5px;\\n}\\n@media (max-width: 767px) {\\n.border {\\n width: 100%;\\n}\\n.load-progress-bar-container {\\n width: 100%;\\n}\\n}\\n.progress {\\n box-sizing: border-box;\\n height: 24px;\\n text-size-adjust: 100%;\\n width: 76px;\\n perspective-origin: 38px 12px;\\n transform-origin: 38px 12px;\\n background: rgba(99, 177, 137, 0.63) none repeat scroll 0% 0% / auto padding-box border-box;\\n}\\n.msg {\\n position: absolute;\\n padding: 3px 5px 0 5px;\\n}\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/load-progress-bar.vue\"],\"names\":[],\"mappings\":\";AAqCA;IACA,kBAAA;IACA,SAAA;IACA,QAAA;AACA;AAEA;IACA,sBAAA;IACA,YAAA;IACA,sBAAA;IACA,YAAA;IACA,8BAAA;IACA,4BAAA;IACA,sBAAA;IACA,kBAAA;AACA;AAEA;AACA;QACA,WAAA;AACA;AAEA;QACA,WAAA;AACA;AACA;AAEA;IACA,sBAAA;IACA,YAAA;IACA,sBAAA;IACA,WAAA;IACA,6BAAA;IACA,2BAAA;IACA,2FAAA;AACA;AAEA;IACA,kBAAA;IACA,sBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.plotInfo {\\n cursor: help;\\n float: right;\\n position: relative;\\n top: 2px;\\n}\\n.plotInfoNone {\\n cursor: help;\\n float: right;\\n position: relative;\\n top: 2px;\\n opacity: 0.4;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/plot-info.vue\"],\"names\":[],\"mappings\":\";AA0BA;IACA,YAAA;IACA,YAAA;IACA,kBAAA;IACA,QAAA;AACA;AAEA;IACA,YAAA;IACA,YAAA;IACA,kBAAA;IACA,QAAA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.progressbar[data-v-2a6be2d2] {\\n position: relative;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/progress-bar.vue\"],\"names\":[],\"mappings\":\";AAsCA;IACA,kBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* Put both custom quality selectors in the same row */\\n#customQualityWrapper > div[data-v-7f0de7f3] {\\n display: inline-block;\\n text-align: left;\\n}\\n\\n/* Put some distance between the two selectors */\\n#customQualityWrapper > div[data-v-7f0de7f3]:first-of-type {\\n padding-right: 30px;\\n}\\n.backlog-link[data-v-7f0de7f3] {\\n color: blue;\\n text-decoration: underline;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/quality-chooser.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmVA,sDAAA;AACA;IACA,qBAAA;IACA,gBAAA;AACA;;AAEA,gDAAA;AACA;IACA,mBAAA;AACA;AAEA;IACA,WAAA;IACA,0BAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* Base class */\\n.quality[data-v-27b6c0c4] {\\n font: 12px/13px \\\"Open Sans\\\", verdana, sans-serif;\\n background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.25));\\n background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.25));\\n background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.25));\\n background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.25));\\n box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), inset 0 -1px 3px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(255, 255, 255, 0.08), 0 1px 2px rgba(0, 0, 0, 0.15);\\n text-shadow: 0 1px rgba(0, 0, 0, 0.8);\\n color: rgb(255, 255, 255);\\n display: inline-block;\\n padding: 2px 4px;\\n text-align: center;\\n vertical-align: baseline;\\n border-radius: 4px;\\n white-space: nowrap;\\n}\\n\\n/* Custom */\\n.custom[data-v-27b6c0c4] {\\n background-color: rgb(98, 25, 147);\\n}\\n\\n/* HD-720p + FHD-1080p */\\n.hd[data-v-27b6c0c4], \\n.anyhdtv[data-v-27b6c0c4], \\n.anywebdl[data-v-27b6c0c4], \\n.anybluray[data-v-27b6c0c4] { /* AnySet */\\n background-color: rgb(38, 114, 182);\\n background-image:\\n repeating-linear-gradient(\\n -45deg,\\n rgb(38, 114, 182),\\n rgb(38, 114, 182) 10px,\\n rgb(91, 153, 13) 10px,\\n rgb(91, 153, 13) 20px\\n );\\n}\\n\\n/* HD-720p */\\n.hd720p[data-v-27b6c0c4], \\n.hdtv[data-v-27b6c0c4],\\n.hdwebdl[data-v-27b6c0c4],\\n.hdbluray[data-v-27b6c0c4] {\\n background-color: rgb(91, 153, 13);\\n}\\n\\n/* FHD-1080p */\\n.hd1080p[data-v-27b6c0c4], \\n.fullhdtv[data-v-27b6c0c4],\\n.fullhdwebdl[data-v-27b6c0c4],\\n.fullhdbluray[data-v-27b6c0c4] {\\n background-color: rgb(38, 114, 182);\\n}\\n\\n/* UHD-4K + UHD-8K */\\n.uhd[data-v-27b6c0c4] { /* Preset */\\n background-color: rgb(117, 0, 255);\\n background-image:\\n repeating-linear-gradient(\\n -45deg,\\n rgb(117, 0, 255),\\n rgb(117, 0, 255) 10px,\\n rgb(65, 0, 119) 10px,\\n rgb(65, 0, 119) 20px\\n );\\n}\\n\\n/* UHD-4K */\\n.uhd4k[data-v-27b6c0c4], \\n.anyuhd4k[data-v-27b6c0c4], \\n.uhd4ktv[data-v-27b6c0c4],\\n.uhd4kwebdl[data-v-27b6c0c4],\\n.uhd4kbluray[data-v-27b6c0c4] {\\n background-color: rgb(117, 0, 255);\\n}\\n\\n/* UHD-8K */\\n.uhd8k[data-v-27b6c0c4], \\n.anyuhd8k[data-v-27b6c0c4], \\n.uhd8ktv[data-v-27b6c0c4],\\n.uhd8kwebdl[data-v-27b6c0c4],\\n.uhd8kbluray[data-v-27b6c0c4] {\\n background-color: rgb(65, 0, 119);\\n}\\n\\n/* RawHD/RawHDTV */\\n.rawhdtv[data-v-27b6c0c4] {\\n background-color: rgb(205, 115, 0);\\n}\\n\\n/* SD */\\n.sd[data-v-27b6c0c4], \\n.sdtv[data-v-27b6c0c4],\\n.sddvd[data-v-27b6c0c4] {\\n background-color: rgb(190, 38, 37);\\n}\\n\\n/* Any */\\n.any[data-v-27b6c0c4] { /* Preset */\\n background-color: rgb(102, 102, 102);\\n}\\n\\n/* Unknown */\\n.unknown[data-v-27b6c0c4] {\\n background-color: rgb(153, 153, 153);\\n}\\n\\n/* Proper (used on History page) */\\n.proper[data-v-27b6c0c4] {\\n background-color: rgb(63, 127, 0);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/quality-pill.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8MA,eAAA;AACA;IACA,gDAAA;IACA,gJAAA;IACA,6IAAA;IACA,2IAAA;IACA,8IAAA;IACA,+JAAA;IACA,qCAAA;IACA,yBAAA;IACA,qBAAA;IACA,gBAAA;IACA,kBAAA;IACA,wBAAA;IACA,kBAAA;IACA,mBAAA;AACA;;AAEA,WAAA;AACA;IACA,kCAAA;AACA;;AAEA,wBAAA;AACA;;;8BAGA,WAAA;IACA,mCAAA;IACA;;;;;;;KAOA;AACA;;AAEA,YAAA;AACA;;;;IAIA,kCAAA;AACA;;AAEA,cAAA;AACA;;;;IAIA,mCAAA;AACA;;AAEA,oBAAA;AACA,wBAAA,WAAA;IACA,kCAAA;IACA;;;;;;;KAOA;AACA;;AAEA,WAAA;AACA;;;;;IAKA,kCAAA;AACA;;AAEA,WAAA;AACA;;;;;IAKA,iCAAA;AACA;;AAEA,kBAAA;AACA;IACA,kCAAA;AACA;;AAEA,OAAA;AACA;;;IAGA,kCAAA;AACA;;AAEA,QAAA;AACA,wBAAA,WAAA;IACA,oCAAA;AACA;;AAEA,YAAA;AACA;IACA,oCAAA;AACA;;AAEA,kCAAA;AACA;IACA,iCAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.isValid[data-v-d394b1e8] {\\n background-color: #90ee90;\\n color: #fff;\\n font-weight: bold;\\n}\\n.isInvalid[data-v-d394b1e8] {\\n background-color: #f00;\\n color: #fff !important;\\n font-weight: bold;\\n}\\n.isCustom[data-v-d394b1e8] {\\n background-color: #00ebaf;\\n color: #fff !important;\\n font-weight: bold;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/scene-number-anime-input.vue\"],\"names\":[],\"mappings\":\";AAiIA;IACA,yBAAA;IACA,WAAA;IACA,iBAAA;AACA;AAEA;IACA,sBAAA;IACA,sBAAA;IACA,iBAAA;AACA;AAEA;IACA,yBAAA;IACA,sBAAA;IACA,iBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.isValid[data-v-34e5a9e3] {\\n background-color: #90ee90;\\n color: #fff;\\n font-weight: bold;\\n}\\n.isInvalid[data-v-34e5a9e3] {\\n background-color: #f00;\\n color: #fff !important;\\n font-weight: bold;\\n}\\n.isCustom[data-v-34e5a9e3] {\\n background-color: #00ebaf;\\n color: #fff !important;\\n font-weight: bold;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/scene-number-input.vue\"],\"names\":[],\"mappings\":\";AA0KA;IACA,yBAAA;IACA,WAAA;IACA,iBAAA;AACA;AAEA;IACA,sBAAA;IACA,sBAAA;IACA,iBAAA;AACA;AAEA;IACA,yBAAA;IACA,sBAAA;IACA,iBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.scroll-wrapper {\\n position: fixed;\\n opacity: 0;\\n visibility: hidden;\\n overflow: hidden;\\n text-align: center;\\n font-size: 20px;\\n z-index: 999;\\n background-color: #777;\\n color: #eee;\\n width: 50px;\\n height: 48px;\\n line-height: 48px;\\n right: 30px;\\n bottom: 30px;\\n padding-top: 2px;\\n border-radius: 10px;\\n -webkit-transition: all 0.5s ease-in-out;\\n -moz-transition: all 0.5s ease-in-out;\\n -ms-transition: all 0.5s ease-in-out;\\n -o-transition: all 0.5s ease-in-out;\\n transition: all 0.5s ease-in-out;\\n}\\n.scroll-wrapper.show {\\n visibility: visible;\\n cursor: pointer;\\n opacity: 1;\\n}\\n.scroll-wrapper.left {\\n position: fixed;\\n right: 150px;\\n}\\n.scroll-wrapper.right {\\n position: fixed;\\n right: 90px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/scroll-buttons.vue\"],\"names\":[],\"mappings\":\";AA8FA;IACA,eAAA;IACA,UAAA;IACA,kBAAA;IACA,gBAAA;IACA,kBAAA;IACA,eAAA;IACA,YAAA;IACA,sBAAA;IACA,WAAA;IACA,WAAA;IACA,YAAA;IACA,iBAAA;IACA,WAAA;IACA,YAAA;IACA,gBAAA;IACA,mBAAA;IACA,wCAAA;IACA,qCAAA;IACA,oCAAA;IACA,mCAAA;IACA,gCAAA;AACA;AAEA;IACA,mBAAA;IACA,eAAA;IACA,UAAA;AACA;AAEA;IACA,eAAA;IACA,YAAA;AACA;AAEA;IACA,eAAA;IACA,WAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#naming-key {\\n margin: 20px 0 20px 0;\\n}\\n.template-container {\\n padding-left: 40px;\\n}\\n.show-template {\\n left: -8px;\\n top: 4px;\\n position: absolute;\\n z-index: 10;\\n opacity: 0.6;\\n}\\n.move-down {\\n transform: translateY(10px);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/search-template-container.vue\"],\"names\":[],\"mappings\":\";AA6dA;IACA,qBAAA;AACA;AAEA;IACA,kBAAA;AACA;AAEA;IACA,UAAA;IACA,QAAA;IACA,kBAAA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,2BAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.show-template[data-v-306c900d] {\\n left: -8px;\\n top: 4px;\\n position: absolute;\\n z-index: 10;\\n opacity: 0.6;\\n}\\n.template-example[data-v-306c900d] {\\n display: block;\\n line-height: 20px;\\n margin-bottom: 15px;\\n padding: 2px 5px 2px 2px;\\n clear: left;\\n max-width: 338px;\\n}\\n.tooltip-wrapper[data-v-306c900d] {\\n min-width: 340px;\\n}\\n.invalid[data-v-306c900d] {\\n background-color: #ff5b5b;\\n}\\n.error-message[data-v-306c900d] {\\n color: red;\\n}\\n.tooltip[data-v-306c900d] {\\n display: block !important;\\n z-index: 10000;\\n}\\n.tooltip .tooltip-inner[data-v-306c900d] {\\n background: #ffef93;\\n color: #555;\\n border-radius: 16px;\\n padding: 5px 10px 4px;\\n border: 1px solid #f1d031;\\n -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n}\\n.tooltip .tooltip-arrow[data-v-306c900d] {\\n width: 0;\\n height: 0;\\n position: absolute;\\n margin: 5px;\\n border: 1px solid #ffef93;\\n z-index: 1;\\n}\\n.tooltip[x-placement^='top'][data-v-306c900d] {\\n margin-bottom: 5px;\\n}\\n.tooltip[x-placement^='top'] .tooltip-arrow[data-v-306c900d] {\\n border-width: 5px 5px 0 5px;\\n border-left-color: transparent !important;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n bottom: -5px;\\n left: calc(50% - 4px);\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.tooltip[x-placement^='bottom'][data-v-306c900d] {\\n margin-top: 5px;\\n}\\n.tooltip[x-placement^='bottom'] .tooltip-arrow[data-v-306c900d] {\\n border-width: 0 5px 5px 5px;\\n border-left-color: transparent !important;\\n border-right-color: transparent !important;\\n border-top-color: transparent !important;\\n top: -5px;\\n left: calc(50% - 4px);\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.tooltip[x-placement^='right'][data-v-306c900d] {\\n margin-left: 5px;\\n}\\n.tooltip[x-placement^='right'] .tooltip-arrow[data-v-306c900d] {\\n border-width: 5px 5px 5px 0;\\n border-left-color: transparent !important;\\n border-top-color: transparent !important;\\n border-bottom-color: transparent !important;\\n left: -4px;\\n top: calc(50% - 5px);\\n margin-left: 0;\\n margin-right: 0;\\n}\\n.tooltip[x-placement^='left'][data-v-306c900d] {\\n margin-right: 5px;\\n}\\n.tooltip[x-placement^='left'] .tooltip-arrow[data-v-306c900d] {\\n border-width: 5px 0 5px 5px;\\n border-top-color: transparent !important;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n right: -4px;\\n top: calc(50% - 5px);\\n margin-left: 0;\\n margin-right: 0;\\n}\\n.tooltip.popover .popover-inner[data-v-306c900d] {\\n background: #ffef93;\\n color: #555;\\n padding: 24px;\\n border-radius: 5px;\\n box-shadow: 0 5px 30px rgba(black, 0.1);\\n}\\n.tooltip.popover .popover-arrow[data-v-306c900d] {\\n border-color: #ffef93;\\n}\\n.tooltip[aria-hidden='true'][data-v-306c900d] {\\n visibility: hidden;\\n opacity: 0;\\n transition: opacity 0.15s, visibility 0.15s;\\n}\\n.tooltip[aria-hidden='false'][data-v-306c900d] {\\n visibility: visible;\\n opacity: 1;\\n transition: opacity 0.15s;\\n}\\n.vertical-align[data-v-306c900d] {\\n display: flex;\\n align-items: center;\\n}\\n.vertical-align > p[data-v-306c900d] {\\n margin: auto 10px;\\n}\\n.pattern > span[data-v-306c900d] {\\n position: absolute;\\n top: 0;\\n left: 25px;\\n color: black;\\n background-color: grey;\\n padding: 1px 5px;\\n opacity: 0.8;\\n border-radius: 5px;\\n}\\n.pattern[data-v-306c900d] {\\n position: relative;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/search-template-custom.vue\"],\"names\":[],\"mappings\":\";AA4TA;IACA,UAAA;IACA,QAAA;IACA,kBAAA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,cAAA;IACA,iBAAA;IACA,mBAAA;IACA,wBAAA;IACA,WAAA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,yBAAA;AACA;AAEA;IACA,UAAA;AACA;AAEA;IACA,yBAAA;IACA,cAAA;AACA;AAEA;IACA,mBAAA;IACA,WAAA;IACA,mBAAA;IACA,qBAAA;IACA,yBAAA;IACA,uDAAA;IACA,oDAAA;IACA,+CAAA;AACA;AAEA;IACA,QAAA;IACA,SAAA;IACA,kBAAA;IACA,WAAA;IACA,yBAAA;IACA,UAAA;AACA;AAEA;IACA,kBAAA;AACA;AAEA;IACA,2BAAA;IACA,yCAAA;IACA,0CAAA;IACA,2CAAA;IACA,YAAA;IACA,qBAAA;IACA,aAAA;IACA,gBAAA;AACA;AAEA;IACA,eAAA;AACA;AAEA;IACA,2BAAA;IACA,yCAAA;IACA,0CAAA;IACA,wCAAA;IACA,SAAA;IACA,qBAAA;IACA,aAAA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,2BAAA;IACA,yCAAA;IACA,wCAAA;IACA,2CAAA;IACA,UAAA;IACA,oBAAA;IACA,cAAA;IACA,eAAA;AACA;AAEA;IACA,iBAAA;AACA;AAEA;IACA,2BAAA;IACA,wCAAA;IACA,0CAAA;IACA,2CAAA;IACA,WAAA;IACA,oBAAA;IACA,cAAA;IACA,eAAA;AACA;AAEA;IACA,mBAAA;IACA,WAAA;IACA,aAAA;IACA,kBAAA;IACA,uCAAA;AACA;AAEA;IACA,qBAAA;AACA;AAEA;IACA,kBAAA;IACA,UAAA;IACA,2CAAA;AACA;AAEA;IACA,mBAAA;IACA,UAAA;IACA,yBAAA;AACA;AAEA;IACA,aAAA;IACA,mBAAA;AACA;AAEA;IACA,iBAAA;AACA;AAEA;IACA,kBAAA;IACA,MAAA;IACA,UAAA;IACA,YAAA;IACA,sBAAA;IACA,gBAAA;IACA,YAAA;IACA,kBAAA;AACA;AAEA;IACA,kBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.show-template[data-v-3d65af5e] {\\n left: -8px;\\n top: 4px;\\n position: absolute;\\n z-index: 10;\\n opacity: 0.6;\\n}\\n.template-example[data-v-3d65af5e] {\\n display: block;\\n line-height: 20px;\\n margin-bottom: 15px;\\n padding: 2px 5px 2px 2px;\\n clear: left;\\n max-width: 338px;\\n}\\n.template-wrapper[data-v-3d65af5e] {\\n max-width: 350px;\\n}\\n.tooltip-wrapper-pattern[data-v-3d65af5e] {\\n max-width: 350px;\\n}\\n.invalid[data-v-3d65af5e] {\\n background-color: #ff5b5b;\\n}\\n.tooltip[data-v-3d65af5e] {\\n display: block !important;\\n z-index: 10000;\\n}\\n.tooltip .tooltip-inner[data-v-3d65af5e] {\\n background: #ffef93;\\n color: #555;\\n border-radius: 16px;\\n padding: 5px 10px 4px;\\n border: 1px solid #f1d031;\\n -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\\n}\\n.tooltip .tooltip-arrow[data-v-3d65af5e] {\\n width: 0;\\n height: 0;\\n position: absolute;\\n margin: 5px;\\n border: 1px solid #ffef93;\\n z-index: 1;\\n}\\n.tooltip[x-placement^='top'][data-v-3d65af5e] {\\n margin-bottom: 5px;\\n}\\n.tooltip[x-placement^='top'] .tooltip-arrow[data-v-3d65af5e] {\\n border-width: 5px 5px 0 5px;\\n border-left-color: transparent !important;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n bottom: -5px;\\n left: calc(50% - 4px);\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.tooltip[x-placement^='bottom'][data-v-3d65af5e] {\\n margin-top: 5px;\\n}\\n.tooltip[x-placement^='bottom'] .tooltip-arrow[data-v-3d65af5e] {\\n border-width: 0 5px 5px 5px;\\n border-left-color: transparent !important;\\n border-right-color: transparent !important;\\n border-top-color: transparent !important;\\n top: -5px;\\n left: calc(50% - 4px);\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.tooltip[x-placement^='right'][data-v-3d65af5e] {\\n margin-left: 5px;\\n}\\n.tooltip[x-placement^='right'] .tooltip-arrow[data-v-3d65af5e] {\\n border-width: 5px 5px 5px 0;\\n border-left-color: transparent !important;\\n border-top-color: transparent !important;\\n border-bottom-color: transparent !important;\\n left: -4px;\\n top: calc(50% - 5px);\\n margin-left: 0;\\n margin-right: 0;\\n}\\n.tooltip[x-placement^='left'][data-v-3d65af5e] {\\n margin-right: 5px;\\n}\\n.tooltip[x-placement^='left'] .tooltip-arrow[data-v-3d65af5e] {\\n border-width: 5px 0 5px 5px;\\n border-top-color: transparent !important;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n right: -4px;\\n top: calc(50% - 5px);\\n margin-left: 0;\\n margin-right: 0;\\n}\\n.tooltip.popover .popover-inner[data-v-3d65af5e] {\\n background: #ffef93;\\n color: #555;\\n padding: 24px;\\n border-radius: 5px;\\n box-shadow: 0 5px 30px rgba(black, 0.1);\\n}\\n.tooltip.popover .popover-arrow[data-v-3d65af5e] {\\n border-color: #ffef93;\\n}\\n.tooltip[aria-hidden='true'][data-v-3d65af5e] {\\n visibility: hidden;\\n opacity: 0;\\n transition: opacity 0.15s, visibility 0.15s;\\n}\\n.tooltip[aria-hidden='false'][data-v-3d65af5e] {\\n visibility: visible;\\n opacity: 1;\\n transition: opacity 0.15s;\\n}\\n.template-title[data-v-3d65af5e] {\\n padding: 0 0 3px 5px;\\n display: inline-block;\\n}\\n.template-remove[data-v-3d65af5e] {\\n float: right;\\n margin-right: 4px;\\n margin-top: 2px;\\n}\\n.template-remove[data-v-3d65af5e]:hover {\\n animation-name: spin-data-v-3d65af5e;\\n animation-duration: 500ms;\\n animation-timing-function: ease-out;\\n}\\n@keyframes spin-data-v-3d65af5e {\\nfrom {\\n transform: rotate(0deg);\\n}\\nto {\\n transform: rotate(180deg);\\n}\\n}\\n.template-body[data-v-3d65af5e] {\\n display: flex;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/search-template-pattern.vue\"],\"names\":[],\"mappings\":\";AAkMA;IACA,UAAA;IACA,QAAA;IACA,kBAAA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,cAAA;IACA,iBAAA;IACA,mBAAA;IACA,wBAAA;IACA,WAAA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,yBAAA;AACA;AAEA;IACA,yBAAA;IACA,cAAA;AACA;AAEA;IACA,mBAAA;IACA,WAAA;IACA,mBAAA;IACA,qBAAA;IACA,yBAAA;IACA,uDAAA;IACA,oDAAA;IACA,+CAAA;AACA;AAEA;IACA,QAAA;IACA,SAAA;IACA,kBAAA;IACA,WAAA;IACA,yBAAA;IACA,UAAA;AACA;AAEA;IACA,kBAAA;AACA;AAEA;IACA,2BAAA;IACA,yCAAA;IACA,0CAAA;IACA,2CAAA;IACA,YAAA;IACA,qBAAA;IACA,aAAA;IACA,gBAAA;AACA;AAEA;IACA,eAAA;AACA;AAEA;IACA,2BAAA;IACA,yCAAA;IACA,0CAAA;IACA,wCAAA;IACA,SAAA;IACA,qBAAA;IACA,aAAA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,2BAAA;IACA,yCAAA;IACA,wCAAA;IACA,2CAAA;IACA,UAAA;IACA,oBAAA;IACA,cAAA;IACA,eAAA;AACA;AAEA;IACA,iBAAA;AACA;AAEA;IACA,2BAAA;IACA,wCAAA;IACA,0CAAA;IACA,2CAAA;IACA,WAAA;IACA,oBAAA;IACA,cAAA;IACA,eAAA;AACA;AAEA;IACA,mBAAA;IACA,WAAA;IACA,aAAA;IACA,kBAAA;IACA,uCAAA;AACA;AAEA;IACA,qBAAA;AACA;AAEA;IACA,kBAAA;IACA,UAAA;IACA,2CAAA;AACA;AAEA;IACA,mBAAA;IACA,UAAA;IACA,yBAAA;AACA;AAEA;IACA,oBAAA;IACA,qBAAA;AACA;AAEA;IACA,YAAA;IACA,iBAAA;IACA,eAAA;AACA;AAEA;IACA,oCAAA;IACA,yBAAA;IACA,mCAAA;AACA;AAEA;AACA;QACA,uBAAA;AACA;AAEA;QACA,yBAAA;AACA;AACA;AAEA;IACA,aAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.mobile-select[data-v-9ee8b12a] {\\n width: 110px;\\n font-size: x-small;\\n}\\n.search-wrapper[data-v-9ee8b12a] {\\n float: left;\\n}\\n.search-wrapper > img[data-v-9ee8b12a] {\\n cursor: pointer;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/search.vue\"],\"names\":[],\"mappings\":\";AA8KA;IACA,YAAA;IACA,kBAAA;AACA;AAEA;IACA,WAAA;AACA;AAEA;IACA,eAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ndiv.select-list ul[data-v-1843461f] {\\n padding-left: 0;\\n}\\ndiv.select-list li[data-v-1843461f] {\\n list-style-type: none;\\n display: flex;\\n}\\ndiv.select-list .new-item[data-v-1843461f] {\\n display: flex;\\n}\\ndiv.select-list .new-item-help[data-v-1843461f] {\\n font-weight: bold;\\n padding-top: 5px;\\n}\\ndiv.select-list input[data-v-1843461f],\\ndiv.select-list img[data-v-1843461f] {\\n display: inline-block;\\n box-sizing: border-box;\\n}\\ndiv.select-list.max-width[data-v-1843461f] {\\n max-width: 450px;\\n}\\ndiv.select-list .switch-input[data-v-1843461f] {\\n left: -8px;\\n top: 4px;\\n position: absolute;\\n z-index: 10;\\n opacity: 0.6;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/select-list.vue\"],\"names\":[],\"mappings\":\";AA6KA;IACA,eAAA;AACA;AAEA;IACA,qBAAA;IACA,aAAA;AACA;AAEA;IACA,aAAA;AACA;AAEA;IACA,iBAAA;IACA,gBAAA;AACA;AAEA;;IAEA,qBAAA;IACA,sBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,UAAA;IACA,QAAA;IACA,kBAAA;IACA,WAAA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nul[data-v-20efe074] {\\n padding-left: 0;\\n}\\nli[data-v-20efe074] {\\n list-style-type: none;\\n}\\n.trakt-list-group[data-v-20efe074] {\\n display: inline-flex;\\n height: 25px;\\n}\\ninput[data-v-20efe074] {\\n display: inline-block;\\n box-sizing: border-box;\\n}\\ninput.available-list[data-v-20efe074] {\\n height: 22px;\\n}\\ninput[type=checkbox][data-v-20efe074] {\\n width: 20px;\\n height: 20px;\\n}\\n.max-width[data-v-20efe074] {\\n max-width: 450px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/select-trakt-lists.vue\"],\"names\":[],\"mappings\":\";AA2CA;IACA,eAAA;AACA;AAEA;IACA,qBAAA;AACA;AAEA;IACA,oBAAA;IACA,YAAA;AACA;AAEA;IACA,qBAAA;IACA,sBAAA;AACA;AAEA;IACA,YAAA;AACA;AAEA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,gBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nselect.select-show {\\n display: inline-block;\\n height: 25px;\\n padding: 1px;\\n min-width: 200px;\\n}\\n.show-selector {\\n height: 31px;\\n display: table-cell;\\n left: 20px;\\n margin-bottom: 5px;\\n}\\n@media (max-width: 767px) and (min-width: 341px) {\\n.select-show-group,\\n .select-show {\\n width: 100%;\\n}\\n}\\n@media (max-width: 340px) {\\n.select-show-group {\\n width: 100%;\\n}\\n}\\n@media (max-width: 767px) {\\n.show-selector {\\n float: left;\\n width: 100%;\\n}\\n.select-show {\\n width: 100%;\\n}\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/show-selector.vue\"],\"names\":[],\"mappings\":\";AAuHA;IACA,qBAAA;IACA,YAAA;IACA,YAAA;IACA,gBAAA;AACA;AAEA;IACA,YAAA;IACA,mBAAA;IACA,UAAA;IACA,kBAAA;AACA;AAEA;AACA;;QAEA,WAAA;AACA;AACA;AAEA;AACA;QACA,WAAA;AACA;AACA;AAEA;AACA;QACA,WAAA;QACA,WAAA;AACA;AAEA;QACA,WAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ndiv.select-list ul[data-v-48a6e4c2] {\\n padding-left: 0;\\n}\\ndiv.select-list li[data-v-48a6e4c2] {\\n list-style-type: none;\\n display: flex;\\n}\\ndiv.select-list .new-item[data-v-48a6e4c2] {\\n display: flex;\\n}\\ndiv.select-list .new-item-help[data-v-48a6e4c2] {\\n font-weight: bold;\\n padding-top: 5px;\\n}\\ndiv.select-list input[data-v-48a6e4c2],\\ndiv.select-list img[data-v-48a6e4c2] {\\n display: inline-block;\\n box-sizing: border-box;\\n}\\ndiv.select-list.max-width[data-v-48a6e4c2] {\\n max-width: 450px;\\n}\\ndiv.select-list .switch-input[data-v-48a6e4c2] {\\n left: -8px;\\n top: 4px;\\n position: absolute;\\n z-index: 10;\\n opacity: 0.6;\\n}\\n.draggable-list[data-v-48a6e4c2] {\\n list-style: none;\\n}\\n.draggable-input-group[data-v-48a6e4c2] {\\n display: inline-flex;\\n width: 300px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/sorted-select-list.vue\"],\"names\":[],\"mappings\":\";AA8IA;IACA,eAAA;AACA;AAEA;IACA,qBAAA;IACA,aAAA;AACA;AAEA;IACA,aAAA;AACA;AAEA;IACA,iBAAA;IACA,gBAAA;AACA;AAEA;;IAEA,qBAAA;IACA,sBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,UAAA;IACA,QAAA;IACA,kBAAA;IACA,WAAA;IACA,YAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,oBAAA;IACA,YAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\npre[data-v-44a40dd8] {\\n word-wrap: break-word;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/test-guessit.vue\"],\"names\":[],\"mappings\":\";AAoDA;IACA,qBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.test-provider[data-v-1c908779] {\\n float: left;\\n}\\n.test-provider > button[data-v-1c908779] {\\n margin: 0 5px;\\n}\\n.testresult[data-v-1c908779] {\\n border-style: solid;\\n border-width: 1px;\\n padding: 1px 4px 4px 4px;\\n border-color: #ccc;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/helpers/test-provider.vue\"],\"names\":[],\"mappings\":\";AA8DA;IACA,WAAA;AACA;AAEA;IACA,aAAA;AACA;AAEA;IACA,mBAAA;IACA,iBAAA;IACA,wBAAA;IACA,kBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* History compact */\\nspan.release-group[data-v-09e6ca40] {\\n cursor: help;\\n margin-right: 5px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/history-compact.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqTA,oBAAA;AACA;IACA,YAAA;IACA,iBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* History tables */\\n.status-name > svg[data-v-499f13b8] {\\n margin-left: 5px;\\n}\\n.vgt-multiselect[data-v-499f13b8] {\\n min-height: 30px;\\n}\\n.multiselect--active[data-v-499f13b8] {\\n min-width: 200px;\\n}\\n.vgt-multiselect[data-v-499f13b8] .multiselect__placeholder {\\n margin-bottom: 0;\\n padding-top: 0;\\n}\\n.vgt-multiselect[data-v-499f13b8] .multiselect__tags {\\n padding-top: 0;\\n min-height: 30px;\\n}\\n:not(tr.status) span.episode-title a[data-v-499f13b8],\\n:not(tr.status) span.show-title a[data-v-499f13b8] {\\n text-decoration: none;\\n color: rgb(255, 255, 255);\\n}\\ntr.status span.episode-title a[data-v-499f13b8],\\ntr span.show-title a[data-v-499f13b8] {\\n text-decoration: none;\\n color: rgb(0, 0, 0);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/history-detailed.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8XA,mBAAA;AACA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;AACA;AAEA;IACA,gBAAA;IACA,cAAA;AACA;AAEA;IACA,cAAA;IACA,gBAAA;AACA;AAEA;;IAEA,qBAAA;IACA,yBAAA;AACA;AAEA;;IAEA,qBAAA;IACA,mBAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nul.list-group > li[data-v-5e3ed5ae] {\\n list-style: none;\\n margin-bottom: 10px;\\n}\\n.home-header-controls[data-v-5e3ed5ae] {\\n display: flex;\\n}\\n.home-header-controls > h2[data-v-5e3ed5ae] {\\n white-space: nowrap;\\n}\\n.home-options[data-v-5e3ed5ae] {\\n align-self: flex-end;\\n width: 100%;\\n}\\n.home-filter-option[data-v-5e3ed5ae] {\\n margin-left: 10px;\\n line-height: 40px;\\n}\\n@media (max-width: 768px) {\\n.show-option[data-v-5e3ed5ae] {\\n width: 100%;\\n display: inline-block;\\n}\\n.show-option-layout > span[data-v-5e3ed5ae] {\\n display: none;\\n}\\n}\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/home.vue\"],\"names\":[],\"mappings\":\";AAuLA;IACA,gBAAA;IACA,mBAAA;AACA;AAEA;IACA,aAAA;AACA;AAEA;IACA,mBAAA;AACA;AAEA;IACA,oBAAA;IACA,WAAA;AACA;AAEA;IACA,iBAAA;IACA,iBAAA;AACA;AAEA;AACA;QACA,WAAA;QACA,qBAAA;AACA;AAEA;QACA,aAAA;AACA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.irc-frame[data-v-e1ac0426] {\\n width: 100%;\\n height: 500px;\\n border: 1px #000 solid;\\n}\\n.loading-spinner[data-v-e1ac0426] {\\n background-position: center center;\\n background-repeat: no-repeat;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/irc.vue\"],\"names\":[],\"mappings\":\";AA2BA;IACA,WAAA;IACA,aAAA;IACA,sBAAA;AACA;AAEA;IACA,kCAAA;IACA,4BAAA;AACA\",\"sourcesContent\":[\"