define(["exports","./../emby-apiclient/connectionmanager.js","./../common/globalize.js","./../layoutmanager.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../common/input/api.js","./../emby-apiclient/events.js","./../imageloader/imageloader.js","./../common/servicelocator.js","./../listview/listview.js"],function(_exports,_connectionmanager,_globalize,_layoutmanager,_loading,_dialoghelper,_paperIconButtonLight,_embyButton,_embyScroller,_api,_events,_imageloader,_servicelocator,_listview){function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function syncNow(){require(["localsync"],function(localSync){localSync.sync()})}function renderJob(context,job,dialogOptions){require(["syncDialog"],function(syncDialog){syncDialog.renderForm({elem:context.querySelector(".syncJobFormContent"),dialogOptions:dialogOptions,dialogOptionsFn:function(dialogOptions){return function(targetId){return Promise.resolve(dialogOptions)}}(dialogOptions),readOnlySyncTarget:!0}).then(function(){!function(context,job,editOptions){var selectProfile=context.querySelector(".selectProfile");selectProfile&&(selectProfile.value=job.Profile||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectQuality");selectProfile&&(selectProfile.value=job.Quality||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectJobContainer");selectProfile&&(selectProfile.value=job.Container||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectVideoCodec");selectProfile&&(selectProfile.value=job.VideoCodec||"",triggerChange(selectProfile));selectProfile=context.querySelector(".selectAudioCodec");selectProfile&&(selectProfile.value=job.AudioCodec||"",triggerChange(selectProfile));selectProfile=context.querySelector(".chkUnwatchedOnly");selectProfile&&(selectProfile.checked=job.UnwatchedOnly);selectProfile=context.querySelector(".chkSyncNewContent");selectProfile&&(selectProfile.checked=job.SyncNewContent);selectProfile=context.querySelector(".txtItemLimit");selectProfile&&(selectProfile.value=job.ItemLimit);selectProfile=context.querySelector(".txtBitrate");job.Bitrate?selectProfile.value=job.Bitrate/1e6:selectProfile.value="";selectProfile=editOptions.Targets.filter(function(t){return t.Id===job.TargetId})[0],editOptions=selectProfile?selectProfile.Name:"",selectProfile=context.querySelector(".selectSyncTarget");selectProfile&&(selectProfile.value=editOptions)}(context,job,dialogOptions)})})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var supportsNativeLazyLoading="loading"in HTMLImageElement.prototype;function renderJobItems(context,items,apiClient){var html="",items=(html+="

"+_globalize.default.translate("Items")+"

",html=(html+="
")+items.map(function(i){return function(jobItem,apiClient){var nextAction,imgUrl,html="",status=("Failed"===(status=jobItem.Status)||"Cancelled"===status?nextAction="retry":"Queued"===status||"Transferring"===status||"Converting"===status||"ReadyToTransfer"===status?nextAction="cancel":"Synced"!==status||jobItem.IsMarkedForRemoval||(nextAction="remove"),"listItem listItem-border"),tagName=(_layoutmanager.default.tv&&nextAction&&(status+=" btnJobItemMenu"),_layoutmanager.default.tv&&(status+=" listItem-button"),_layoutmanager.default.tv?"button":"div");return html+="<"+tagName+' type="button" class="'+status+'" data-itemid="'+jobItem.Id+'" data-status="'+jobItem.Status+'" data-action="'+nextAction+'">',(imgUrl=jobItem.PrimaryImageItemId?apiClient.getImageUrl(jobItem.PrimaryImageItemId.toString(),{type:"Primary",width:80,tag:jobItem.PrimaryImageTag}):imgUrl)?html=(html+='
')+(supportsNativeLazyLoading?'':'')+"
":html+='
sync
',html=(html=html+'
'+'
')+jobItem.ItemName+"
","Failed"===jobItem.Status?html+='
':html+='
',html+=_globalize.default.translate("SyncJobItemStatus"+jobItem.Status),"Synced"===jobItem.Status&&jobItem.IsMarkedForRemoval&&(html=(html+="
")+_globalize.default.translate("RemovingFromDevice")),html=(html=(html+="
")+'
'+('
'))+"
"+"
",_layoutmanager.default.tv||("retry"===nextAction?html+='':"cancel"!==nextAction&&"remove"!==nextAction||(html+='')),html+=""}(i,apiClient,0)}).join("")+"
",context.querySelector(".jobItems"));items.innerHTML=html,_imageloader.default.lazyChildren(items)}function showJobItemMenu(elem,jobId,apiClient){var action=elem.getAttribute("data-action"),context=elem.closest(".formDialog"),elem=elem.closest(".listItem").getAttribute("data-itemid");"retry"===action?function(context,jobId,jobItemId,apiClient){showConfirm({text:_globalize.default.translate("ConfirmRemoveDownload"),confirmText:_globalize.default.translate("RemoveDownload"),cancelText:_globalize.default.translate("KeepDownload"),primary:"cancel"}).then(function(){apiClient.ajax({type:"POST",url:apiClient.getUrl("Sync/JobItems/"+jobItemId+"/Enable")}).then(function(){_servicelocator.appHost.supports("sync")&&syncNow(),loadJob(context,jobId,apiClient)})})}(context,jobId,elem,apiClient):"cancel"!==action&&"remove"!==action||function(context,jobId,jobItemId,apiClient){showConfirm({text:_globalize.default.translate("ConfirmRemoveDownload"),confirmText:_globalize.default.translate("RemoveDownload"),cancelText:_globalize.default.translate("KeepDownload"),primary:"cancel"}).then(function(){_loading.default.show(),apiClient.cancelSyncJobItem(jobItemId).then(function(){_servicelocator.appHost.supports("sync")&&syncNow(),loadJob(context,jobId,apiClient)})})}(context,jobId,elem,apiClient)}function triggerChange(select){select.dispatchEvent(new CustomEvent("change",{bubbles:!0}))}function loadJob(context,id,apiClient){_loading.default.show(),apiClient.getJSON(apiClient.getUrl("Sync/Jobs/"+id)).then(function(job){return apiClient.getJSON(apiClient.getUrl("Sync/Options",{UserId:job.UserId,ItemIds:job.RequestedItemIds&&job.RequestedItemIds.length?job.RequestedItemIds.join(""):null,ParentId:job.ParentId,Category:job.Category,TargetId:job.TargetId})).then(function(options){return apiClient.getJSON(apiClient.getUrl("Sync/JobItems",{JobId:id,AddMetadata:!0})).then(function(result){renderJob(context,job,options),renderJobItems(context,result.Items,apiClient),_loading.default.hide()})})},function(error){_loading.default.hide(),_dialoghelper.default.close(context)})}_exports.default={show:function(options){var apiClient=_connectionmanager.default.getApiClient(options.serverId),id=options.jobId,options={removeOnClose:!0,scrollY:!1,autoFocus:!1},dlg=(_layoutmanager.default.tv?options.size="fullscreen":options.size="medium",_dialoghelper.default.createDialog(options)),options=(dlg.classList.add("formDialog"),"");function onSyncJobMessage(e,apiClient,job){String(job.Id)===id&&apiClient.getJSON(apiClient.getUrl("Sync/JobItems",{JobId:id,AddMetadata:!0})).then(function(result){renderJobItems(dlg,result.Items,apiClient),_loading.default.hide()},function(error){_loading.default.hide()})}return options=(options+='

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

",_servicelocator.appHost.supports("externallinks")&&(options+=''+_globalize.default.translate("Help")+""),options=(options+='
')+'",dlg.innerHTML=options=(options=options+"
"+"
")+"
"+"
",dlg.querySelector("form").addEventListener("submit",function(e){return function(context,id,apiClient){_loading.default.show(),apiClient.getJSON(apiClient.getUrl("Sync/Jobs/"+id)).then(function(job){require(["syncDialog"],function(syncDialog){syncDialog.setJobValues(job,context),apiClient.ajax({url:apiClient.getUrl("Sync/Jobs/"+id),type:"POST",data:JSON.stringify(job),contentType:"application/json"}).then(function(){_servicelocator.appHost.supports("sync")&&syncNow(),_loading.default.hide(),_dialoghelper.default.close(context)})})},function(error){_loading.default.hide(),_dialoghelper.default.close(context)})}(dlg,id,apiClient),e.preventDefault(),!1}),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)}),loadJob(dlg,id,apiClient),function(context,jobId,apiClient){context.querySelector(".jobItems").addEventListener("click",function(e){e=e.target.closest(".btnJobItemMenu");e&&showJobItemMenu(e,jobId,apiClient)})}(dlg,id,apiClient),options=_dialoghelper.default.open(dlg),_events.default.on(_api.default,"SyncJobUpdated",onSyncJobMessage),options.then(function(){return _events.default.off(_api.default,"SyncJobUpdated",onSyncJobMessage),Promise.reject()})}}});