import listView from"./../modules/listview/listview.js";import serverNotifications from"./../modules/common/input/api.js";import events from"./../modules/emby-apiclient/events.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import"./../modules/emby-elements/emby-button/emby-button.js";function getActivityListViewOptions(items){var options={moreButton:!1,action:"none",enableDefaultIcon:!0,overviewButton:!0,roundImage:!0,multiSelect:!1,contextMenu:!1,draggable:!1,draggableXActions:!1,fields:["Name","ShortOverview","Date"]};return listView.setListOptions(items,options),{renderer:listView,options:options,virtualScrollLayout:"vertical-list"}}function getActivityLogItems(){var limit=parseInt(this.getAttribute("data-activitylimit")||"7"),minDate=new Date,hasUserId=(minDate.setTime(minDate.getTime()-6048e5),"false"!==this.getAttribute("data-useractivity"));return ApiClient.getActivityLog({StartIndex:0,Limit:limit,MinDate:minDate.toISOString(),hasUserId:hasUserId,EnableTotalRecordCount:!1}).catch(e=>console.error("Failed to retrieve activity log",e))}function onActivityLogUpdate(e,apiClient,data){var options=this.options;options&&options.serverId===apiClient.serverId()&&options.element.notifyRefreshNeeded()}function ActivityLog(options){var element=(this.options=options).element,options=(element.fetchData=getActivityLogItems.bind(element),element.getListOptions=getActivityListViewOptions,element.parentContainer=element.closest(".activityContainer"),element.setAttribute("data-alwaysshowseeall","true"),connectionManager.getApiClient(options.serverId)),onUpdate=onActivityLogUpdate.bind(this);this.updateFn=onUpdate,events.on(serverNotifications,"ActivityLogEntry",onUpdate),options.startMessageListener("ActivityLogEntry","0,1500"),element.resume({refresh:!0})}ActivityLog.prototype.pause=function(){},ActivityLog.prototype.resume=function(options){},ActivityLog.prototype.destroy=function(){var options=this.options,options=(options&&connectionManager.getApiClient(options.serverId).stopMessageListener("ActivityLogEntry"),this.updateFn);options&&events.off(serverNotifications,"ActivityLogEntry",options),this.items=null,this.options=null};export default ActivityLog;