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"+_globalize.default.translate("FollowingFilesWillBeDeleted")+"

";for(var i=0,length=deleteInfo.Paths.length;i'+deleteInfo.Paths[i]+"";msg+='

'+_globalize.default.translate("AreYouSureToContinue")+"

"}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',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:'',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});