1 line
66 KiB
JavaScript
1 line
66 KiB
JavaScript
define(["exports","./../globalize.js","./../../emby-apiclient/connectionmanager.js","./../../loading/loading.js","./../dataformatter.js","./../servicelocator.js","./../playback/playbackmanager.js","./../../layoutmanager.js","./../../emby-apiclient/apiclient.js","./../datetime.js"],function(_exports,_globalize,_connectionmanager,_loading,_dataformatter,_servicelocator,_playbackmanager,_layoutmanager,_apiclient,_datetime){function showToast(options){return Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function showAlertAndReject(options,response){function onDone(){return Promise.reject(response)}return function(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}(options).then(onDone,onDone)}function rejectNoSupportedCommands(){return Promise.reject("nocommands")}function rejectNoItems(){return Promise.reject("noitems")}function BaseItemController(){}function canEditInternal(item){if(!item.Id)return!1;switch(item.Type){case"UserRootFolder":case"CollectionFolder":case"UserView":case"PlaylistsFolder":case"ApiKey":case"Program":case"Genre":case"MusicGenre":case"GameGenre":case"Studio":case"Tag":case"RemoteSubtitle":case"Log":case"Timer":case"SeriesTimer":case"Plugin":case"Server":case"ItemImage":case"Recording":case"ActivityLogEntry":case"ActiveSession":return!1;case"ChannelManagementInfo":return item.ManagementId&&item.ManagementId!==item.Id;default:return!_apiclient.default.isLocalItem(item)}}function mapToPlaylistItemId(item){return item.PlaylistItemId}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,BaseItemController.prototype.getTypeNames=function(){return[]},BaseItemController.prototype.getDisplayName=function(item,options){options=options||{};var number,nameSeparator,name,itemType=item.Type;switch(itemType){case"Timer":name=(item=item.ProgramInfo||item).IsSeries||item.EpisodeTitle?item.EpisodeTitle||"":item.Name||item.DisplayTitle||"";break;case"Program":case"Recording":name=item.IsSeries||item.EpisodeTitle?item.EpisodeTitle||"":item.Name||item.DisplayTitle||"";break;case"ApiKey":name=item.AppName;break;case"TvChannel":case"ChannelManagementInfo":return name=item.Name,item.ChannelNumber&&!1!==options.includeIndexNumber?options.channelNumberFirst?item.ChannelNumber+" "+name:name+" "+item.ChannelNumber:name;default:name=item.Name||item.DisplayTitle||""}return!1!==options.enableSpecialEpisodePrefix&&0===item.ParentIndexNumber&&"Episode"===itemType?name=_globalize.default.translate("ValueSpecialEpisodeName",name):null==item.IndexNumber||!1===options.includeIndexNumber||"Episode"!==itemType&&"Program"!==itemType?null!=item.IndexNumber&&!1!==options.includeIndexNumber&&item.SupportsResume&&"Audio"===itemType&&(nameSeparator=" - ",number=item.IndexNumber)&&(name=name?number+nameSeparator+name:number):(number=item.IndexNumber,!(nameSeparator=" - ")!==options.includeParentInfo&&null!=item.ParentIndexNumber?number="S"+item.ParentIndexNumber+":E"+number:nameSeparator=". ",null!=item.IndexNumberEnd&&(number+="-"+item.IndexNumberEnd),number&&(name=name?number+nameSeparator+name:number)),name},BaseItemController.prototype.canAddToCollection=function(item,user){var itemType=item.Type;return("Recording"!==itemType||"Completed"===item.Status)&&!(item.CollectionType||["ActiveSession","Genre","MusicGenre","Studio","GameGenre","Log","Tag","UserView","CollectionFolder","Audio","Program","Timer","SeriesTimer","BoxSet","ApiKey","TvChannel","RemoteSubtitle"].includes(itemType)||_apiclient.default.isLocalItem(item)||"Photo"===item.MediaType||"Device"===itemType||"User"===itemType||"Plugin"===itemType||"Server"===itemType||"ActivityLogEntry"===itemType||"ItemImage"===itemType||"LiveTVTunerDevice"===itemType||"LiveTVGuideSource"===itemType||"ChannelManagementInfo"===itemType||!item.Id)&&(!user||!!user.Policy.IsAdministrator&&canEditInternal(item))},BaseItemController.prototype.removeFromPlayQueue=function(items,options){return _playbackmanager.default.removeFromPlaylist(items.map(mapToPlaylistItemId))},BaseItemController.prototype.canRemoveFromCollection=function(item){return item.CollectionId&&this.canAddToCollection(item)},BaseItemController.prototype.canAddToPlaylist=function(item){var mediaType,itemType=item.Type;return"Program"!==itemType&&"TvChannel"!==itemType&&"Timer"!==itemType&&"SeriesTimer"!==itemType&&"VirtualFolder"!==itemType&&"ActiveSession"!==itemType&&("Recording"!==itemType||"Completed"===item.Status)&&"Photo"!==(mediaType=item.MediaType)&&"Game"!==mediaType&&"livetv"!==(mediaType=item.CollectionType)&&"playlists"!==mediaType&&!_apiclient.default.isLocalItem(item)&&(!(!item.IsFolder&&"Genre"!==itemType&&"MusicGenre"!==itemType&&"MusicAlbum"!==itemType&&"MusicArtist"!==itemType&&"Studio"!==itemType&&"Tag"!==itemType)||"Device"!==itemType&&"User"!==itemType&&"Plugin"!==itemType&&"Log"!==itemType&&"Server"!==itemType&&"ActivityLogEntry"!==itemType&&"ApiKey"!==itemType&&!!item.Id&&item.MediaType)},BaseItemController.prototype.canRemoveFromPlayQueue=function(item){return item.PlaylistItemId&&!item.PlaylistId},BaseItemController.prototype.canRemoveFromPlaylist=function(item){return item.PlaylistItemId&&item.PlaylistId},BaseItemController.prototype.canManageMultiVersionGrouping=function(item,user){return!item.IsFolder&&"Video"===item.MediaType&&!_apiclient.default.isLocalItem(item)&&!!user.Policy.IsAdministrator&&"TvChannel"!==item.Type},BaseItemController.prototype.canRate=function(item){if(!item.UserData)return!1;switch(item.Type){case"Program":case"Timer":case"SeriesTimer":case"CollectionFolder":case"UserView":case"Channel":case"Season":case"Studio":case"Folder":return!1;default:return!0}},BaseItemController.prototype.canMarkPlayed=function(item){if(item.SupportsResume)return!0;switch(item.Type){case"AudioBook":case"Series":case"Season":case"Recording":return!0;case"TvChannel":case"Program":return!1;case"Folder":return!0;case"CollectionFolder":return"boxsets"===item.CollectionType||"playlists"===item.CollectionType||"music"===item.CollectionType?!1:!0}switch(item.MediaType){case"Game":case"Book":case"Video":return!0}return!1},BaseItemController.prototype.canConvert=function(item,user){if(!item.Id)return!1;switch(item.MediaType){case"Book":case"Photo":case"Game":case"Audio":return!1}switch(item.CollectionType){case"livetv":case"playlists":case"boxsets":return!1}switch(item.Type){case"Book":case"Photo":case"Game":case"Audio":case"TvChannel":case"Channel":case"Person":case"Year":case"Program":case"Timer":case"SeriesTimer":case"GameGenre":case"Device":case"User":case"Log":case"Plugin":case"VirtualFolder":case"ItemImage":case"Server":case"ActivityLogEntry":case"ApiKey":case"LiveTVTunerDevice":case"LiveTVGuideSource":case"ChannelManagementInfo":case"ActiveSession":case"RemoteSubtitle":return!1}return!("Virtual"===item.LocationType&&!item.IsFolder||!user.Policy.EnableMediaConversion||_apiclient.default.isLocalItem(item))},BaseItemController.prototype.getEditCommandText=function(item){switch(item.Type){case"Timer":case"SeriesTimer":case"User":case"VirtualFolder":case"LiveTVTunerDevice":case"LiveTVGuideSource":case"ChannelManagementInfo":return _globalize.default.translate("Edit");default:return _globalize.default.translate("HeaderEditMetadata")}},BaseItemController.prototype.editItems=function(items,options){if(!items.length)return rejectNoItems();switch(items[0].Type){case"Device":case"User":case"ActiveSession":case"SeriesTimer":case"Timer":case"LiveTVTunerDevice":case"LiveTVGuideSource":return rejectNoSupportedCommands();case"VirtualFolder":return function(item,options){var view=(options=options.positionTo).closest(".page"),refreshLibrary=!!options&&"true"===view.getAttribute("data-refreshlibrary");return require(["medialibraryeditor"]).then(function(responses){return(new responses[0]).show({refresh:refreshLibrary,library:item})})}(items[0],options);default:return function(items){return require(["metadataEditor"]).then(function(responses){var responses=new responses[0],item=items[0],apiClient=_connectionmanager.default.getApiClient(item);return responses.show(item.Id,apiClient.serverId())})}(items)}},BaseItemController.prototype.canEdit=function(item,user){return canEditInternal(item)&&user.Policy.IsAdministrator},BaseItemController.prototype.canSync=function(item,user){return!(user&&!user.Policy.EnableContentDownloading||_apiclient.default.isLocalItem(item))&&item.SupportsSync},BaseItemController.prototype.canDownloadSubtitles=function(item,user){switch(item.Type){case"Movie":case"Episode":return this.canEditSubtitles(item,user);default:return!1}},BaseItemController.prototype.canIdentify=function(item,user){var itemType=item.Type;return!("Movie"!==itemType&&"Trailer"!==itemType&&"Series"!==itemType&&"Game"!==itemType&&"BoxSet"!==itemType&&"Person"!==itemType&&"Book"!==itemType&&"MusicAlbum"!==itemType&&"MusicArtist"!==itemType&&"MusicVideo"!==itemType||!user.Policy.IsAdministrator||_apiclient.default.isLocalItem(item))},BaseItemController.prototype.canShare=function(item,user){if(!user)return!1;switch(item.Type){case"TvChannel":case"Channel":case"Person":case"Year":case"Program":case"Timer":case"SeriesTimer":case"GameGenre":case"MusicGenre":case"Genre":case"Device":case"User":case"Plugin":case"Server":case"ActivityLogEntry":case"ApiKey":case"Tag":case"VirtualFolder":case"ItemImage":case"LiveTVTunerDevice":case"LiveTVGuideSource":case"ChannelManagementInfo":case"ActiveSession":case"CollectionFolder":case"UserView":case"RemoteSubtitle":case"Recording":return!1;default:return item.Id?!_apiclient.default.isLocalItem(item)&&user.Policy.EnablePublicSharing&&"Photo"===item.Type&&_servicelocator.appHost.supports("sharing"):!1}},BaseItemController.prototype.canEditImages=function(item,user){var itemType=item.Type;if("Photo"===item.MediaType)return!1;if(("CollectionFolder"===itemType||"UserView"===itemType||"PlaylistsFolder"===itemType||"Genre"===itemType||"MusicGenre"===itemType||"GameGenre"===itemType||"Studio"===itemType||"Tag"===itemType)&&!_apiclient.default.isLocalItem(item))return!!user.Policy.IsAdministrator;switch(itemType){case"Device":case"User":case"Plugin":case"LiveTVTunerDevice":case"LiveTVGuideSource":case"Recording":if("Completed"!==item.Status)return!1}return canEditInternal(item)&&user.Policy.IsAdministrator},BaseItemController.prototype.canEditSubtitles=function(item,user){if(function(item){var itemType=item.Type;return"Video"===item.MediaType&&"TvChannel"!==itemType&&"Program"!==itemType&&"Virtual"!==item.LocationType&&("Recording"!==itemType||"Completed"===item.Status)||"Audio"===item.MediaType}(item)){if(user.Policy.EnableSubtitleDownloading||user.Policy.EnableSubtitleManagement)return canEditInternal(item);if(null==user.Policy.EnableSubtitleDownloading&&null==user.Policy.EnableSubtitleManagement)return canEditInternal(item)&&user.Policy.IsAdministrator}return!1},BaseItemController.prototype.canScanLibraryFiles=function(item,user){switch(item.Type){case"Playlist":case"Genre":case"MusicGenre":case"GameGenre":case"Channel":case"MusicArtist":return!1;default:return this.canRefreshMetadata(item,user)&&item.IsFolder}},BaseItemController.prototype.canRefreshMetadata=function(item,user){if(!item.Id)return!1;var itemType=item.Type;switch(itemType){case"Device":case"User":case"Plugin":case"Server":case"ActivityLogEntry":case"ApiKey":case"ItemImage":case"Log":case"LiveTVTunerDevice":case"LiveTVGuideSource":case"ChannelManagementInfo":case"ActiveSession":case"RemoteSubtitle":return!1}switch(item.CollectionType){case"livetv":case"boxsets":return!1}return!(!user.Policy.IsAdministrator||"Timer"===itemType||"SeriesTimer"===itemType||"Program"===itemType||"TvChannel"===itemType||"Recording"===itemType&&"Completed"!==item.Status||_apiclient.default.isLocalItem(item))},BaseItemController.prototype.canDelete=function(item,user){if(item.CanDelete)return!0;var itemType=item.Type;switch(itemType){case"Server":case"ItemImage":return!0;case"Timer":case"SeriesTimer":case"Recording":return null==user?void 0:user.Policy.EnableLiveTvManagement}if(user){if(("LiveTVTunerDevice"===itemType||"LiveTVGuideSource"===itemType)&&user.Policy.IsAdministrator)return!0;if("Plugin"===item.Type&&user.Policy.IsAdministrator)return!0;if(user.Policy.IsAdministrator&&"User"===item.Type&&item.Id!==_connectionmanager.default.getApiClient(item).getCurrentUserId())return!0;if(user.Policy.IsAdministrator&&"Device"===item.Type&&item.Id!==_connectionmanager.default.deviceId())return!0;if("MediaStream"===item.Type&&(user.Policy.EnableSubtitleManagement||null==user.Policy.EnableSubtitleManagement&&user.Policy.IsAdministrator)&&item.IsExternal)return!0;if("VirtualFolder"===itemType&&user.Policy.IsAdministrator&&"boxsets"!==item.CollectionType)return!0}return!1},BaseItemController.prototype.isSingleItemFetchRequired=function(type){switch(type){case"Plugin":case"Device":case"Server":case"Log":case"ApiKey":case"ActivityLogEntry":case"MediaStream":case"RemoteSubtitle":case"ItemImage":case"LiveTVTunerDevice":case"LiveTVGuideSource":case"ChannelManagementInfo":case"ActiveSession":case"ScheduledTask":return!1;default:return!0}};var defaultIconsByItemType={MusicAlbum:"",MusicArtist:"",Person:"",Channel:"",Device:"",ActiveSession:"",User:"",Server:"",SelectServer:"",ManualLogin:"",Downloads:"",CollectionFolder:"",UserView:"",ForgotPassword:"",AddServer:"",AddVirtualFolder:"",ActivityLogEntry:"",Log:"",ApiKey:"",Tag:"",ItemImage:"",PluginCatalogItem:"",TvChannel:"",ChannelManagementInfo:"",RemoteSubtitle:"",LiveTVTunerDevice:"",LiveTVGuideSource:"",Playlist:""},defaultIconsByCollectionType={movies:"",music:"",audiobooks:"",homevideos:"",photos:"",livetv:"",tvshows:"",games:"",trailers:"",musicvideos:"",books:"",channels:"",playlists:"",boxsets:""},defaultIconsByStreamType={Audio:"",Video:"",Subtitle:"",EmbeddedImage:"",Lyrics:"&#e0c9;"},defaultIconsByMediaType={Video:"",Audio:"",Photo:"",Book:"",Game:""},DeleteMessages=(BaseItemController.prototype.getDefaultIcon=function(item){var icon,collectionType=item.CollectionType;return collectionType&&(icon=defaultIconsByCollectionType[collectionType])||(collectionType=item.Type)&&(icon=defaultIconsByItemType[collectionType])||(collectionType=item.StreamType)&&("Lyrics"===item.SubtitleType&&(collectionType="Lyrics"),icon=defaultIconsByStreamType[collectionType])||(collectionType=item.MediaType)&&(icon=defaultIconsByMediaType[collectionType])?icon:""},{Item:{single:{text:_globalize.default.translate("ConfirmDeleteItem")+"\n\n"+_globalize.default.translate("AreYouSureToContinue"),title:_globalize.default.translate("HeaderDeleteItem")},plural:{text:_globalize.default.translate("ConfirmDeleteItems")+"\n\n"+_globalize.default.translate("AreYouSureToContinue"),title:_globalize.default.translate("HeaderDeleteItems")}},Device:{single:{text:_globalize.default.translate("DeleteDeviceConfirmation"),title:_globalize.default.translate("HeaderDeleteDevice")},plural:{text:_globalize.default.translate("DeleteDeviceConfirmation"),title:_globalize.default.translate("HeaderDeleteDevice")}},Plugin:{single:{text:_globalize.default.translate("UninstallPluginConfirmation"),title:_globalize.default.translate("HeaderUninstallPlugin"),confirmText:_globalize.default.translate("Uninstall")},plural:{text:_globalize.default.translate("UninstallPluginConfirmation"),title:_globalize.default.translate("HeaderUninstallPlugin"),confirmText:_globalize.default.translate("Uninstall")}},Server:{single:{text:"DeleteServerConfirmation",title:_globalize.default.translate("HeaderDeleteServer")},plural:{text:"DeleteServerConfirmation",title:_globalize.default.translate("HeaderDeleteServer")}},User:{single:{text:"DeleteUserConfirmation",title:_globalize.default.translate("HeaderDeleteUser")},plural:{text:"DeleteUserConfirmation",title:_globalize.default.translate("HeaderDeleteUser")}},LiveTVGuideSource:{single:{text:"MessageConfirmDeleteGuideProvider",title:_globalize.default.translate("HeaderDeleteProvider")},plural:{text:"MessageConfirmDeleteGuideProvider",title:_globalize.default.translate("HeaderDeleteProvider")}},LiveTVTunerDevice:{single:{text:"MessageConfirmDeleteTunerDevice",title:_globalize.default.translate("HeaderDeleteDevice")},plural:{text:"MessageConfirmDeleteTunerDevice",title:_globalize.default.translate("HeaderDeleteDevice")}},ApiKey:{single:{text:"MessageConfirmRevokeApiKey",title:_globalize.default.translate("HeaderConfirmRevokeApiKey")},plural:{text:"MessageConfirmRevokeApiKey",title:_globalize.default.translate("HeaderConfirmRevokeApiKey")}},ItemImage:{single:{text:"ConfirmDeleteImage"},plural:{text:"ConfirmDeleteImage"}},Timer:{single:{text:"MessageConfirmRecordingCancellation",title:_globalize.default.translate("HeaderCancelRecording"),confirmText:_globalize.default.translate("HeaderCancelRecording"),cancelText:_globalize.default.translate("HeaderKeepRecording"),notification:"RecordingCancelled"},plural:{text:"MessageConfirmRecordingCancellation",title:_globalize.default.translate("HeaderCancelRecording"),confirmText:_globalize.default.translate("HeaderCancelRecording"),cancelText:_globalize.default.translate("HeaderKeepRecording"),notification:"RecordingCancelled"}},Recording:{single:{text:"MessageConfirmRecordingCancellation",title:_globalize.default.translate("HeaderCancelRecording"),confirmText:_globalize.default.translate("HeaderCancelRecording"),cancelText:_globalize.default.translate("HeaderKeepRecording"),notification:"RecordingCancelled"},plural:{text:"MessageConfirmRecordingCancellation",title:_globalize.default.translate("HeaderCancelRecording"),confirmText:_globalize.default.translate("HeaderCancelRecording"),cancelText:_globalize.default.translate("HeaderKeepRecording"),notification:"RecordingCancelled"}},SeriesTimer:{single:{text:"MessageConfirmRecordingCancellation",title:_globalize.default.translate("HeaderCancelSeries"),confirmText:_globalize.default.translate("HeaderCancelSeries"),cancelText:_globalize.default.translate("HeaderKeepSeries"),notification:"SeriesCancelled"},plural:{text:"MessageConfirmRecordingCancellation",title:_globalize.default.translate("HeaderCancelSeries"),confirmText:_globalize.default.translate("HeaderCancelSeries"),cancelText:_globalize.default.translate("HeaderKeepSeries"),notification:"SeriesCancelled"}},VirtualFolder:{single:{text:"MessageAreYouSureYouWishToRemoveLibrary",title:_globalize.default.translate("HeaderRemoveLibrary"),confirmText:_globalize.default.translate("Remove")},plural:{text:"MessageAreYouSureYouWishToRemoveLibrary",title:_globalize.default.translate("HeaderRemoveLibrary"),confirmText:_globalize.default.translate("Remove")}}});function filterItemsByMethod(instance,items,method,user,limit){for(var list=[],i=0,length=items.length;i<length;i++){var item=items[i];if(instance[method](item,user)&&(list.push(item),limit)&&limit<=list.length)break}return list}function addToList(items,listType){return require(["addToList"]).then(function(responses){return(new responses[0]).show({items:items,type:listType})})}function getNameSortOption(itemType){switch(itemType){case"Device":case"ApiKey":case"Log":case"Plugin":case"ActivityLogEntry":case"GameSystem":case"User":return null;default:return{name:_globalize.default.translate("Title"),value:"SortName",defaultSortOrder:"Ascending"}}}function getNumberSortOption(itemType){return"TvChannel"!==itemType?{name:_globalize.default.translate("Number"),value:"ParentIndexNumber,IndexNumber,SortName",defaultSortOrder:"Ascending"}:{name:_globalize.default.translate("ChannelNumber"),value:"ChannelNumber,SortName",defaultSortOrder:"Ascending"}}function getFileSortOption(){return{name:_globalize.default.translate("FileName"),value:"IsFolder,Filename"}}function getDateAddedSortOption(itemType){switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Video":case"Game":case"Book":case"Person":case"Photo":case"TvChannel":return{name:_globalize.default.translate("DateAdded"),value:"DateCreated,SortName",defaultSortOrder:"Descending"}}}function getDatePlayedSortOption(itemType){return"Series"!==itemType?{name:_globalize.default.translate("DatePlayed"),value:"DatePlayed,SortName",defaultSortOrder:"Descending"}:{name:_globalize.default.translate("DatePlayed"),value:"SeriesDatePlayed,SortName",defaultSortOrder:"Descending"}}function getCriticRatingSortOption(){return{name:_globalize.default.translate("CriticRating"),value:"CriticRating,SortName",defaultSortOrder:"Descending"}}function getPlayCountSortOption(){return{name:_globalize.default.translate("Plays"),value:"PlayCount,SortName",defaultSortOrder:"Descending"}}function getRuntimeSortOption(){return{name:_globalize.default.translate("Runtime"),value:"Runtime,SortName",defaultSortOrder:"Ascending"}}function getParentalRatingSortOption(){return{name:_globalize.default.translate("ParentalRating"),value:"OfficialRating,SortName",defaultSortOrder:"Descending"}}function getProductionYearSortOption(){return{name:_globalize.default.translate("Year"),value:"ProductionYear,SortName",defaultSortOrder:"Descending"}}function getStartDateSortOption(itemType){return"Program"!==itemType?null:{name:_globalize.default.translate("AirDate"),value:"StartDate",defaultSortOrder:"Ascending"}}function getCommunityRatingOptionName(itemType){switch(itemType){case"Movie":case"Trailer":case"Series":return _globalize.default.translate("ImdbRating")}return _globalize.default.translate("CommunityRating")}function getCommunityRatingSortOption(itemType){return{name:getCommunityRatingOptionName(itemType),value:"CommunityRating,SortName",defaultSortOrder:"Descending"}}function getContainerSortOption(){return{name:_globalize.default.translate("Container"),value:"Container,SortName",defaultSortOrder:"Descending"}}function getSizeSortOption(itemType){return"Log"!==itemType?{name:_globalize.default.translate("Size"),value:"Size,SortName",defaultSortOrder:"Descending"}:null}function getBitrateSortOption(){return{name:_globalize.default.translate("Bitrate"),value:"TotalBitrate,SortName",defaultSortOrder:"Descending"}}function getResolutionSortOption(){return{name:_globalize.default.translate("Resolution"),value:"Resolution,SortName",defaultSortOrder:"Descending"}}function getReleaseDateSortOption(){return{name:_globalize.default.translate("ReleaseDate"),value:"ProductionYear,PremiereDate,SortName",defaultSortOrder:"Descending"}}function getSeriesSortOption(itemType){return"Episode"!==itemType?null:{name:_globalize.default.translate("Series"),value:"SeriesSortName,ParentIndexNumber,IndexNumber,SortName",defaultSortOrder:"Ascending"}}function getAlbumSortOption(){return{name:_globalize.default.translate("Album"),value:"Album,ParentIndexNumber,IndexNumber"}}function getArtistSortValue(){return"Artist,Album,ParentIndexNumber,IndexNumber,SortName"}function getArtistSortOption(){return{name:_globalize.default.translate("Artist"),value:getArtistSortValue()}}function getComposerSortOption(){return{name:_globalize.default.translate("Composer"),value:getArtistSortValue().replace("Artist","Composer")}}function getAlbumArtistSortOption(){return{name:_globalize.default.translate("AlbumArtist"),value:getArtistSortValue().replace("Artist","AlbumArtist")}}function getColumnSize(id){switch(id){case"IndexNumber":case"ParentIndexNumber":case"Video3DFormat":return 3;case"ProductionYear":case"PlayCount":case"Played":case"IsFavorite":return 4;case"CommunityRating":case"CriticRating":case"Number":return 6;case"EpisodeNumber":case"Runtime":return 10;case"Date":case"Bitrate":case"Size":case"Resolution":case"Container":case"Version":return 12;case"DateTime":return 20;case"Artist":case"AlbumArtist":case"Composer":case"SeriesName":case"Album":case"Genres":return 30;case"Studios":case"Name":case"OriginalTitle":case"SortName":case"Filename":return 40;case"Path":return 80;default:return 15}}function compareByName(a,b){a=a.menuSortKey||a.name,b=b.menuSortKey||b.name;return a<b?-1:b<a?1:0}BaseItemController.prototype.getDeleteMessages=function(item){return"MediaStream"===item.Type&&"Subtitle"===item.StreamType?{single:{text:"MessageAreYouSureDeleteSubtitles",title:_globalize.default.translate("ConfirmDeletion"),confirmText:_globalize.default.translate("Delete")},plural:{text:"MessageAreYouSureDeleteSubtitles",title:_globalize.default.translate("ConfirmDeletion"),confirmText:_globalize.default.translate("Delete")}}:DeleteMessages[item.Type]},BaseItemController.prototype.getDeleteMessageOptions=function(options){var options=options.items,info=this.getDeleteMessages(options[0])||DeleteMessages.Item,info=1<options.length?info.plural:info.single;return(info=Object.assign({},info)).primary="cancel",info.confirmText||(info.confirmText=_globalize.default.translate("Delete")),1===options.length?info.text=_globalize.default.translate(info.text,options[0].Name):info.text=_globalize.default.translate(info.text,options.length),info},BaseItemController.prototype.showSeriesDeleteConfirmation=function(options){var item=options.items[0],apiClient=_connectionmanager.default.getApiClient(item),instance=this;return apiClient.getEpisodes(item.Id,{Limit:1,SortBy:"DatePlayed",SortOrder:"Descending",IsPlayed:!0,UserId:apiClient.getCurrentUserId(),ExcludeLocationTypes:"Virtual"}).then(function(result){return result.Items.length?function(options){return Emby.importModule("./modules/dialog/dialog.js").then(function(dialog){return dialog(options)})}({title:_globalize.default.translate("HeaderDeleteSeries"),text:"",buttons:[{name:_globalize.default.translate("Cancel"),id:"cancel",type:"submit"},{name:_globalize.default.translate("HeaderDeleteLastPlayedEpisode"),id:"deletelastplayed",type:"cancel"},{name:_globalize.default.translate("HeaderDeleteSeries"),id:"deleteseries",type:"cancel"}]}).then(function(id){return"deleteseries"===id?{deleteType:id}:"deletelastplayed"===id?{deleteType:id,item:result.Items[0]}:rejectNoSupportedCommands()}):instance.showLibraryItemDeleteConfirmation(options).then(function(){return{deleteType:"deleteseries"}})})},BaseItemController.prototype.showDeleteConfirmation=function(options){if(1===options.items.length)switch(options.items[0].Type){case"VirtualFolder":case"SeriesTimer":case"Timer":case"Recording":case"ItemImage":case"LiveTVGuideSource":case"LiveTVTunerDevice":case"ApiKey":case"Server":case"MediaStream":case"Device":case"Plugin":case"User":break;case"Series":return this.showSeriesDeleteConfirmation(options);default:if(this.enableLibraryItemDeleteConfirmation())return this.showLibraryItemDeleteConfirmation(options)}return showConfirm(this.getDeleteMessageOptions(options))},BaseItemController.prototype.enableLibraryItemDeleteConfirmation=function(){return!0},BaseItemController.prototype.showLibraryItemDeleteConfirmation=function(options){var item=options.items[0],options=_connectionmanager.default.getApiClient(item),itemId=item.Id;return options.getDeleteInfo(itemId).then(function(deleteInfo){return showConfirm({title:_globalize.default.translate("HeaderDeleteItem"),text:function(deleteInfo,item){var msg=deleteInfo.Paths.length?(msg=_globalize.default.translate("ConfirmDeleteItem"),(msg+="\n\n"+_globalize.default.translate("FollowingFilesWillBeDeleted")+"\n"+deleteInfo.Paths.join("\n"))+"\n\n"+_globalize.default.translate("AreYouSureToContinue")):_globalize.default.translate("DeleteItemConfirmation",item.Name);return msg}(deleteInfo,item),html:function(deleteInfo,item){var msg;if(deleteInfo.Paths.length){msg=_globalize.default.translate("ConfirmDeleteItem"),msg+="<p>"+_globalize.default.translate("FollowingFilesWillBeDeleted")+"</p>";for(var i=0,length=deleteInfo.Paths.length;i<length;i++)msg+='<div class="secondaryText">'+deleteInfo.Paths[i]+"</div>";msg+='<p style="margin-bottom:0;">'+_globalize.default.translate("AreYouSureToContinue")+"</p>"}else msg=_globalize.default.translate("DeleteItemConfirmation",item.Name);return msg}(deleteInfo,item),confirmText:_globalize.default.translate("Delete"),primary:"cancel",centerText:!1})})},BaseItemController.prototype.onItemsDeleted=function(deleteOptions,deleteResult){return this.showAfterDeleteNotification(deleteOptions,deleteResult),Emby.importModule("./modules/approuter.js").then(function(appRouter){var parentId,item;return"back"===deleteOptions.navigate?appRouter.back():deleteOptions.navigate&&(parentId=(item=deleteOptions.items[0]).SeasonId||item.SeriesId||item.ParentId,item=item.ServerId,parentId?appRouter.showItem(parentId,item):appRouter.goHome()),Promise.resolve(deleteResult)})},BaseItemController.prototype.deleteItems=function(options){var instance=this,optionsClone=Object.assign({},options);return _connectionmanager.default.getApiClient(optionsClone.items[0]).getCurrentUser().then(function(user){user=filterItemsByMethod(instance,optionsClone.items,"canDelete",user);return user.length?(optionsClone.items=user,(!1===(null==options?void 0:options.confirm)?Promise.resolve():instance.showDeleteConfirmation(options)).then(function(deleteConfirmationResult){return instance.deleteItemsInternal(optionsClone,deleteConfirmationResult).then(function(result){return _loading.default.hide(),instance.onItemsDeleted(options,result)})})):rejectNoItems()})},BaseItemController.prototype.getItemTypeName=function(type){if(!type)return null;switch(type){case"Genre":case"MusicGenre":case"GameGenre":return _globalize.default.translate("Genre");case"BoxSet":return _globalize.default.translate("Collection");case"Audio":return _globalize.default.translate("Song");case"MusicArtist":return _globalize.default.translate("Artist");case"MusicAlbum":return _globalize.default.translate("Album");case"MusicVideo":return _globalize.default.translate("HeaderMusicVideo");case"TvChannel":return _globalize.default.translate("Channel");case"LiveTvProgram":return _globalize.default.translate("Program");case"ApiKey":return _globalize.default.translate("HeaderApiKey")}return _globalize.default.translate(type)},BaseItemController.prototype.getPluralItemTypeName=function(type){switch(type){case"Genre":case"MusicGenre":case"GameGenre":return _globalize.default.translate("Genres");case"BoxSet":return _globalize.default.translate("Collections");case"Audio":return _globalize.default.translate("Songs");case"MusicArtist":return _globalize.default.translate("Artists");case"MusicAlbum":return _globalize.default.translate("Albums");case"MusicVideo":return _globalize.default.translate("HeaderMusicVideos");case"Person":return _globalize.default.translate("People");case"TvChannel":return _globalize.default.translate("Channels");case"Series":return _globalize.default.translate("Shows");case"LiveTvProgram":return _globalize.default.translate("Programs");case"ApiKey":return _globalize.default.translate("HeaderApiKeys")}return _globalize.default.translate(type+"s")},BaseItemController.prototype.showAfterDeleteNotification=function(deleteOptions,deleteResult){var deleteOptions=deleteOptions.items,info=this.getDeleteMessages(deleteOptions[0])||DeleteMessages.Item,info=(1<deleteOptions.length?info.plural:info.single).notification;info&&showToast(info=1===deleteOptions.length?_globalize.default.translate(info,deleteOptions[0].Name):_globalize.default.translate(info,deleteOptions.length))},BaseItemController.prototype.supportsContextMenu=function(item){switch(item.Type){case"Program":case"AddServer":case"EmbyConnect":return!1;case"MediaStream":return"Subtitle"===item.StreamType&&item.IsExternal?!0:!1;case"Trailer":return item.Id?!0:!1;default:return!0}},BaseItemController.prototype.resolveField=function(item,field,options){switch(field){case"LastActivityDateRelative":var val=item.LastActivityDate;return val?_dataformatter.default.formatRelativeTime(val):null;case"LastActivityDate":var val=item.LastActivityDate;return val?_datetime.default.toLocaleString(new Date(Date.parse(val))):null;case"DateCreated":val=item.DateCreated;return val?_datetime.default.toLocaleDateString(new Date(Date.parse(val))):null;case"DateModified":val=item.DateModified;return val?_datetime.default.toLocaleString(new Date(Date.parse(val))):null;case"Container":return null==(val=item.Container)?void 0:val.toUpperCase();case"AppNameVersion":val=[];return item.AppName&&val.push(item.AppName),item.AppVersion&&val.push(item.AppVersion),val.join(" ")||null;case"Size":val=item.Size;return null!=val?_dataformatter.default.sizeToString(val):null;case"Bitrate":val=item.Bitrate;return null!=val?_dataformatter.default.bitrateToString(val):null;default:return item[field]}},BaseItemController.prototype.deleteItemsInternal=function(options,deleteConfirmationResult){var items=options.items,item=items[0],apiClient=_connectionmanager.default.getApiClient(item);switch(item.Type){case"Device":return apiClient.deleteDevices(options.items);case"Plugin":return apiClient.uninstallPlugins(options.items);case"User":return apiClient.deleteUsers(options.items);case"VirtualFolder":return function(virtualFolder,apiClient,options){return options="true"===options.positionTo.closest(".page").getAttribute("data-refreshlibrary"),apiClient.removeVirtualFolder(virtualFolder,options)}(item,apiClient,options);case"SeriesTimer":return apiClient.cancelLiveTvSeriesTimer(item.Id);case"Timer":case"Recording":return apiClient.cancelLiveTvTimer(item.TimerId||item.Id);case"ItemImage":return apiClient.deleteItemImage(item.Id,item.ImageType,item.ImageIndex);case"LiveTVGuideSource":return apiClient.deleteLiveTVGuideSource(item.Id);case"LiveTVTunerDevice":return apiClient.deleteLiveTVTunerDevice(item.Id);case"ApiKey":return apiClient.deleteApiKeys(items);case"Server":return _connectionmanager.default.deleteServer(item.Id);case"Series":return"deletelastplayed"===(null==deleteConfirmationResult?void 0:deleteConfirmationResult.deleteType)?(options.navigate=null,apiClient.deleteItems([deleteConfirmationResult.item])):apiClient.deleteItems(items);case"MediaStream":return"Subtitle"===item.StreamType?apiClient.deleteSubtitles(item.ItemId,item.MediaSourceId,item.Index):rejectNoSupportedCommands();default:return apiClient.deleteItems(items)}},BaseItemController.prototype.getCommands=function(options){var commands=[],items=options.items,item=(items||(items=[],options.item&&items.push(options.item)),items[0]),canPlay=_playbackmanager.default.canPlay(item),apiClient=_connectionmanager.default.getApiClient(item),user=function(options,apiClient){var user=options.user;return user=!user&&options.users?options.users[apiClient.serverId()]:user}(options,apiClient),restrictOptions=(globalThis.webos||globalThis.PalmSystem)&&"554ae9ea56b94c1c82cc628f6de52d85"===apiClient.serverId(),itemType=item.Type,isPlayQueueItem=(canPlay&&"Photo"!==item.MediaType&&"Program"!==itemType&&(!1===options.play||(isPlayQueueItem=item.PlaylistItemId&&!item.PlaylistId)&&1!==items.length||commands.push({name:_globalize.default.translate("Play"),id:"resume",icon:"",primaryCommand:!isPlayQueueItem}),1===items.length)&&(options.playFromBeginning&&("Series"===itemType||"MusicAlbum"===itemType&&item.SupportsResume||item.UserData&&0<item.UserData.PlaybackPositionTicks)&&commands.push({name:_globalize.default.translate("PlayFromBeginning"),id:"playfrombeginning",icon:""}),filterItemsByMethod(this,items,"canRemoveFromPlayQueue",user,1).length||options.playAllFromHere&&"Program"!==itemType&&"Recording"!==itemType&&"TvChannel"!==itemType&&commands.push({name:_globalize.default.translate("PlayAllFromHere"),id:"playallfromhere",icon:""})),filterItemsByMethod(this,items,"canRemoveFromPlayQueue",user,1).length?commands.push({name:_globalize.default.translate("HeaderRemoveFromPlayQueue"),id:"removefromplayqueue",icon:"remove_circle_outline",primaryCommand:!0}):_playbackmanager.default.canQueue(item)&&(!1!==options.queue&&commands.push({name:_globalize.default.translate("HeaderAddToPlayQueue"),id:"queue",icon:""}),!1!==options.queue)&&commands.push({name:_globalize.default.translate("HeaderPlayNext"),id:"queuenext",icon:""}),(item.IsFolder||"MusicArtist"===item.Type||"MusicGenre"===item.Type)&&"livetv"!==item.CollectionType&&canPlay&&!1!==options.shuffle&&commands.push({name:_globalize.default.translate("Shuffle"),id:"shuffle",icon:""}),1!==items.length||"Audio"!==item.MediaType&&"MusicAlbum"!==itemType&&"MusicArtist"!==itemType||!1===options.instantMix||_apiclient.default.isLocalItem(item)||commands.push({name:_globalize.default.translate("HeaderInstantMix"),id:"instantmix",icon:""}),commands.length&&(commands[commands.length-1].dividerAfter=!0),!1);if(filterItemsByMethod(this,items,"canAddToCollection",user,1).length&&(commands.push({name:_globalize.default.translate("HeaderAddToCollection"),id:"addtocollection",icon:""}),isPlayQueueItem=!0),filterItemsByMethod(this,items,"canAddToPlaylist",user,1).length&&(commands.push({name:_globalize.default.translate("HeaderAddToPlaylist"),id:"addtoplaylist",icon:"",primaryCommand:!0}),isPlayQueueItem=!0),isPlayQueueItem=isPlayQueueItem&&!(commands[commands.length-1].dividerAfter=!0),user&&!1!==options.favorites&&filterItemsByMethod(this,items,"canRate",user,1).length&&(item.UserData&&item.UserData.IsFavorite?commands.push({name:_globalize.default.translate("HeaderRemoveFromFavorites"),id:"unfavorite",icon:"",iconClass:"icon_circle_strike"}):commands.push({name:_globalize.default.translate("HeaderAddToFavorites"),id:"favorite",icon:""}),isPlayQueueItem=!0),user&&!1!==options.played&&filterItemsByMethod(this,items,"canMarkPlayed",user,1).length&&(canPlay=item.UserData&&item.UserData.Played,commands.push(canPlay?{name:_globalize.default.translate("HeaderMarkUnplayed"),id:"markunplayed",icon:"check",iconClass:"icon_circle_strike"}:{name:_globalize.default.translate("HeaderMarkPlayed"),id:"markplayed",icon:"check"}),isPlayQueueItem=!0),isPlayQueueItem=isPlayQueueItem&&!(commands[commands.length-1].dividerAfter=!0),1===items.length&&(user&&("Timer"===itemType&&filterItemsByMethod(this,items,"canDelete",user,1).length&&!1!==options.cancelTimer&&commands.push({name:_globalize.default.translate("HeaderCancelRecording"),id:"canceltimer",icon:""}),"SeriesTimer"===itemType)&&filterItemsByMethod(this,items,"canDelete",user,1).length&&!1!==options.cancelTimer&&commands.push({name:_globalize.default.translate("HeaderCancelSeries"),id:"cancelseriestimer",icon:""}),"VirtualFolder"===itemType&&user.Policy.IsAdministrator&&"boxsets"!==item.CollectionType&&commands.push({name:_globalize.default.translate("HeaderChangeFolderType"),id:"changelibrarycontenttype",icon:""}),"Server"===itemType&&commands.push({name:_globalize.default.translate("Connect"),id:"connecttoserver",icon:""}),"ApiKey"===itemType)&&navigator.clipboard&&navigator.clipboard.writeText&&commands.push({name:_globalize.default.translate("HeaderCopyToClipboard"),id:"copytoclipboard",icon:"content_copy"}),restrictOptions||!1!==options.convert&&filterItemsByMethod(this,items,"canConvert",user,1).length&&commands.push({name:_globalize.default.translate("Convert"),id:"convert",icon:"sync"}),1===items.length&&user&&!1!==options.createRecording&&user.Policy.EnableLiveTvManagement&&"TvChannel"===itemType&&commands.push({name:_globalize.default.translate("HeaderCreateRecording"),id:"record",icon:""}),!1!==options.deleteItem&&filterItemsByMethod(this,items,"canDelete",user,1).length&&"Plugin"!==itemType&&"VirtualFolder"!==itemType&&"Timer"!==itemType&&"SeriesTimer"!==itemType&&commands.push({name:_globalize.default.translate("Delete"),id:"delete",icon:"delete",primaryCommand:this.isDeletePrimaryCommand(itemType)}),item.CanDownload&&_servicelocator.appHost.supports("filedownload")&&commands.push({name:_globalize.default.translate("Download"),id:"download",icon:"download",primaryCommand:"Log"===itemType}),"MediaStream"===itemType&&item.IsExternal&&"Subtitle"===item.StreamType&&_servicelocator.appHost.supports("filedownload")&&commands.push({name:_globalize.default.translate("Download"),id:"download",icon:"download"}),1===items.length&&"RemoteSubtitle"===itemType&&commands.push({name:_globalize.default.translate("Download"),id:"download",icon:"download"}),_servicelocator.appHost.supports("sync")&&!1!==options.syncLocal&&filterItemsByMethod(this,items,"canSync",user,1).length&&commands.push({name:_globalize.default.translate("Download"),id:"synclocal",icon:"download"}),restrictOptions||(!1!==options.sync&&filterItemsByMethod(this,items,"canSync",user,1).length&&commands.push({name:_globalize.default.translate("HeaderDownloadToDots"),id:"sync",icon:"download"}),1===items.length&&this.canEdit(item,user)&&!1!==options.edit&&"SeriesTimer"!==itemType&&commands.push({name:this.getEditCommandText(item),id:"edit",icon:"edit"})),1===items.length&&(this.canEditImages(item,user)&&!1!==options.editImages&&commands.push({name:_globalize.default.translate("HeaderEditImages"),id:"editimages",icon:"photo"}),!1!==options.editSubtitles)&&this.canEditSubtitles(item,user)&&!1!==options.editSubtitles&&"Audio"!==item.MediaType&&commands.push({name:_globalize.default.translate("HeaderEditSubtitles"),id:"editsubtitles",icon:""}),1<filterItemsByMethod(this,items,"canManageMultiVersionGrouping",user,2).length&&commands.push({name:_globalize.default.translate("HeaderGroupVersions"),id:"mergeversions",icon:"call_merge"}),!1!==options.identify&&filterItemsByMethod(this,items,"canIdentify",user,1).length&&(1===items.length&&commands.push({name:_globalize.default.translate("Identify"),id:"identify",icon:""}),apiClient)&&apiClient.isMinServerVersion("4.8.0.30")&&commands.push({name:_globalize.default.translate("HeaderRemoveIdentification"),id:"resetmetadata",icon:""}),1===items.length&&(item.CanMakePrivate&&commands.push({name:_globalize.default.translate("HeaderMakePrivate"),id:"makeprivate",icon:"lock_person"}),item.CanMakePublic&&commands.push({name:_globalize.default.translate("HeaderMakePublic"),id:"makepublic",icon:"people"}),options.multiSelect&&!_layoutmanager.default.tv&&commands.push({name:_globalize.default.translate("MultiSelect"),id:"multiselect",icon:"select_all",hideWithFinePointer:!0}),"MediaStream"===itemType&&item.IsExternal&&"Subtitle"===item.StreamType&&commands.push({name:_globalize.default.translate("Preview"),id:"preview",icon:""}),"RemoteSubtitle"===itemType)&&commands.push({name:_globalize.default.translate("Preview"),id:"preview",icon:""}),!1!==options.refreshMetadata&&filterItemsByMethod(this,items,"canRefreshMetadata",user,1).length&&commands.push({name:_globalize.default.translate("HeaderRefreshMetadata"),id:"refresh",icon:"refresh"}),filterItemsByMethod(this,items,"canRemoveFromPlaylist",user,1).length&&commands.push({name:_globalize.default.translate("HeaderRemoveFromPlaylist"),id:"removefromplaylist",icon:"remove_circle_outline",primaryCommand:!0}),filterItemsByMethod(this,items,"canRemoveFromCollection",user,1).length&&commands.push({name:_globalize.default.translate("HeaderRemoveFromCollection"),id:"removefromcollection",icon:"remove_circle_outline",primaryCommand:!0}),user&&(!1!==options.deleteItem&&filterItemsByMethod(this,items,"canDelete",user,1).length&&"VirtualFolder"===itemType&&commands.push({name:_globalize.default.translate("Remove"),id:"delete",icon:"remove_circle_outline"}),"VirtualFolder"===itemType&&user.Policy.IsAdministrator&&"boxsets"!==item.CollectionType&&1===items.length&&commands.push({name:_globalize.default.translate("Rename"),id:"renamelibrary",icon:"edit"}),!1!==options.refreshMetadata)&&filterItemsByMethod(this,items,"canScanLibraryFiles",user,1).length)switch(itemType){case"Playlist":case"Genre":case"MusicGenre":case"GameGenre":case"Channel":case"MusicArtist":break;default:commands.push({name:_globalize.default.translate("HeaderScanLibraryFiles"),id:"scan",icon:"refresh"})}return 1===items.length&&(options.removeFromNextUp&&commands.push({name:_globalize.default.translate("HeaderRemoveFromContinueWatching"),id:"removefromnextup",icon:"remove_circle_outline"}),options.removeFromResume&&commands.push({name:"Audio"===item.MediaType?_globalize.default.translate("HeaderRemoveFromContinueListening"):_globalize.default.translate("HeaderRemoveFromContinueWatching"),id:"removefromresume",icon:"remove_circle_outline"}),"ItemImage"===itemType&&("Backdrop"===item.ImageType?(item.ImageIndex&&commands.push({name:_globalize.default.translate("HeaderMoveUpInOrder"),id:"moveimageleft",icon:"arrow_upward"}),item.ImageIndex<item.TotalImages-1&&commands.push({name:_globalize.default.translate("HeaderDownUpInOrder"),id:"moveimageright",icon:"arrow_downward"})):(item.ImageTag||commands.push({name:_globalize.default.translate("HeaderAddImageFromUrl"),id:"addimagefromurl",icon:"link"}),item.Providers.length&&(canPlay=item.ImageTag?_globalize.default.translate("HeaderSearchNewImage"):_globalize.default.translate("HeaderSearchForAnImage"),commands.push({name:canPlay,id:"searchimageproviders",icon:"search"})),_servicelocator.appHost.supports("fileinput")&&commands.push({name:_globalize.default.translate("HeaderSelectImageFile"),id:"addimage",icon:"add_circle_outline"}),item.ImageTag&&commands.push({name:_globalize.default.translate("HeaderSetImageFromUrl"),id:"addimagefromurl",icon:"link"})),item.ImageTag)&&commands.push({name:_globalize.default.translate("HeaderDeleteImage"),id:"delete",icon:"delete"}),"Plugin"===itemType&&user.Policy.IsAdministrator&&item.ConfigPageUrl&&commands.push({name:_globalize.default.translate("Settings"),id:"open",icon:"settings"}),restrictOptions||!1!==options.share&&this.canShare(item,user)&&commands.push({name:_globalize.default.translate("Share"),id:"share",icon:"share"}),"Recording"===itemType&&"InProgress"===item.Status&&user.Policy.EnableLiveTvManagement&&!1!==options.cancelTimer&&commands.push({name:_globalize.default.translate("HeaderStopRecording"),id:"canceltimer",icon:"fiber_manual_record"}),"ChannelManagementInfo"===itemType)&&(item.SortIndexNumber&&commands.push({name:_globalize.default.translate("HeaderMoveUpInOrder"),id:"movechannelup",icon:"arrow_upward"}),commands.push({name:_globalize.default.translate("HeaderDownUpInOrder"),id:"movechanneldown",icon:"arrow_downward"})),"Plugin"===itemType&&filterItemsByMethod(this,items,"canDelete",user,1).length&&commands.push({name:_globalize.default.translate("Uninstall"),id:"delete",icon:"delete",primaryCommand:!0}),1===items.length&&("Audio"===itemType&&function(item){if(item=item.MediaSources)return(item=item[0])&&0<(item.MediaStreams||[]).filter(function(s){return"Subtitle"===s.Type}).length}(item)&&commands.push({name:_globalize.default.translate("HeaderViewLyrics"),id:"lyrics",icon:"lyrics"}),!1!==options.openAlbum&&item.AlbumId&&"Photo"!==item.MediaType&&commands.push({name:_globalize.default.translate("HeaderViewAlbum"),id:"album",icon:this.getDefaultIcon({Type:"MusicAlbum",IsFolder:!0})}),!1!==options.openArtist&&item.ArtistItems&&item.ArtistItems.length&&commands.push({name:_globalize.default.translate("HeaderViewArtist"),id:"artist",icon:this.getDefaultIcon({Type:"MusicAlbum",IsFolder:!0})}),"Server"===itemType&&commands.push({name:_globalize.default.translate("HeaderViewServerInfo"),id:"serverinfo",icon:""}),!1!==options.showSeason&&"Episode"===itemType&&commands.push({name:_globalize.default.translate("HeaderViewSeason"),id:"season",icon:this.getDefaultIcon({Type:"Season",IsFolder:!0})}),!options.showSeries||"Episode"!==itemType&&"Season"!==itemType||commands.push({name:_globalize.default.translate("HeaderViewSeries"),id:"series",icon:this.getDefaultIcon({Type:"Series",IsFolder:!0})}),"Server"===itemType)&&apiClient&&apiClient.supportsWakeOnLan()&&commands.push({name:_globalize.default.translate("HeaderWakeServer"),id:"wakeserver",icon:"",primaryCommand:!0}),commands},BaseItemController.prototype.isDeletePrimaryCommand=function(itemType){return"Plugin"===itemType},BaseItemController.prototype.scanLibraryFiles=function(items,options){var apiClient=_connectionmanager.default.getApiClient(items[0]),instance=this;return apiClient.getCurrentUser().then(function(user){return(items=filterItemsByMethod(instance,items,"canScanLibraryFiles",user)).length?apiClient.refreshItems(items,{Recursive:!0,ImageRefreshMode:"Default",MetadataRefreshMode:"Default",ReplaceAllImages:!1,ReplaceAllMetadata:!1}).then(function(){return showToast(_globalize.default.translate("ScanningLibraryFilesDots"))}):rejectNoItems()})},BaseItemController.prototype.refreshMetadata=function(items,options){var apiClient=_connectionmanager.default.getApiClient(items[0]),instance=this;return apiClient.getCurrentUser().then(function(user){return(items=filterItemsByMethod(instance,items,"canRefreshMetadata",user)).length?require(["refreshDialog"]).then(function(responses){return new responses[0]({items:items}).show()}):rejectNoItems()})},BaseItemController.prototype.addToPlaylist=function(items,options){var apiClient=_connectionmanager.default.getApiClient(items[0]),instance=this;return apiClient.getCurrentUser().then(function(user){return(items=filterItemsByMethod(instance,items,"canAddToPlaylist",user)).length?addToList(items,"Playlist"):rejectNoItems()})},BaseItemController.prototype.addToCollection=function(items,options){var apiClient=_connectionmanager.default.getApiClient(items[0]),instance=this;return apiClient.getCurrentUser().then(function(user){return(items=filterItemsByMethod(instance,items,"canAddToCollection",user)).length?addToList(items,"Collection"):rejectNoItems()})},BaseItemController.prototype.groupVersions=function(items,options){var apiClient=_connectionmanager.default.getApiClient(items[0]),instance=this;return apiClient.getCurrentUser().then(function(user){return(items=filterItemsByMethod(instance,items,"canManageMultiVersionGrouping",user)).length?items.length<2?showAlertAndReject(_globalize.default.translate("PleaseSelectTwoItems")):(_loading.default.show(),apiClient.mergeVersions(items).then(function(response){return _loading.default.hide(),Promise.resolve(response)},function(response){return _loading.default.hide(),Promise.reject(response)})):rejectNoItems()})},BaseItemController.prototype.getAvailableFields=function(options){var _getSeriesSortOption,_getNameSortOption,_getNumberSortOption,_getOriginalTitleSort,_getNameSortOption3,_getFileSortOption,_getArtistSortOption,_getAlbumSortOption,_getCommunityRatingSo,_getProductionYearSor,_getReleaseDateSortOp,_getRuntimeSortOption,_getContainerSortOpti,_getResolutionSortOpt,_getBitrateSortOption,_getSizeSortOption,_getDatePlayedSortOpt,_getPlayCountSortOpti,_getDateAddedSortOpti,fields=[],itemType=options.itemType||"";switch(itemType){case"":case"Episode":fields.push({id:"SeriesName",name:_globalize.default.translate("Series"),size:getColumnSize("SeriesName"),sortBy:null==(_getSeriesSortOption=getSeriesSortOption(itemType))?void 0:_getSeriesSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid"}),fields.push({id:"EpisodeNumber",name:_globalize.default.translate("Number"),size:getColumnSize("EpisodeNumber"),sortBy:null,viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"Photo":case"PhotoAlbum":fields.push({id:"Name",name:_globalize.default.translate("Title"),size:getColumnSize("Name"),sortBy:null==(_getNameSortOption=getNameSortOption(itemType))?void 0:_getNameSortOption.value,defaultVisible:"datagrid"});break;case"ApiKey":break;default:fields.push({id:"Name",name:_globalize.default.translate("Title"),size:getColumnSize("Name"),sortBy:null==(_getNameSortOption=getNameSortOption(itemType))?void 0:_getNameSortOption.value,defaultVisible:"*"})}switch("ApiKey"===itemType&&fields.push({id:"AppName",name:_globalize.default.translate("AppName"),size:getColumnSize("Name"),sortBy:null,defaultVisible:"*"}),"Device"===itemType&&fields.push({id:"AppNameVersion",name:_globalize.default.translate("AppName"),size:getColumnSize("Name"),sortBy:null,defaultVisible:"*"}),"ApiKey"===itemType&&fields.push({id:"AccessToken",name:_globalize.default.translate("HeaderApiKey"),size:getColumnSize("Name"),sortBy:null,defaultVisible:"*"}),"User"===itemType&&fields.push({id:"LastActivityDateRelative",name:_globalize.default.translate("DateLastActive"),size:getColumnSize("Name"),sortBy:null,viewTypes:"cards",defaultVisible:"cards,list"}),"User"===itemType&&fields.push({id:"LastActivityDate",name:_globalize.default.translate("DateLastActive"),size:getColumnSize("DateTime"),sortBy:null,viewTypes:"datagrid",defaultVisible:"datagrid"}),itemType){case"":case"Audio":case"TvChannel":fields.push({id:"Number",name:_globalize.default.translate("Number"),size:getColumnSize("Number"),sortBy:null==(_getNumberSortOption=getNumberSortOption(itemType))?void 0:_getNumberSortOption.value,viewTypes:"datagrid"})}switch("Program"===itemType&&fields.push({id:"StartDate",name:_globalize.default.translate("AirDate"),size:getColumnSize("StartDate"),sortBy:null==(options=getStartDateSortOption(itemType))?void 0:options.value,viewTypes:"datagrid",defaultVisible:"datagrid"}),itemType){case"":case"Movie":case"Video":case"Trailer":case"MusicVideo":case"Series":case"Game":fields.push({id:"OriginalTitle",name:_globalize.default.translate("OriginalTitle"),size:getColumnSize("OriginalTitle"),sortBy:null===(_getOriginalTitleSort={name:_globalize.default.translate("OriginalTitle"),value:"OriginalTitle,SortName",defaultSortOrder:"Descending"})?void 0:_getOriginalTitleSort.value,viewTypes:"datagrid"})}switch(itemType){case"":case"Folder":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicGenre":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Genre":case"GameGenre":case"Person":case"GameSystem":case"Photo":case"PhotoAlbum":case"TvChannel":case"Studio":case"Channel":case"UserView":case"Tag":fields.push({id:"SortName",name:_globalize.default.translate("SortName"),size:getColumnSize("SortName"),sortBy:null==(_getNameSortOption3=getNameSortOption(itemType))?void 0:_getNameSortOption3.value,viewTypes:"datagrid"})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Photo":case"Book":case"Playlist":fields.push({id:"Filename",name:_globalize.default.translate("FileName"),size:getColumnSize("Filename"),sortBy:null==(_getFileSortOption=getFileSortOption())?void 0:_getFileSortOption.value}),fields.push({id:"Path",name:_globalize.default.translate("Path"),size:getColumnSize("Path"),sortBy:null==(_getFileSortOption=getFileSortOption())?void 0:_getFileSortOption.value,viewTypes:"datagrid"})}switch(itemType){case"":case"Audio":case"MusicAlbum":case"MusicVideo":fields.push({id:"Artist",name:_globalize.default.translate("Artist"),size:getColumnSize("Artist"),sortBy:null==(_getArtistSortOption=getArtistSortOption())?void 0:_getArtistSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid"}),fields.push({id:"AlbumArtist",name:_globalize.default.translate("AlbumArtist"),size:getColumnSize("AlbumArtist"),sortBy:null==(_getArtistSortOption=getAlbumArtistSortOption())?void 0:_getArtistSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid"}),fields.push({id:"Composer",name:_globalize.default.translate("Composer"),size:getColumnSize("Composer"),sortBy:null==(_getArtistSortOption=getComposerSortOption())?void 0:_getArtistSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"":case"Audio":fields.push({id:"Album",name:_globalize.default.translate("Album"),size:getColumnSize("Album"),sortBy:null==(_getAlbumSortOption=getAlbumSortOption())?void 0:_getAlbumSortOption.value,viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Photo":case"Program":case"TvChannel":fields.push({id:"CommunityRating",name:getCommunityRatingOptionName(itemType),size:getColumnSize("CommunityRating"),sortBy:null==(_getCommunityRatingSo=getCommunityRatingSortOption(itemType))?void 0:_getCommunityRatingSo.value,defaultVisible:"datagrid"}),fields.push({id:"CriticRating",name:_globalize.default.translate("CriticRating"),size:getColumnSize("CriticRating"),sortBy:null==(_getCommunityRatingSo=getCriticRatingSortOption())?void 0:_getCommunityRatingSo.value,defaultVisible:"datagrid"}),fields.push({id:"OfficialRating",name:_globalize.default.translate("ParentalRating"),size:getColumnSize("OfficialRating"),sortBy:null==(_getCommunityRatingSo=getParentalRatingSortOption())?void 0:_getCommunityRatingSo.value,defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Person":case"Photo":case"Program":fields.push({id:"ProductionYear",name:_globalize.default.translate("Year"),size:getColumnSize("ProductionYear"),sortBy:null==(_getProductionYearSor=getProductionYearSortOption())?void 0:_getProductionYearSor.value,defaultVisible:"*"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicAlbum":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Person":case"Photo":case"Program":fields.push({id:"PremiereDate",name:_globalize.default.translate("ReleaseDate"),size:getColumnSize("Date"),sortBy:null==(_getReleaseDateSortOp=getReleaseDateSortOption())?void 0:_getReleaseDateSortOp.value,viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"MusicVideo":case"Video":case"Audio":case"MusicAlbum":case"Playlist":case"Series":case"Season":fields.push({id:"Runtime",name:_globalize.default.translate("Runtime"),size:getColumnSize("Runtime"),sortBy:null==(_getRuntimeSortOption=getRuntimeSortOption())?void 0:_getRuntimeSortOption.value,defaultVisible:"datagrid"})}switch(itemType){case"":case"Folder":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Person":case"GameSystem":case"Photo":case"Program":case"TvChannel":fields.push({id:"Genres",name:_globalize.default.translate("Genres"),size:getColumnSize("Genres"),sortBy:null}),fields.push({id:"Tags",name:_globalize.default.translate("Tags"),size:getColumnSize("Tags"),sortBy:null}),fields.push({id:"Studios",name:_globalize.default.translate("Studios"),size:getColumnSize("Studios"),sortBy:null})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Photo":case"Book":fields.push({id:"Container",name:_globalize.default.translate("Container"),size:getColumnSize("Container"),sortBy:null==(_getContainerSortOpti=getContainerSortOption())?void 0:_getContainerSortOpti.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"MusicVideo":case"Video":case"TvChannel":case"Photo":fields.push({id:"Resolution",name:_globalize.default.translate("Resolution"),size:getColumnSize("Resolution"),sortBy:null==(_getResolutionSortOpt=getResolutionSortOption())?void 0:_getResolutionSortOpt.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":fields.push({id:"Bitrate",name:_globalize.default.translate("Bitrate"),size:getColumnSize("Bitrate"),sortBy:null==(_getBitrateSortOption=getBitrateSortOption())?void 0:_getBitrateSortOption.value})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Photo":case"Book":case"Playlist":fields.push({id:"Size",name:_globalize.default.translate("Size"),size:getColumnSize("Size"),sortBy:null==(_getSizeSortOption=getSizeSortOption(itemType))?void 0:_getSizeSortOption.value,viewTypes:"datagrid"})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"MusicVideo":case"Video":fields.push({id:"Video3DFormat",name:"3D",size:getColumnSize("Video3DFormat"),sortBy:null,viewTypes:"datagrid"})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Book":case"TvChannel":fields.push({id:"DatePlayed",name:_globalize.default.translate("DatePlayed"),size:getColumnSize("Date"),sortBy:null==(_getDatePlayedSortOpt=getDatePlayedSortOption(itemType))?void 0:_getDatePlayedSortOpt.value,viewTypes:"datagrid"})}switch(itemType){case"":case"Movie":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Book":case"TvChannel":fields.push({id:"PlayCount",name:_globalize.default.translate("Plays"),size:getColumnSize("PlayCount"),sortBy:null==(_getPlayCountSortOpti=getPlayCountSortOption())?void 0:_getPlayCountSortOpti.value,viewTypes:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"Trailer":case"Audio":case"MusicVideo":case"Video":case"Game":case"Book":case"TvChannel":fields.push({id:"Played",name:_globalize.default.translate("Played"),gridDisplayName:'<i class="md-icon dataGridHeaderIcon"></i>',size:getColumnSize("Played"),sortBy:null,gridColumnType:"button",viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"":case"Folder":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Playlist":case"Video":case"Game":case"Book":case"Person":case"Photo":case"TvChannel":fields.push({id:"IsFavorite",name:_globalize.default.translate("Favorite"),gridDisplayName:'<i class="md-icon dataGridHeaderIcon autortl"></i>',size:getColumnSize("IsFavorite"),sortBy:null,gridColumnType:"button",viewTypes:"datagrid",defaultVisible:"datagrid"})}switch(itemType){case"":case"Movie":case"Series":case"Season":case"Episode":case"BoxSet":case"Trailer":case"Audio":case"MusicAlbum":case"MusicArtist":case"MusicVideo":case"Video":case"Game":case"Book":case"Person":case"Photo":case"TvChannel":fields.push({id:"DateCreated",name:_globalize.default.translate("DateAdded"),size:getColumnSize("Date"),sortBy:null==(_getDateAddedSortOpti=getDateAddedSortOption(itemType))?void 0:_getDateAddedSortOpti.value,viewTypes:"datagrid"});break;case"ApiKey":fields.push({id:"DateCreated",name:_globalize.default.translate("DateAdded"),size:getColumnSize("Date"),sortBy:null==(_getDateAddedSortOpti=getDateAddedSortOption(itemType))?void 0:_getDateAddedSortOpti.value,defaultVisible:"*"})}return"Log"===itemType&&fields.push({id:"DateModified",name:_globalize.default.translate("DateModified"),size:getColumnSize("DateTime"),sortBy:null,defaultVisible:"*"}),"Log"===itemType&&fields.push({id:"Size",name:_globalize.default.translate("Size"),size:getColumnSize("Size"),sortBy:null==(options=getSizeSortOption(itemType))?void 0:options.value,defaultVisible:"datagrid"}),"Plugin"===itemType&&fields.push({id:"Version",name:_globalize.default.translate("Version"),size:getColumnSize("Version"),sortBy:null,defaultVisible:"*"}),fields},BaseItemController.prototype.getDefaultSorting=function(options){var field,itemType=options.itemType||"";switch(itemType){case"Episode":field=getSeriesSortOption(itemType);break;case"Program":field=getStartDateSortOption(itemType)}return(field=field||getNameSortOption(itemType))?{sortBy:field.value,sortOrder:field.defaultSortOrder}:null},BaseItemController.prototype.getSortMenuOptions=function(options){var _option12,sortBy=[],itemType=options.itemType||"",apiClient=options.apiClient,options=options.availableFieldIds,option=((options.Name||options.SortName)&&(option=getNameSortOption(itemType))&&sortBy.push(option),options.Album&&(option=getAlbumSortOption())&&sortBy.push(option),options.AlbumArtist&&(option=getAlbumArtistSortOption())&&sortBy.push(option),options.Artist&&(option=getArtistSortOption())&&sortBy.push(option),options.StartDate&&(option=getStartDateSortOption(itemType))&&sortBy.push(option),(options.Filename||options.Path)&&(option=getFileSortOption())&&sortBy.push(option),options.Bitrate&&(option=getBitrateSortOption())&&sortBy.push(option),options.CommunityRating&&(option=getCommunityRatingSortOption(itemType))&&sortBy.push(option),options.Composer&&(option=getComposerSortOption())&&sortBy.push(option),options.Container&&(option=getContainerSortOption())&&sortBy.push(option),options.CriticRating&&(option=getCriticRatingSortOption())&&sortBy.push(option),options.DateCreated&&(option=getDateAddedSortOption(itemType))&&sortBy.push(option),function(itemType){return"Series"!==itemType?null:{name:_globalize.default.translate("LastEpisodeDateAdded"),value:"DateLastContentAdded,SortName",defaultSortOrder:"Descending"}}(itemType));return option&&sortBy.push(option),options.DatePlayed&&(_option12=getDatePlayedSortOption(itemType))&&sortBy.push(_option12),(option=function(itemType){return"TvChannel"!==itemType?null:{name:_globalize.default.translate("Favorites"),value:"IsFavorite,DatePlayed,ChannelNumber,SortName",defaultSortOrder:"Ascending",sortOrderAscending:"Ascending,Descending,Ascending",sortOrderDescending:"Descending,Ascending,Ascending"}}(itemType))&&sortBy.push(option),options.OfficialRating&&(_option12=getParentalRatingSortOption())&&sortBy.push(_option12),options.PlayCount&&(_option12=getPlayCountSortOption())&&sortBy.push(_option12),options.ProductionYear&&(_option12=getProductionYearSortOption())&&sortBy.push(_option12),options.PremiereDate&&(_option12=getReleaseDateSortOption())&&sortBy.push(_option12),options.Resolution&&(_option12=getResolutionSortOption())&&sortBy.push(_option12),options.Runtime&&(_option12=getRuntimeSortOption())&&sortBy.push(_option12),options.SeriesName&&(_option12=getSeriesSortOption(itemType))&&sortBy.push(_option12),options.Size&&(_option12=getSizeSortOption(itemType))&&sortBy.push(_option12),options.Number&&(_option12=getNumberSortOption(itemType))&&sortBy.push(_option12),(option=function(itemType,apiClient){switch(itemType){case"Genre":case"Studio":case"Tag":case"Program":case"Playlist":case"BoxSet":case"ApiKey":case"User":case"Log":case"Plugin":case"ActivityLogEntry":case"GameSystem":case"Device":return null}return apiClient&&apiClient.isMinServerVersion("4.8.0.11")?{name:_globalize.default.translate("Random"),value:"Random",defaultSortOrder:"Ascending"}:null}(itemType,apiClient))&&sortBy.push(option),sortBy.sort(compareByName),sortBy},_exports.default=BaseItemController}); |