airdcpp-webui 2.14.0-beta.11 → 2.14.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.html +1 -1
- package/dist/js/{544.65aa9935aff661f699f2.chunk.js → 544.23c1c02472b86725dbe7.chunk.js} +2 -2
- package/dist/js/544.23c1c02472b86725dbe7.chunk.js.gz +0 -0
- package/dist/js/{544.65aa9935aff661f699f2.chunk.js.map → 544.23c1c02472b86725dbe7.chunk.js.map} +1 -1
- package/dist/js/{550.83271f41ad0cccc6815b.chunk.js → 550.43735d298b0c3e70c6bd.chunk.js} +2 -2
- package/dist/js/550.43735d298b0c3e70c6bd.chunk.js.gz +0 -0
- package/dist/js/{550.83271f41ad0cccc6815b.chunk.js.map → 550.43735d298b0c3e70c6bd.chunk.js.map} +1 -1
- package/dist/js/926.c344692db21ff4746b0d.chunk.js +2 -0
- package/dist/js/926.c344692db21ff4746b0d.chunk.js.gz +0 -0
- package/dist/js/926.c344692db21ff4746b0d.chunk.js.map +1 -0
- package/dist/js/{944.890172ae3c849dfa9e12.chunk.js → 944.31cf601418cceee63aa8.chunk.js} +2 -2
- package/dist/js/944.31cf601418cceee63aa8.chunk.js.gz +0 -0
- package/dist/js/944.31cf601418cceee63aa8.chunk.js.map +1 -0
- package/dist/js/{favorite-hubs.10f837eb1b9982c252aa.chunk.js → favorite-hubs.295f583c2e1befcbbbbb.chunk.js} +2 -2
- package/dist/js/favorite-hubs.295f583c2e1befcbbbbb.chunk.js.gz +0 -0
- package/dist/js/{favorite-hubs.10f837eb1b9982c252aa.chunk.js.map → favorite-hubs.295f583c2e1befcbbbbb.chunk.js.map} +1 -1
- package/dist/js/{filelists.8fe983ba06c08a5c65c2.chunk.js → filelists.f098fc396efc445ef837.chunk.js} +2 -2
- package/dist/js/filelists.f098fc396efc445ef837.chunk.js.gz +0 -0
- package/dist/js/{filelists.8fe983ba06c08a5c65c2.chunk.js.map → filelists.f098fc396efc445ef837.chunk.js.map} +1 -1
- package/dist/js/{files.168b9574438986003ddd.chunk.js → files.64f72b3869667e0d4c7e.chunk.js} +2 -2
- package/dist/js/files.64f72b3869667e0d4c7e.chunk.js.gz +0 -0
- package/dist/js/{files.168b9574438986003ddd.chunk.js.map → files.64f72b3869667e0d4c7e.chunk.js.map} +1 -1
- package/dist/js/{home.2fac0aaf4db41cf0a314.chunk.js → home.e0421a3f337897e900d5.chunk.js} +3 -3
- package/dist/js/home.e0421a3f337897e900d5.chunk.js.gz +0 -0
- package/dist/js/{home.2fac0aaf4db41cf0a314.chunk.js.map → home.e0421a3f337897e900d5.chunk.js.map} +1 -1
- package/dist/js/{hubs.43ca34eee0ef61fc32b2.chunk.js → hubs.82f0f581d104a03d4461.chunk.js} +2 -2
- package/dist/js/hubs.82f0f581d104a03d4461.chunk.js.gz +0 -0
- package/dist/js/{hubs.43ca34eee0ef61fc32b2.chunk.js.map → hubs.82f0f581d104a03d4461.chunk.js.map} +1 -1
- package/dist/js/main.eea930701ff0165c262c.entry.js +3 -0
- package/dist/js/{main.cacce80f03c18d3bf7d9.entry.js.LICENSE.txt → main.eea930701ff0165c262c.entry.js.LICENSE.txt} +1 -1
- package/dist/js/main.eea930701ff0165c262c.entry.js.gz +0 -0
- package/dist/js/{main.cacce80f03c18d3bf7d9.entry.js.map → main.eea930701ff0165c262c.entry.js.map} +1 -1
- package/dist/js/queue.2e2c51447eed5f81354d.chunk.js +2 -0
- package/dist/js/queue.2e2c51447eed5f81354d.chunk.js.gz +0 -0
- package/dist/js/queue.2e2c51447eed5f81354d.chunk.js.map +1 -0
- package/dist/js/{search.54d77ceed2d7b5286e96.chunk.js → search.52d677e31d86ea727809.chunk.js} +2 -2
- package/dist/js/search.52d677e31d86ea727809.chunk.js.gz +0 -0
- package/dist/js/{search.54d77ceed2d7b5286e96.chunk.js.map → search.52d677e31d86ea727809.chunk.js.map} +1 -1
- package/dist/js/{settings.e2c30f0541c9eaaa8741.chunk.js → settings.064c3f5ee2ec8c698a4c.chunk.js} +2 -2
- package/dist/js/settings.064c3f5ee2ec8c698a4c.chunk.js.gz +0 -0
- package/dist/js/settings.064c3f5ee2ec8c698a4c.chunk.js.map +1 -0
- package/dist/sw.js +1 -1
- package/dist/sw.js.gz +0 -0
- package/dist/sw.js.map +1 -1
- package/package.json +1 -1
- package/dist/js/544.65aa9935aff661f699f2.chunk.js.gz +0 -0
- package/dist/js/550.83271f41ad0cccc6815b.chunk.js.gz +0 -0
- package/dist/js/926.ddc01ea089c248c6a6dd.chunk.js +0 -2
- package/dist/js/926.ddc01ea089c248c6a6dd.chunk.js.gz +0 -0
- package/dist/js/926.ddc01ea089c248c6a6dd.chunk.js.map +0 -1
- package/dist/js/944.890172ae3c849dfa9e12.chunk.js.gz +0 -0
- package/dist/js/944.890172ae3c849dfa9e12.chunk.js.map +0 -1
- package/dist/js/favorite-hubs.10f837eb1b9982c252aa.chunk.js.gz +0 -0
- package/dist/js/filelists.8fe983ba06c08a5c65c2.chunk.js.gz +0 -0
- package/dist/js/files.168b9574438986003ddd.chunk.js.gz +0 -0
- package/dist/js/home.2fac0aaf4db41cf0a314.chunk.js.gz +0 -0
- package/dist/js/hubs.43ca34eee0ef61fc32b2.chunk.js.gz +0 -0
- package/dist/js/locales/zh_CN-GB2312-webui-main-json.c56c6d389b7951c4f74d.chunk.js +0 -1
- package/dist/js/locales/zh_CN-GB2312-webui-main-json.c56c6d389b7951c4f74d.chunk.js.gz +0 -0
- package/dist/js/main.cacce80f03c18d3bf7d9.entry.js +0 -3
- package/dist/js/main.cacce80f03c18d3bf7d9.entry.js.gz +0 -0
- package/dist/js/queue.6ff3192c939acd0170e7.chunk.js +0 -2
- package/dist/js/queue.6ff3192c939acd0170e7.chunk.js.gz +0 -0
- package/dist/js/queue.6ff3192c939acd0170e7.chunk.js.map +0 -1
- package/dist/js/search.54d77ceed2d7b5286e96.chunk.js.gz +0 -0
- package/dist/js/settings.e2c30f0541c9eaaa8741.chunk.js.gz +0 -0
- package/dist/js/settings.e2c30f0541c9eaaa8741.chunk.js.map +0 -1
- /package/dist/js/{home.2fac0aaf4db41cf0a314.chunk.js.LICENSE.txt → home.e0421a3f337897e900d5.chunk.js.LICENSE.txt} +0 -0
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[336],{25364:(e,s,t)=>{t.d(s,{A:()=>r});var i=t(74848),n=(t(96540),t(46942)),o=t.n(n);const r=({className:e,percent:s,caption:t})=>(0,i.jsxs)("div",{className:o()("ui progress",e,{indeterminate:void 0===s}),"data-percent":s,children:[(0,i.jsx)("div",{className:"bar",style:{transitionDuration:"300ms",width:void 0===s?void 0:s+"%",minWidth:"0px"},children:(0,i.jsx)("div",{className:"progress"})}),!!t&&(0,i.jsx)("div",{className:"label",children:t})]})},27415:(e,s,t)=>{t.d(s,{f$:()=>h,vl:()=>_,qZ:()=>N,_q:()=>v,De:()=>x,Hi:()=>R.Hi});var i=t(58059),n=t(4425),o=t(86038),r=t(67749),a=t(48844);const d=(e,s)=>e.post(i.A.BUNDLES_URL+"/priority",{priority:s}),c={id:"removeCompleted",displayName:"Remove completed bundles",access:o.US.QUEUE_EDIT,icon:n.A.REMOVE,handler:({socket:e})=>e.post(i.A.BUNDLES_URL+"/remove_completed"),notifications:{onSuccess:"{{result.count}} completed bundles were removed"}},l={id:"pause",displayName:"Pause all bundles",access:o.US.QUEUE_EDIT,icon:n.A.PAUSE,handler:({socket:e})=>d(e,o.Fm.PAUSED_FORCED)},u={id:"resumeAll",displayName:"Resume all bundles",access:o.US.QUEUE_EDIT,icon:n.A.PLAY,handler:({socket:e})=>d(e,o.Fm.DEFAULT)},m={removeCompleted:c,divider:a.o,pause:l,resume:u},h={moduleData:{moduleId:r.KV.QUEUE},actions:m};var p=t(44054);const E=({itemData:e})=>e.status.id===i.S.COMPLETION_VALIDATION_ERROR,A=({itemData:e})=>0===e.time_finished,U=(e,s,t)=>e.post(`${i.A.BUNDLES_URL}/${s.id}/share`,{skip_validation:t}),x={id:"sources",displayName:"Manage sources...",icon:n.A.USER,filter:e=>e.itemData.sources.total>0&&A(e),handler:({itemData:e,navigate:s})=>{s(`sources/${e.id}`)}},v={id:"content",displayName:"Manage files...",icon:n.A.FILE,filter:({itemData:e})=>"directory"===e.type.id,handler:({itemData:e,navigate:s})=>{s(`content/${e.id}`)}},y={id:"search",displayName:"Search (foreground)",icon:n.A.SEARCH,handler:({itemData:e,location:s,navigate:t})=>(0,p.e)(e,s,t)},D={id:"searchAlternates",displayName:"Search for alternates",icon:n.A.SEARCH_ALTERNATES,filter:A,handler:({itemData:e,socket:s})=>s.post(`${i.A.BUNDLES_URL}/${e.id}/search`),notifications:{onSuccess:"The bundle {{item.name}} was searched for alternates"}},j={id:"remove",displayName:"Remove",access:o.US.QUEUE_EDIT,icon:n.A.REMOVE,confirmation:{content:"Are you sure that you want to remove the bundle {{item.name}}?",approveCaption:"Remove bundle",rejectCaption:"Don't remove",checkboxCaption:"Remove finished files"},handler:({itemData:e,socket:s},t)=>s.post(`${i.A.BUNDLES_URL}/${e.id}/remove`,{remove_finished:t})},S={id:"rescan",displayName:"Rescan for errors",access:o.US.QUEUE_EDIT,icon:n.A.REFRESH_COLORED,filter:E,handler:({itemData:e,socket:s})=>U(s,e,!1)},f={id:"forceShare",displayName:"Force in share",access:o.US.QUEUE_EDIT,icon:n.A.ERROR,filter:E,handler:({itemData:e,socket:s})=>U(s,e,!0)},w={sources:x,content:v,divider:null,search:y,searchAlternates:D,divider2:null,remove:j,divider3:null,rescan:S,forceShare:f},N={moduleId:r.KV.QUEUE,subId:"bundle"},_={moduleData:N,actions:w};t(32563);var R=t(89478);t(34395)},32563:(e,s,t)=>{t.d(s,{mM:()=>d});var i=t(58059),n=t(4425),o=t(86038),r=t(67749);const a={remove:{id:"remove",displayName:"Remove source",access:o.US.QUEUE_EDIT,icon:n.A.REMOVE,handler:({itemData:e,entity:s,socket:t})=>t.delete(`${i.A.BUNDLES_URL}/${s.id}/sources/${e.user.cid}`)}},d={moduleData:{moduleId:r.KV.QUEUE,subId:"bundleSource"},actions:a}},32814:(e,s,t)=>{t.r(s),t.d(s,{default:()=>ve});var i=t(74848),n=t(96540),o=t(68465),r=t(3570),a=t(2404),d=t.n(a),c=t(86038);const l={[c.Fm.PAUSED_FORCED]:{str:"Paused (forced)",id:0},[c.Fm.PAUSED]:{str:"Paused",id:1},[c.Fm.LOWEST]:{str:"Lowest",id:2},[c.Fm.LOW]:{str:"Low",id:3},[c.Fm.NORMAL]:{str:"Normal",id:4},[c.Fm.HIGH]:{str:"High",id:5},[c.Fm.HIGHEST]:{str:"Highest",id:6}};var u=t(2690),m=t(67749),h=t(42695),p=t(36076),E=t(43045),A=t(6897),U=t(39364),x=t(70756),v=t(48249);const y=(0,n.memo)(({item:e,itemPrio:s,prioAction:t,t:n})=>{const o=(0,U.wV)(),r=(0,v.F)(),a=s=>(0,p.bd)(()=>t(e,s,r),n);let d=(0,h.Tl)(l[s.id].str,n,m.KV.QUEUE);return s.auto&&(d+=` (${(0,h.Tl)("Auto",n,m.KV.QUEUE).toLocaleLowerCase()})`),(0,x.z)(o,c.US.QUEUE_EDIT)?(0,i.jsx)(u.A,{caption:d,className:"priority-menu",children:t=>{const i=Object.keys(l).map(Number).map(s=>((s,t)=>{const i=e.priority.id;return{id:s.id.toString(),item:{active:i===s.id,onClick:()=>{a(s.id)},children:(0,h.Tl)(s.str,t,m.KV.QUEUE)}}})(l[s],n));return i.push({id:"divider"}),i.push({id:"auto",item:{active:s.auto,onClick:()=>{a(c.Fm.DEFAULT)},children:(0,h.Tl)("Auto",n,m.KV.QUEUE)}}),(0,A.y)(i,t)}}):(0,i.jsx)(E.b,{caption:d})},(e,s)=>d()(s.item.priority,e.item.priority));var D=t(46942),j=t.n(D),S=t(25364);const f=(e,s)=>{if(e.completed)return"success";const t=e.id;return j()({grey:(!t||t===c.$E.QUEUED)&&0===s.speed},{blue:(!t||t===c.$E.QUEUED)&&s.speed>0})},w=({cellData:e,rowDataGetter:s})=>{if(e.failed)return(0,i.jsx)("span",{className:"error",children:e.str});const t=s();return(0,i.jsx)(S.A,{className:f(e,t),caption:e.str,percent:100*t.downloaded_bytes/t.size})};var N=t(22005),_=t.n(N),R=t(58059),b=t(52267);const C=_().createStore({_viewName:`${R.A.BUNDLE_VIEW_ID}_view`,_apiUrl:R.A.MODULE_URL,mixins:[(0,b.A)("name")]});var I=t(99671),L=t(65385),T=t(5945);const V=_().createStore({_viewName:`${R.A.FILE_VIEW_ID}_view`,_apiUrl:R.A.MODULE_URL,mixins:[(0,b.A)("name")]});var g=t(44247),F=t(56896),k=t(39115),P=t(27415),Q=t(85072),$=t.n(Q),K=t(97825),O=t.n(K),H=t(77659),B=t.n(H),q=t(55056),M=t.n(q),G=t(10540),W=t.n(G),z=t(41113),Z=t.n(z),J=t(61987),X={};X.styleTagTransform=Z(),X.setAttributes=M(),X.insert=B().bind(null,"head"),X.domAPI=O(),X.insertStyleElement=W(),$()(J.A,X),J.A&&J.A.locals&&J.A.locals;const Y=({cellData:e,rowDataGetter:s,t})=>(0,i.jsx)(y,{itemPrio:e,item:s(),prioAction:F.nX,t});class ee extends n.Component{constructor(){super(...arguments),this.isActive=(e,s)=>!s.status.downloaded,this.isRunning=(e,s)=>s.speed>0}render(){return(0,i.jsxs)(r.A,{store:V,sourceFilter:{pattern:this.props.bundle.id,method:c.Od.EXACT,property:"bundle"},moduleId:m.KV.QUEUE,textFilterProps:{autoFocus:!0},children:[(0,i.jsx)(o.VP,{name:"Name",width:200,flexGrow:20,columnKey:"name",cell:(0,i.jsx)(g.tC,{actions:P.Hi,remoteMenuId:k.Ay.QUEUE_FILE})}),(0,i.jsx)(o.VP,{name:"Size",width:70,columnKey:"size",cell:(0,i.jsx)(g.us,{}),flexGrow:1}),(0,i.jsx)(o.VP,{name:"Status",width:120,columnKey:"status",cell:(0,i.jsx)(w,{})}),(0,i.jsx)(o.VP,{name:"Sources",width:65,columnKey:"sources",renderCondition:this.isActive}),(0,i.jsx)(o.VP,{name:"Time left",width:50,columnKey:"seconds_left",renderCondition:this.isRunning,cell:(0,i.jsx)(g.WQ,{})}),(0,i.jsx)(o.VP,{name:"Speed",width:55,columnKey:"speed",cell:(0,i.jsx)(g.kF,{}),renderCondition:this.isRunning}),(0,i.jsx)(o.VP,{name:"Priority",width:80,columnKey:"priority",renderCondition:this.isActive,cell:(0,i.jsx)(Y,{}),flexGrow:1})]})}}const se=ee;var te=t(56484);class ie extends n.Component{render(){const{bundle:e}=this.props;return(0,i.jsx)(I.A,{className:"source",title:e.name,subHeader:e.target,closable:!0,icon:(0,i.jsx)(T.A,{typeInfo:e.type}),fullHeight:!0,children:(0,i.jsx)(se,{bundle:e})})}}ie.displayName="BundleFileDialog";const ne=(0,L.A)((0,te.A)(ie,{urls:{bundle:({params:e},s)=>s.get(`${R.A.BUNDLES_URL}/${e.bundleId}`)}}),"content/:bundleId");var oe=t(32563),re=t(74416),ae=t(71352),de=t(86668);const ce=({source:e,bundle:s,t})=>{const{formatSize:n,formatSpeed:o}=(0,re.k)();return(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{className:"user dropdown",children:(0,i.jsx)(ae.Bg,{userIcon:!0,user:e.user,ids:de.F9,contextElement:".source.modal",remoteMenuId:k.Ay.HINTED_USER,children:(0,i.jsx)(ae.Wy,{actions:oe.mM,itemData:e,entity:s})})}),(0,i.jsx)("td",{className:"hubs",children:e.user.hub_names}),(0,i.jsx)("td",{className:"speed",children:e.last_speed>0&&o(e.last_speed)}),(0,i.jsx)("td",{className:"files",children:e.files}),(0,i.jsx)("td",{className:"size",children:n(e.size)})]})},le=(e,s)=>e.user.nicks.localeCompare(s.user.nicks),ue=(0,te.A)(({sources:e,bundle:s,queueT:t})=>{const{translate:n}=t;return(0,i.jsxs)("div",{className:"sources",children:[(0,i.jsx)("h2",{children:n("Sources")}),(0,i.jsxs)("table",{className:"ui striped table",children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:n("User")}),(0,i.jsx)("th",{children:n("Hubs")}),(0,i.jsx)("th",{children:n("Last known speed")}),(0,i.jsx)("th",{children:n("Files")}),(0,i.jsx)("th",{children:n("Size")})]})}),(0,i.jsx)("tbody",{children:e.slice().sort(le).map(e=>(0,i.jsx)(ce,{source:e,bundle:s,t:t.plainT},e.user.cid))})]})]})},{urls:{sources:({bundle:e},s)=>s.get(`${R.A.BUNDLES_URL}/${e.id}/sources`)},onSocketConnected:(e,{refetchData:s,props:t})=>{e(R.A.MODULE_URL,R.A.BUNDLE_SOURCES,e=>{e.id===t.bundle.id&&s()})}});class me extends n.Component{render(){const{bundle:e,queueT:s}=this.props;return(0,i.jsx)(I.A,Object.assign({className:"source",title:e.name,subHeader:e.target,closable:!0,icon:(0,i.jsx)(T.A,{typeInfo:e.type}),fullHeight:!0},this.props,{children:(0,i.jsx)(ue,{bundle:e,queueT:s})}))}}me.displayName="SourceDialog";const he=(0,L.A)((0,te.A)(me,{urls:{bundle:({params:e},s)=>s.get(`${R.A.BUNDLES_URL}/${e.bundleId}`)}}),"sources/:bundleId");var pe=t(32728),Ee=t(32389),Ae=t(4425);const Ue=({cellData:e,rowDataGetter:s,t})=>(0,i.jsx)(y,{itemPrio:e,item:s(),prioAction:F.hh,t});class xe extends n.Component{constructor(){super(...arguments),this.isActive=(e,s)=>!s.status.downloaded,this.isDownloaded=(e,s)=>s.status.downloaded,this.isRunning=(e,s)=>s.speed>0,this.emptyRowsNodeGetter=()=>{const{t:e}=this.queueT;return(0,i.jsx)(pe.A,{title:e("queueEmpty","The queue is empty"),icon:Ae.A.FILE,description:e("queueEmptyDesc","New items can be queued from search or filelists")})},this.queueT=(0,h.lw)(this.props.t,m.KV.QUEUE)}render(){const{translate:e}=this.queueT;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(r.A,{emptyRowsNodeGetter:this.emptyRowsNodeGetter,store:C,footerData:(0,i.jsx)(ae.Wy,{className:"top left pointing",caption:e("Actions..."),actions:P.f$,header:e("Queue actions"),triggerIcon:"chevron up",button:!0,remoteMenuId:k.Ay.QUEUE}),moduleId:m.KV.QUEUE,children:[(0,i.jsx)(o.VP,{name:"Name",width:200,flexGrow:4,columnKey:"name",cell:(0,i.jsx)(g.tC,{actions:P.vl,remoteMenuId:k.Ay.QUEUE_BUNDLE,ids:["content","sources","divider","search","searchAlternates","divider","remove","divider","rescan","forceShare"]})}),(0,i.jsx)(o.VP,{name:"Size",width:60,columnKey:"size",cell:(0,i.jsx)(g.us,{}),flexGrow:1}),(0,i.jsx)(o.VP,{name:"Type/content",width:150,columnKey:"type",hideWidth:1e3,cell:(0,i.jsx)(g.V9,{action:P._q,moduleData:P.qZ})}),(0,i.jsx)(o.VP,{name:"Status",width:120,flexGrow:3,columnKey:"status",cell:(0,i.jsx)(w,{})}),(0,i.jsx)(o.VP,{name:"Sources",width:60,columnKey:"sources",renderCondition:this.isActive,flexGrow:1,cell:(0,i.jsx)(g.V9,{action:P.De,moduleData:P.qZ})}),(0,i.jsx)(o.VP,{name:"Time left",width:50,columnKey:"seconds_left",renderCondition:this.isRunning,cell:(0,i.jsx)(g.WQ,{})}),(0,i.jsx)(o.VP,{name:"Speed",width:50,columnKey:"speed",cell:(0,i.jsx)(g.kF,{}),renderCondition:this.isRunning,flexGrow:1}),(0,i.jsx)(o.VP,{name:"Priority",width:80,columnKey:"priority",renderCondition:this.isActive,cell:(0,i.jsx)(Ue,{}),flexGrow:1}),(0,i.jsx)(o.VP,{name:"Added",width:100,columnKey:"time_added",cell:(0,i.jsx)(g.Jo,{}),hideWidth:1400}),(0,i.jsx)(o.VP,{name:"Finished",width:100,columnKey:"time_finished",cell:(0,i.jsx)(g.Jo,{}),renderCondition:this.isDownloaded,hideWidth:1200})]}),(0,i.jsx)(he,{queueT:this.queueT}),(0,i.jsx)(ne,{})]})}}xe.displayName="Queue";const ve=(0,Ee.CI)()(xe)},34395:(e,s,t)=>{t.d(s,{JN:()=>a});var i=t(58059),n=t(4425),o=t(86038),r=t(67749);const a={id:"removeSource",displayName:"Remove user from queue",access:o.US.QUEUE_EDIT,icon:n.A.REMOVE,handler:({itemData:e,socket:s})=>s.delete(`${i.A.SOURCES_URL}/${e.cid}`),notifications:{onSuccess:"The user {{user.nicks}} was removed from {{result.count}} files"}};r.KV.QUEUE},61987:(e,s,t)=>{t.d(s,{A:()=>a});var i=t(71354),n=t.n(i),o=t(76314),r=t.n(o)()(n());r.push([e.id,".status .error {\n color: red;\n}\n\n@media only screen and (min-width: 767px) {\n .source.modal td {\n max-width: 250px;\n }\n\n /* Can't be applied to dropdown cells */\n .source.modal td:not(.user) {\n overflow-x: hidden;\n }\n}\n","",{version:3,sources:["webpack://./src/routes/Queue/style.css"],names:[],mappings:"AAAA;EACE,UAAU;AACZ;;AAEA;EACE;IACE,gBAAgB;EAClB;;EAEA,uCAAuC;EACvC;IACE,kBAAkB;EACpB;AACF",sourcesContent:[".status .error {\n color: red;\n}\n\n@media only screen and (min-width: 767px) {\n .source.modal td {\n max-width: 250px;\n }\n\n /* Can't be applied to dropdown cells */\n .source.modal td:not(.user) {\n overflow-x: hidden;\n }\n}\n"],sourceRoot:""}]);const a=r},89478:(e,s,t)=>{t.d(s,{Hi:()=>m,ew:()=>l});var i=t(58059),n=t(4425),o=t(86038),r=t(67749),a=t(44054);const d={id:"search",displayName:"Search (foreground)",access:o.US.SEARCH,icon:n.A.SEARCH,handler:({itemData:e,location:s,navigate:t})=>(0,a.e)(e,s,t)},c={id:"searchAlternates",displayName:"Search for alternates",access:o.US.QUEUE_EDIT,icon:n.A.SEARCH_ALTERNATES,filter:({itemData:e})=>0===e.time_finished,handler:({itemData:e,socket:s})=>s.post(`${i.A.FILES_URL}/${e.id}/search`)},l={id:"remove",displayName:"Remove",access:o.US.QUEUE_EDIT,icon:n.A.REMOVE,confirmation:{content:"Are you sure that you want to remove the file {{item.name}}?",approveCaption:"Remove file",rejectCaption:"Don't remove",checkboxCaption:"Remove on disk"},handler:({itemData:e,socket:s},t)=>s.post(`${i.A.FILES_URL}/${e.id}/remove`,{remove_finished:t}),notifications:{onSuccess:"File {{item.name}} was removed from queue"}},u={search:d,searchAlternates:c,remove:l},m={moduleData:{moduleId:r.KV.QUEUE,subId:"file"},actions:u}}}]);
|
|
2
|
-
//# sourceMappingURL=queue.6ff3192c939acd0170e7.chunk.js.map
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/queue.6ff3192c939acd0170e7.chunk.js","mappings":"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","sources":["webpack://airdcpp-webui/./src/components/semantic/Progress.tsx","webpack://airdcpp-webui/./src/actions/ui/queue/QueueActions.ts","webpack://airdcpp-webui/./src/actions/ui/queue/QueueBundleActions.ts","webpack://airdcpp-webui/./src/actions/ui/queue/QueueBundleSourceActions.ts","webpack://airdcpp-webui/./src/constants/PriorityConstants.ts","webpack://airdcpp-webui/./src/routes/Queue/components/PriorityMenu.tsx","webpack://airdcpp-webui/./src/routes/Queue/components/StatusCell.tsx","webpack://airdcpp-webui/./src/stores/views/QueueBundleViewStore.js","webpack://airdcpp-webui/./src/stores/views/QueueFileViewStore.js","webpack://airdcpp-webui/./src/routes/Queue/style.css?62bc","webpack://airdcpp-webui/./src/routes/Queue/components/file-dialog/BundleFileTable.tsx","webpack://airdcpp-webui/./src/routes/Queue/components/file-dialog/BundleFileDialog.tsx","webpack://airdcpp-webui/./src/routes/Queue/components/source-dialog/BundleSourceTable.tsx","webpack://airdcpp-webui/./src/routes/Queue/components/source-dialog/BundleSourceDialog.tsx","webpack://airdcpp-webui/./src/routes/Queue/components/Queue.tsx","webpack://airdcpp-webui/./src/actions/ui/queue/QueueSourceActions.ts","webpack://airdcpp-webui/./src/routes/Queue/style.css","webpack://airdcpp-webui/./src/actions/ui/queue/QueueFileActions.ts"],"sourcesContent":["import * as React from 'react';\nimport classNames from 'classnames';\n\nexport interface ProgressProps {\n caption?: React.ReactNode;\n className?: string | null;\n percent?: number;\n}\n\nconst Progress: React.FC<ProgressProps> = ({ className, percent, caption }) => (\n <div\n className={classNames('ui progress', className, {\n indeterminate: percent === undefined,\n })}\n data-percent={percent}\n >\n <div\n className=\"bar\"\n style={{\n transitionDuration: 300 + 'ms',\n width: percent === undefined ? undefined : percent + '%',\n minWidth: '0px',\n }}\n >\n <div className=\"progress\" />\n </div>\n {!!caption && <div className=\"label\">{caption}</div>}\n </div>\n);\n\nexport default Progress;\n","import QueueConstants from '@/constants/QueueConstants';\n\nimport IconConstants from '@/constants/IconConstants';\n\nimport * as API from '@/types/api';\nimport * as UI from '@/types/ui';\nimport { MENU_DIVIDER } from '@/constants/ActionConstants';\nimport { APISocket } from '@/services/SocketService';\n\nconst setBundlePriorities = (socket: APISocket, prio: API.QueuePriorityEnum) => {\n return socket.post(QueueConstants.BUNDLES_URL + '/priority', {\n priority: prio,\n });\n};\n\nconst handlePause: UI.ActionHandler<void> = ({ socket }) => {\n return setBundlePriorities(socket, API.QueuePriorityEnum.PAUSED_FORCED);\n};\n\nconst handleResume: UI.ActionHandler<void> = ({ socket }) => {\n return setBundlePriorities(socket, API.QueuePriorityEnum.DEFAULT);\n};\n\nconst handleRemoveCompleted: UI.ActionHandler<void> = ({ socket }) => {\n return socket.post(QueueConstants.BUNDLES_URL + '/remove_completed');\n};\n\nexport const QueueRemoveCompletedAction = {\n id: 'removeCompleted',\n displayName: 'Remove completed bundles',\n access: API.AccessEnum.QUEUE_EDIT,\n icon: IconConstants.REMOVE,\n handler: handleRemoveCompleted,\n notifications: {\n onSuccess: '{{result.count}} completed bundles were removed',\n },\n};\n\nexport const QueuePauseAction = {\n id: 'pause',\n displayName: 'Pause all bundles',\n access: API.AccessEnum.QUEUE_EDIT,\n icon: IconConstants.PAUSE,\n handler: handlePause,\n};\n\nexport const QueueResumeAction = {\n id: 'resumeAll',\n displayName: 'Resume all bundles',\n access: API.AccessEnum.QUEUE_EDIT,\n icon: IconConstants.PLAY,\n handler: handleResume,\n};\n\nconst QueueActions: UI.ActionListType<void> = {\n removeCompleted: QueueRemoveCompletedAction,\n divider: MENU_DIVIDER,\n pause: QueuePauseAction,\n resume: QueueResumeAction,\n};\n\nexport const QueueActionModule = {\n moduleId: UI.Modules.QUEUE,\n};\n\nexport const QueueActionMenu = {\n moduleData: QueueActionModule,\n actions: QueueActions,\n};\n","import { default as QueueConstants, StatusEnum } from '@/constants/QueueConstants';\r\n\r\nimport IconConstants from '@/constants/IconConstants';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\n\r\nimport { APISocket } from '@/services/SocketService';\r\nimport { searchForeground } from '@/utils/SearchUtils';\r\n\r\ntype Filter = UI.ActionFilter<API.QueueBundle>;\r\nconst bundleValidationFailed: Filter = ({ itemData: bundle }) =>\r\n bundle.status.id === StatusEnum.COMPLETION_VALIDATION_ERROR;\r\nconst itemNotFinished: Filter = ({ itemData: bundle }) => bundle.time_finished === 0;\r\nconst isDirectoryBundle: Filter = ({ itemData: bundle }) =>\r\n bundle.type.id === 'directory';\r\nconst hasSources: Filter = (data) =>\r\n data.itemData.sources.total > 0 && itemNotFinished(data);\r\n\r\nconst shareBundle = (\r\n socket: APISocket,\r\n bundle: API.QueueBundle,\r\n skipValidation: boolean,\r\n) => {\r\n return socket.post(`${QueueConstants.BUNDLES_URL}/${bundle.id}/share`, {\r\n skip_validation: skipValidation,\r\n });\r\n};\r\n\r\n// Handlers\r\ntype Handler = UI.ActionHandler<API.QueueBundle>;\r\n\r\nconst handleRescan: Handler = ({ itemData: bundle, socket }) => {\r\n return shareBundle(socket, bundle, false);\r\n};\r\n\r\nconst handleForceShare: Handler = ({ itemData: bundle, socket }) => {\r\n return shareBundle(socket, bundle, true);\r\n};\r\n\r\nconst handleRemoveBundle: Handler = ({ itemData: bundle, socket }, removeFinished) => {\r\n return socket.post(`${QueueConstants.BUNDLES_URL}/${bundle.id}/remove`, {\r\n remove_finished: removeFinished,\r\n });\r\n};\r\n\r\nconst handleSearch: Handler = ({ itemData: bundle, location, navigate }) => {\r\n return searchForeground(bundle, location, navigate);\r\n};\r\n\r\nconst handleSearchBundleAlternates: Handler = ({ itemData: bundle, socket }) => {\r\n return socket.post(`${QueueConstants.BUNDLES_URL}/${bundle.id}/search`);\r\n};\r\n\r\nconst handleSources: Handler = ({ itemData, navigate }) => {\r\n navigate(`sources/${itemData.id}`);\r\n};\r\n\r\nconst handleContent: Handler = ({ itemData, navigate }) => {\r\n navigate(`content/${itemData.id}`);\r\n};\r\n\r\nexport const QueueBundleViewSourcesAction = {\r\n id: 'sources',\r\n displayName: 'Manage sources...',\r\n icon: IconConstants.USER,\r\n filter: hasSources,\r\n handler: handleSources,\r\n};\r\n\r\nexport const QueueBundleViewContentAction = {\r\n id: 'content',\r\n displayName: 'Manage files...',\r\n icon: IconConstants.FILE,\r\n filter: isDirectoryBundle,\r\n handler: handleContent,\r\n};\r\n\r\nexport const QueueBundleSearchAction = {\r\n id: 'search',\r\n displayName: 'Search (foreground)',\r\n icon: IconConstants.SEARCH,\r\n handler: handleSearch,\r\n};\r\n\r\nexport const QueueBundleSearchAlternatesAction = {\r\n id: 'searchAlternates',\r\n displayName: 'Search for alternates',\r\n icon: IconConstants.SEARCH_ALTERNATES,\r\n filter: itemNotFinished,\r\n handler: handleSearchBundleAlternates,\r\n notifications: {\r\n onSuccess: 'The bundle {{item.name}} was searched for alternates',\r\n },\r\n};\r\n\r\nexport const QueueBundleRemoveAction = {\r\n id: 'remove',\r\n displayName: 'Remove',\r\n access: API.AccessEnum.QUEUE_EDIT,\r\n icon: IconConstants.REMOVE,\r\n confirmation: {\r\n content: 'Are you sure that you want to remove the bundle {{item.name}}?',\r\n approveCaption: 'Remove bundle',\r\n rejectCaption: `Don't remove`,\r\n checkboxCaption: 'Remove finished files',\r\n },\r\n handler: handleRemoveBundle,\r\n};\r\n\r\nexport const QueueBundleRescanAction = {\r\n id: 'rescan',\r\n displayName: 'Rescan for errors',\r\n access: API.AccessEnum.QUEUE_EDIT,\r\n icon: IconConstants.REFRESH_COLORED,\r\n filter: bundleValidationFailed,\r\n handler: handleRescan,\r\n};\r\n\r\nexport const QueueBundleForceShareAction = {\r\n id: 'forceShare',\r\n displayName: 'Force in share',\r\n access: API.AccessEnum.QUEUE_EDIT,\r\n icon: IconConstants.ERROR,\r\n filter: bundleValidationFailed,\r\n handler: handleForceShare,\r\n};\r\n\r\nconst QueueBundleActions: UI.ActionListType<API.QueueBundle> = {\r\n sources: QueueBundleViewSourcesAction,\r\n content: QueueBundleViewContentAction,\r\n divider: null,\r\n search: QueueBundleSearchAction,\r\n searchAlternates: QueueBundleSearchAlternatesAction,\r\n divider2: null,\r\n remove: QueueBundleRemoveAction,\r\n divider3: null,\r\n rescan: QueueBundleRescanAction,\r\n forceShare: QueueBundleForceShareAction,\r\n};\r\n\r\nexport const QueueBundleActionModule = {\r\n moduleId: UI.Modules.QUEUE,\r\n subId: 'bundle',\r\n};\r\n\r\nexport const QueueBundleActionMenu = {\r\n moduleData: QueueBundleActionModule,\r\n actions: QueueBundleActions,\r\n} as UI.ModuleActions<API.QueueBundle>;\r\n","import { default as QueueConstants } from '@/constants/QueueConstants';\r\n\r\nimport IconConstants from '@/constants/IconConstants';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\n\r\ntype ActionHandlerType = UI.ActionHandler<API.QueueBundleSource, API.QueueBundle>;\r\n\r\nconst handleRemoveBundleSource: ActionHandlerType = ({\r\n itemData: source,\r\n entity: bundle,\r\n socket,\r\n}) => {\r\n return socket.delete(\r\n `${QueueConstants.BUNDLES_URL}/${bundle.id}/sources/${source.user.cid}`,\r\n );\r\n};\r\n\r\nexport const QueueBundleSourceRemoveAction = {\r\n id: 'remove',\r\n displayName: 'Remove source',\r\n access: API.AccessEnum.QUEUE_EDIT,\r\n icon: IconConstants.REMOVE,\r\n handler: handleRemoveBundleSource,\r\n};\r\n\r\nconst BundleSourceActions = {\r\n remove: QueueBundleSourceRemoveAction,\r\n};\r\n\r\nexport const QueueBundleSourceActionModule = {\r\n moduleId: UI.Modules.QUEUE,\r\n subId: 'bundleSource',\r\n};\r\n\r\nexport const QueueBundleSourceActionMenu = {\r\n moduleData: QueueBundleSourceActionModule,\r\n actions: BundleSourceActions,\r\n};\r\n","import { QueuePriorityEnum } from '@/types/api';\n\nexport const PriorityEnum = {\n [QueuePriorityEnum.PAUSED_FORCED]: { str: 'Paused (forced)', id: 0 },\n [QueuePriorityEnum.PAUSED]: { str: 'Paused', id: 1 },\n [QueuePriorityEnum.LOWEST]: { str: 'Lowest', id: 2 },\n [QueuePriorityEnum.LOW]: { str: 'Low', id: 3 },\n [QueuePriorityEnum.NORMAL]: { str: 'Normal', id: 4 },\n [QueuePriorityEnum.HIGH]: { str: 'High', id: 5 },\n [QueuePriorityEnum.HIGHEST]: { str: 'Highest', id: 6 },\n};\n","import { memo } from 'react';\r\nimport isEqual from 'lodash/isEqual';\r\n\r\nimport { PriorityEnum } from '@/constants/PriorityConstants';\r\n\r\nimport TableDropdown, { DropdownCloseHandler } from '@/components/semantic/TableDropdown';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\n\r\nimport { translate } from '@/utils/TranslationUtils';\r\nimport { runBackgroundSocketAction } from '@/utils/ActionUtils';\r\nimport { EmptyDropdownCaption } from '@/components/semantic/EmptyDropdown';\r\nimport { buildMenu } from '@/components/action-menu/builder/slidingMenuBuilder';\r\nimport { useSession } from '@/context/AppStoreContext';\r\nimport { hasAccess } from '@/utils/AuthUtils';\r\nimport { APISocket } from '@/services/SocketService';\r\nimport { useSocket } from '@/context/SocketContext';\r\n\r\ninterface PriorityMenuProps {\r\n // Priority object\r\n itemPrio: API.QueuePriority;\r\n\r\n // Item with priority properties\r\n item: API.QueueItemBase;\r\n\r\n prioAction: (\r\n item: API.QueueItemBase,\r\n priority: API.QueuePriorityEnum,\r\n socket: APISocket,\r\n ) => Promise<any>;\r\n t: UI.TranslateF;\r\n}\r\n\r\nconst PriorityMenu: React.FC<PriorityMenuProps> = ({ item, itemPrio, prioAction, t }) => {\r\n const session = useSession();\r\n const socket = useSocket();\r\n\r\n const setPriority = (priorityId: API.QueuePriorityEnum) => {\r\n return runBackgroundSocketAction(() => prioAction(item, priorityId, socket), t);\r\n };\r\n\r\n const getPriorityListItem = (\r\n priority: Omit<API.QueuePriority, 'auto'>,\r\n t: UI.TranslateF,\r\n ): UI.ActionMenuItem => {\r\n const currentPrio = item.priority.id;\r\n return {\r\n id: priority.id.toString(),\r\n item: {\r\n active: currentPrio === priority.id,\r\n onClick: () => {\r\n setPriority(priority.id);\r\n },\r\n children: translate(priority.str, t, UI.Modules.QUEUE),\r\n },\r\n };\r\n };\r\n\r\n const getChildren = (onClose: DropdownCloseHandler) => {\r\n const children = Object.keys(PriorityEnum)\r\n .map(Number)\r\n .map((prioKey) =>\r\n getPriorityListItem(PriorityEnum[prioKey as keyof typeof PriorityEnum], t),\r\n );\r\n\r\n children.push({ id: 'divider' });\r\n children.push({\r\n id: 'auto',\r\n item: {\r\n active: itemPrio.auto,\r\n onClick: () => {\r\n setPriority(API.QueuePriorityEnum.DEFAULT);\r\n },\r\n children: translate('Auto', t, UI.Modules.QUEUE),\r\n },\r\n });\r\n\r\n return buildMenu(children, onClose);\r\n };\r\n\r\n let caption = translate(\r\n PriorityEnum[itemPrio.id as keyof typeof PriorityEnum].str,\r\n t,\r\n UI.Modules.QUEUE,\r\n );\r\n if (itemPrio.auto) {\r\n caption += ` (${translate('Auto', t, UI.Modules.QUEUE).toLocaleLowerCase()})`;\r\n }\r\n\r\n if (!hasAccess(session, API.AccessEnum.QUEUE_EDIT)) {\r\n return <EmptyDropdownCaption caption={caption} />;\r\n }\r\n\r\n return (\r\n <TableDropdown caption={caption} className=\"priority-menu\">\r\n {getChildren}\r\n </TableDropdown>\r\n );\r\n};\r\n\r\nexport default memo(PriorityMenu, (prevProps, nextProps) => {\r\n return isEqual(nextProps.item.priority, prevProps.item.priority);\r\n});\r\n","import * as React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nimport Progress from '@/components/semantic/Progress';\r\nimport { RowWrapperCellChildProps } from '@/components/table/RowWrapperCell';\r\n\r\nimport * as API from '@/types/api';\r\n\r\nconst getStatusClass = (cellData: API.QueueBundleStatus, rowData: API.QueueBundle) => {\r\n if (cellData.completed) {\r\n return 'success';\r\n }\r\n\r\n const statusId = cellData.id;\r\n return classNames(\r\n {\r\n grey:\r\n (!statusId || statusId === API.QueueBundleStatusEnum.QUEUED) &&\r\n rowData.speed === 0,\r\n },\r\n {\r\n blue:\r\n (!statusId || statusId === API.QueueBundleStatusEnum.QUEUED) && rowData.speed > 0,\r\n },\r\n );\r\n};\r\n\r\nconst StatusCell: React.FC<\r\n RowWrapperCellChildProps<API.QueueBundleStatus, API.QueueBundle>\r\n> = ({ cellData, rowDataGetter }) => {\r\n if (cellData!.failed) {\r\n // There isn't much space for other information\r\n return <span className=\"error\">{cellData!.str}</span>;\r\n }\r\n\r\n const rowData = rowDataGetter!();\r\n return (\r\n <Progress\r\n className={getStatusClass(cellData!, rowData)}\r\n caption={cellData!.str}\r\n percent={(rowData.downloaded_bytes * 100) / rowData.size}\r\n />\r\n );\r\n};\r\n\r\nexport default StatusCell;\r\n","import Reflux from 'reflux';\n\nimport QueueConstants from '@/constants/QueueConstants';\nimport ViewStoreMixin from '@/mixins/ViewStoreMixin';\n\nexport default Reflux.createStore({\n _viewName: `${QueueConstants.BUNDLE_VIEW_ID}_view`,\n _apiUrl: QueueConstants.MODULE_URL,\n mixins: [ViewStoreMixin('name')],\n});\n","import Reflux from 'reflux';\n\nimport QueueConstants from '@/constants/QueueConstants';\nimport ViewStoreMixin from '@/mixins/ViewStoreMixin';\n\nexport default Reflux.createStore({\n _viewName: `${QueueConstants.FILE_VIEW_ID}_view`,\n _apiUrl: QueueConstants.MODULE_URL,\n mixins: [ViewStoreMixin('name')],\n});\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import * as React from 'react';\nimport { Column } from 'fixed-data-table-2';\nimport * as UI from '@/types/ui';\n\nimport VirtualTable from '@/components/table/VirtualTable';\n\nimport PriorityMenu from '@/routes/Queue/components/PriorityMenu';\nimport StatusCell from '@/routes/Queue/components/StatusCell';\n\nimport QueueFileViewStore from '@/stores/views/QueueFileViewStore';\n\nimport {\n FileActionCell,\n SizeCell,\n SpeedCell,\n AbbreviatedDurationCell,\n} from '@/components/table/Cell';\n\nimport { RowWrapperCellChildProps } from '@/components/table/RowWrapperCell';\n\nimport * as API from '@/types/api';\nimport { setFilePriority } from '@/services/api/QueueApi';\nimport MenuConstants from '@/constants/MenuConstants';\nimport { QueueFileActionMenu } from '@/actions/ui/queue';\n\nimport '../../style.css';\n\nconst PriorityCell: React.FC<\n RowWrapperCellChildProps<API.QueuePriority, API.QueueBundle>\n> = ({ cellData, rowDataGetter, t }) => (\n <PriorityMenu\n itemPrio={cellData!}\n item={rowDataGetter!()}\n prioAction={setFilePriority}\n t={t!}\n />\n);\n\ninterface BundleFileTableProps {\n bundle: API.QueueBundle;\n}\n\nclass BundleFileTable extends React.Component<BundleFileTableProps> {\n isActive = (cellData: any, rowData: API.QueueFile) => {\n return !rowData.status.downloaded;\n };\n\n isRunning = (cellData: any, rowData: API.QueueFile) => {\n return rowData.speed > 0;\n };\n\n render() {\n return (\n <VirtualTable\n store={QueueFileViewStore}\n sourceFilter={{\n pattern: this.props.bundle.id,\n method: API.FilterMethod.EXACT,\n property: 'bundle',\n }}\n moduleId={UI.Modules.QUEUE}\n textFilterProps={{\n autoFocus: true,\n }}\n >\n <Column\n name=\"Name\"\n width={200}\n flexGrow={20}\n columnKey=\"name\"\n cell={\n <FileActionCell\n actions={QueueFileActionMenu}\n remoteMenuId={MenuConstants.QUEUE_FILE}\n />\n }\n />\n <Column\n name=\"Size\"\n width={70}\n columnKey=\"size\"\n cell={<SizeCell />}\n flexGrow={1}\n />\n <Column name=\"Status\" width={120} columnKey=\"status\" cell={<StatusCell />} />\n <Column\n name=\"Sources\"\n width={65}\n columnKey=\"sources\"\n renderCondition={this.isActive}\n />\n <Column\n name=\"Time left\"\n width={50}\n columnKey=\"seconds_left\"\n renderCondition={this.isRunning}\n cell={<AbbreviatedDurationCell />}\n />\n <Column\n name=\"Speed\"\n width={55}\n columnKey=\"speed\"\n cell={<SpeedCell />}\n renderCondition={this.isRunning}\n />\n <Column\n name=\"Priority\"\n width={80}\n columnKey=\"priority\"\n renderCondition={this.isActive}\n cell={<PriorityCell />}\n flexGrow={1}\n />\n </VirtualTable>\n );\n }\n}\n\nexport default BundleFileTable;\n","import { Component } from 'react';\r\nimport RouteModal from '@/components/semantic/RouteModal';\r\n\r\nimport ModalRouteDecorator, {\r\n ModalRouteDecoratorChildProps,\r\n} from '@/decorators/ModalRouteDecorator';\r\n\r\nimport FileIcon from '@/components/icon/FileIcon';\r\nimport BundleFileTable from '@/routes/Queue/components/file-dialog/BundleFileTable';\r\nimport DataProviderDecorator, {\r\n DataProviderDecoratorChildProps,\r\n} from '@/decorators/DataProviderDecorator';\r\nimport QueueConstants from '@/constants/QueueConstants';\r\n\r\nimport * as API from '@/types/api';\r\n\r\ninterface BundleFileDialogProps {}\r\n\r\ninterface DataProps extends DataProviderDecoratorChildProps {\r\n bundle: API.QueueBundle;\r\n}\r\n\r\ntype Props = BundleFileDialogProps & DataProps & ModalRouteDecoratorChildProps;\r\n\r\nclass BundleFileDialog extends Component<Props> {\r\n static readonly displayName = 'BundleFileDialog';\r\n\r\n render() {\r\n const { bundle } = this.props;\r\n return (\r\n <RouteModal\r\n className=\"source\"\r\n title={bundle.name}\r\n subHeader={bundle.target}\r\n closable={true}\r\n icon={<FileIcon typeInfo={bundle.type} />}\r\n fullHeight={true}\r\n >\r\n <BundleFileTable bundle={bundle} />\r\n </RouteModal>\r\n );\r\n }\r\n}\r\n\r\nexport default ModalRouteDecorator<BundleFileDialogProps>(\r\n DataProviderDecorator<Omit<Props, keyof DataProps>, DataProps>(BundleFileDialog, {\r\n urls: {\r\n bundle: ({ params }, socket) =>\r\n socket.get(`${QueueConstants.BUNDLES_URL}/${params.bundleId}`),\r\n },\r\n }),\r\n 'content/:bundleId',\r\n);\r\n","import * as React from 'react';\r\n\r\nimport DataProviderDecorator, {\r\n DataProviderDecoratorChildProps,\r\n} from '@/decorators/DataProviderDecorator';\r\n\r\nimport { QueueBundleSourceActionMenu } from '@/actions/ui/queue/QueueBundleSourceActions';\r\nimport QueueConstants from '@/constants/QueueConstants';\r\n\r\nimport { useFormatter } from '@/context/FormatterContext';\r\n\r\nimport { ActionMenu, UserMenu } from '@/components/action-menu';\r\nimport { UserFileActions } from '@/actions/ui/user/UserActions';\r\nimport MenuConstants from '@/constants/MenuConstants';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\n\r\ninterface SourceProps {\r\n bundle: API.QueueBundle;\r\n source: API.QueueBundleSource;\r\n t: UI.TranslateF;\r\n}\r\n\r\nconst Source: React.FC<SourceProps> = ({ source, bundle, t }) => {\r\n const { formatSize, formatSpeed } = useFormatter();\r\n return (\r\n <tr>\r\n <td className=\"user dropdown\">\r\n <UserMenu\r\n userIcon={true}\r\n user={source.user}\r\n ids={UserFileActions}\r\n contextElement=\".source.modal\"\r\n remoteMenuId={MenuConstants.HINTED_USER}\r\n >\r\n <ActionMenu\r\n actions={QueueBundleSourceActionMenu}\r\n itemData={source}\r\n entity={bundle}\r\n />\r\n </UserMenu>\r\n </td>\r\n <td className=\"hubs\">{source.user.hub_names}</td>\r\n <td className=\"speed\">{source.last_speed > 0 && formatSpeed(source.last_speed)}</td>\r\n <td className=\"files\">{source.files}</td>\r\n <td className=\"size\">{formatSize(source.size)}</td>\r\n </tr>\r\n );\r\n};\r\n\r\nconst userSort = (a: API.QueueBundleSource, b: API.QueueBundleSource) =>\r\n a.user.nicks.localeCompare(b.user.nicks);\r\n\r\ninterface BundleSourceTableProps {\r\n bundle: API.QueueBundle;\r\n queueT: UI.ModuleTranslator;\r\n}\r\n\r\ninterface BundleSourceTableDataProps extends DataProviderDecoratorChildProps {\r\n sources: API.QueueBundleSource[];\r\n}\r\n\r\nconst BundleSourceTable: React.FC<\r\n BundleSourceTableProps & BundleSourceTableDataProps\r\n> = ({ sources, bundle, queueT }) => {\r\n const { translate } = queueT;\r\n\r\n return (\r\n <div className=\"sources\">\r\n <h2>{translate('Sources')}</h2>\r\n <table className=\"ui striped table\">\r\n <thead>\r\n <tr>\r\n <th>{translate('User')}</th>\r\n <th>{translate('Hubs')}</th>\r\n <th>{translate('Last known speed')}</th>\r\n <th>{translate('Files')}</th>\r\n <th>{translate('Size')}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {sources\r\n .slice()\r\n .sort(userSort)\r\n .map((source) => (\r\n <Source\r\n key={source.user.cid}\r\n source={source}\r\n bundle={bundle}\r\n t={queueT.plainT}\r\n />\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n};\r\n\r\nexport default DataProviderDecorator<BundleSourceTableProps, BundleSourceTableDataProps>(\r\n BundleSourceTable,\r\n {\r\n urls: {\r\n sources: ({ bundle }, socket) =>\r\n socket.get(`${QueueConstants.BUNDLES_URL}/${bundle.id}/sources`),\r\n },\r\n onSocketConnected: (addSocketListener, { refetchData, props }) => {\r\n addSocketListener<API.QueueBundle>(\r\n QueueConstants.MODULE_URL,\r\n QueueConstants.BUNDLE_SOURCES,\r\n (data) => {\r\n // Avoid flickering when there are many bundles running\r\n if (data.id === props.bundle.id) {\r\n refetchData();\r\n }\r\n },\r\n );\r\n },\r\n },\r\n);\r\n","import { Component } from 'react';\r\nimport RouteModal from '@/components/semantic/RouteModal';\r\n\r\nimport ModalRouteDecorator, {\r\n ModalRouteDecoratorChildProps,\r\n} from '@/decorators/ModalRouteDecorator';\r\n\r\nimport FileIcon from '@/components/icon/FileIcon';\r\n\r\nimport SourceTable from '@/routes/Queue/components/source-dialog/BundleSourceTable';\r\nimport DataProviderDecorator, {\r\n DataProviderDecoratorChildProps,\r\n} from '@/decorators/DataProviderDecorator';\r\nimport QueueConstants from '@/constants/QueueConstants';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\n\r\ninterface BundleSourceDialogProps {\r\n queueT: UI.ModuleTranslator;\r\n}\r\n\r\ninterface DataProps extends DataProviderDecoratorChildProps {\r\n bundle: API.QueueBundle;\r\n}\r\n\r\ntype Props = BundleSourceDialogProps & ModalRouteDecoratorChildProps;\r\n\r\nclass SourceDialog extends Component<Props & DataProps> {\r\n static readonly displayName = 'SourceDialog';\r\n\r\n render() {\r\n const { bundle, queueT } = this.props;\r\n return (\r\n <RouteModal\r\n className=\"source\"\r\n title={bundle.name}\r\n subHeader={bundle.target}\r\n closable={true}\r\n icon={<FileIcon typeInfo={bundle.type} />}\r\n fullHeight={true}\r\n {...this.props}\r\n >\r\n <SourceTable bundle={bundle} queueT={queueT} />\r\n </RouteModal>\r\n );\r\n }\r\n}\r\n\r\nexport default ModalRouteDecorator<BundleSourceDialogProps>(\r\n DataProviderDecorator<Props, DataProps>(SourceDialog, {\r\n urls: {\r\n bundle: ({ params }, socket) =>\r\n socket.get(`${QueueConstants.BUNDLES_URL}/${params.bundleId}`),\r\n },\r\n }),\r\n 'sources/:bundleId',\r\n);\r\n","import * as React from 'react';\r\nimport { Column } from 'fixed-data-table-2';\r\n\r\nimport VirtualTable from '@/components/table/VirtualTable';\r\n\r\nimport PriorityMenu from '@/routes/Queue/components/PriorityMenu';\r\nimport StatusCell from '@/routes/Queue/components/StatusCell';\r\nimport QueueBundleViewStore from '@/stores/views/QueueBundleViewStore';\r\n\r\nimport BundleFileDialog from '@/routes/Queue/components/file-dialog/BundleFileDialog';\r\nimport SourceDialog from '@/routes/Queue/components/source-dialog/BundleSourceDialog';\r\n\r\nimport { ActionMenu } from '@/components/action-menu';\r\nimport Message from '@/components/semantic/Message';\r\n\r\nimport {\r\n ActionLinkCell,\r\n FileActionCell,\r\n SizeCell,\r\n SpeedCell,\r\n AbbreviatedDurationCell,\r\n DurationCell,\r\n} from '@/components/table/Cell';\r\n\r\nimport '../style.css';\r\nimport { RowWrapperCellChildProps } from '@/components/table/RowWrapperCell';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\n\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { getModuleT } from '@/utils/TranslationUtils';\r\nimport { setBundlePriority } from '@/services/api/QueueApi';\r\nimport IconConstants from '@/constants/IconConstants';\r\nimport MenuConstants from '@/constants/MenuConstants';\r\nimport {\r\n QueueActionMenu,\r\n QueueBundleActionMenu,\r\n QueueBundleActionModule,\r\n QueueBundleViewContentAction,\r\n QueueBundleViewSourcesAction,\r\n} from '@/actions/ui/queue';\r\n\r\nconst PriorityCell: React.FC<\r\n RowWrapperCellChildProps<API.QueuePriority, API.QueueBundle>\r\n> = ({ cellData, rowDataGetter, t }) => (\r\n <PriorityMenu\r\n itemPrio={cellData!}\r\n item={rowDataGetter!()}\r\n prioAction={setBundlePriority}\r\n t={t!}\r\n />\r\n);\r\n\r\nclass Queue extends React.Component<WithTranslation> {\r\n static readonly displayName = 'Queue';\r\n\r\n isActive = (cellData: any, rowData: API.QueueBundle) => {\r\n return !rowData.status.downloaded;\r\n };\r\n\r\n isDownloaded = (cellData: any, rowData: API.QueueBundle) => {\r\n return rowData.status.downloaded;\r\n };\r\n\r\n isRunning = (cellData: any, rowData: API.QueueBundle) => {\r\n return rowData.speed > 0;\r\n };\r\n\r\n emptyRowsNodeGetter = () => {\r\n const { t } = this.queueT;\r\n return (\r\n <Message\r\n title={t('queueEmpty', 'The queue is empty')}\r\n icon={IconConstants.FILE}\r\n description={t(\r\n 'queueEmptyDesc',\r\n 'New items can be queued from search or filelists',\r\n )}\r\n />\r\n );\r\n };\r\n\r\n queueT = getModuleT(this.props.t, UI.Modules.QUEUE);\r\n render() {\r\n const { translate } = this.queueT;\r\n return (\r\n <>\r\n <VirtualTable\r\n emptyRowsNodeGetter={this.emptyRowsNodeGetter}\r\n store={QueueBundleViewStore}\r\n footerData={\r\n <ActionMenu\r\n className=\"top left pointing\"\r\n caption={translate('Actions...')}\r\n actions={QueueActionMenu}\r\n header={translate('Queue actions')}\r\n triggerIcon=\"chevron up\"\r\n button={true}\r\n remoteMenuId={MenuConstants.QUEUE}\r\n />\r\n }\r\n moduleId={UI.Modules.QUEUE}\r\n >\r\n <Column\r\n name=\"Name\"\r\n width={200}\r\n flexGrow={4}\r\n columnKey=\"name\"\r\n cell={\r\n <FileActionCell\r\n actions={QueueBundleActionMenu}\r\n remoteMenuId={MenuConstants.QUEUE_BUNDLE}\r\n ids={[\r\n 'content',\r\n 'sources',\r\n 'divider',\r\n 'search',\r\n 'searchAlternates',\r\n 'divider',\r\n 'remove',\r\n 'divider',\r\n 'rescan',\r\n 'forceShare',\r\n ]}\r\n />\r\n }\r\n />\r\n <Column\r\n name=\"Size\"\r\n width={60}\r\n columnKey=\"size\"\r\n cell={<SizeCell />}\r\n flexGrow={1}\r\n />\r\n <Column\r\n name=\"Type/content\"\r\n width={150}\r\n columnKey=\"type\"\r\n hideWidth={1000}\r\n cell={\r\n <ActionLinkCell\r\n action={QueueBundleViewContentAction}\r\n moduleData={QueueBundleActionModule}\r\n />\r\n }\r\n />\r\n <Column\r\n name=\"Status\"\r\n width={120}\r\n flexGrow={3}\r\n columnKey=\"status\"\r\n cell={<StatusCell />}\r\n />\r\n <Column\r\n name=\"Sources\"\r\n width={60}\r\n columnKey=\"sources\"\r\n renderCondition={this.isActive}\r\n flexGrow={1}\r\n cell={\r\n <ActionLinkCell\r\n action={QueueBundleViewSourcesAction}\r\n moduleData={QueueBundleActionModule}\r\n />\r\n }\r\n />\r\n <Column\r\n name=\"Time left\"\r\n width={50}\r\n columnKey=\"seconds_left\"\r\n renderCondition={this.isRunning}\r\n cell={<AbbreviatedDurationCell />}\r\n />\r\n <Column\r\n name=\"Speed\"\r\n width={50}\r\n columnKey=\"speed\"\r\n cell={<SpeedCell />}\r\n renderCondition={this.isRunning}\r\n flexGrow={1}\r\n />\r\n <Column\r\n name=\"Priority\"\r\n width={80}\r\n columnKey=\"priority\"\r\n renderCondition={this.isActive}\r\n cell={<PriorityCell />}\r\n flexGrow={1}\r\n />\r\n <Column\r\n name=\"Added\"\r\n width={100}\r\n columnKey=\"time_added\"\r\n cell={<DurationCell />}\r\n hideWidth={1400}\r\n />\r\n <Column\r\n name=\"Finished\"\r\n width={100}\r\n columnKey=\"time_finished\"\r\n cell={<DurationCell />}\r\n renderCondition={this.isDownloaded}\r\n hideWidth={1200}\r\n />\r\n </VirtualTable>\r\n <SourceDialog queueT={this.queueT} />\r\n <BundleFileDialog />\r\n </>\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(Queue);\r\n","import QueueConstants from '@/constants/QueueConstants';\r\n\r\nimport IconConstants from '@/constants/IconConstants';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\n\r\nconst handleRemoveSource: UI.ActionHandler<API.User> = ({ itemData: user, socket }) => {\r\n return socket.delete(`${QueueConstants.SOURCES_URL}/${user.cid}`);\r\n};\r\n\r\nexport const QueueSourceRemoveAction = {\r\n id: 'removeSource',\r\n displayName: 'Remove user from queue',\r\n access: API.AccessEnum.QUEUE_EDIT,\r\n icon: IconConstants.REMOVE,\r\n handler: handleRemoveSource,\r\n notifications: {\r\n onSuccess: 'The user {{user.nicks}} was removed from {{result.count}} files',\r\n },\r\n};\r\n\r\nconst QueueSourceActions: UI.ActionListType<API.User> = {\r\n removeSource: QueueSourceRemoveAction,\r\n};\r\n\r\nexport const QueueSourceActionModule = {\r\n moduleId: UI.Modules.QUEUE,\r\n};\r\n\r\nexport const QueueSourceActionMenu = {\r\n moduleData: QueueSourceActionModule,\r\n actions: QueueSourceActions,\r\n};\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.status .error {\n color: red;\n}\n\n@media only screen and (min-width: 767px) {\n .source.modal td {\n max-width: 250px;\n }\n\n /* Can't be applied to dropdown cells */\n .source.modal td:not(.user) {\n overflow-x: hidden;\n }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/routes/Queue/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,UAAU;AACZ;;AAEA;EACE;IACE,gBAAgB;EAClB;;EAEA,uCAAuC;EACvC;IACE,kBAAkB;EACpB;AACF\",\"sourcesContent\":[\".status .error {\\n color: red;\\n}\\n\\n@media only screen and (min-width: 767px) {\\n .source.modal td {\\n max-width: 250px;\\n }\\n\\n /* Can't be applied to dropdown cells */\\n .source.modal td:not(.user) {\\n overflow-x: hidden;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import QueueConstants from '@/constants/QueueConstants';\r\n\r\nimport IconConstants from '@/constants/IconConstants';\r\n\r\nimport * as API from '@/types/api';\r\nimport * as UI from '@/types/ui';\r\nimport { searchForeground } from '@/utils/SearchUtils';\r\n\r\ntype Filter = UI.ActionFilter<API.QueueFile>;\r\nconst itemNotFinished: Filter = ({ itemData: file }) => file.time_finished === 0;\r\n\r\ntype Handler = UI.ActionHandler<API.QueueFile>;\r\nconst handleSearch: Handler = ({ itemData: file, location, navigate }) => {\r\n return searchForeground(file, location, navigate);\r\n};\r\n\r\nconst handleRemoveFile: Handler = (\r\n { itemData: file, socket },\r\n removeFinished: boolean,\r\n) => {\r\n return socket.post(`${QueueConstants.FILES_URL}/${file.id}/remove`, {\r\n remove_finished: removeFinished,\r\n });\r\n};\r\n\r\nconst handleSearchFileAlternates: Handler = ({ itemData: file, socket }) => {\r\n return socket.post(`${QueueConstants.FILES_URL}/${file.id}/search`);\r\n};\r\n\r\nexport const QueueFileSearchAction = {\r\n id: 'search',\r\n displayName: 'Search (foreground)',\r\n access: API.AccessEnum.SEARCH,\r\n icon: IconConstants.SEARCH,\r\n handler: handleSearch,\r\n};\r\n\r\nexport const QueueFileSearchAlternatesAction = {\r\n id: 'searchAlternates',\r\n displayName: 'Search for alternates',\r\n access: API.AccessEnum.QUEUE_EDIT,\r\n icon: IconConstants.SEARCH_ALTERNATES,\r\n filter: itemNotFinished,\r\n handler: handleSearchFileAlternates,\r\n};\r\n\r\nexport const QueueFileRemoveAction = {\r\n id: 'remove',\r\n displayName: 'Remove',\r\n access: API.AccessEnum.QUEUE_EDIT,\r\n icon: IconConstants.REMOVE,\r\n confirmation: {\r\n content: 'Are you sure that you want to remove the file {{item.name}}?',\r\n approveCaption: 'Remove file',\r\n rejectCaption: `Don't remove`,\r\n checkboxCaption: 'Remove on disk',\r\n },\r\n handler: handleRemoveFile,\r\n notifications: {\r\n onSuccess: 'File {{item.name}} was removed from queue',\r\n },\r\n};\r\n\r\nconst QueueFileActions: UI.ActionListType<API.QueueFile> = {\r\n search: QueueFileSearchAction,\r\n searchAlternates: QueueFileSearchAlternatesAction,\r\n remove: QueueFileRemoveAction,\r\n};\r\n\r\nexport const QueueFileActionModule = {\r\n moduleId: UI.Modules.QUEUE,\r\n subId: 'file',\r\n};\r\n\r\nexport const QueueFileActionMenu = {\r\n moduleData: QueueFileActionModule,\r\n actions: QueueFileActions,\r\n};\r\n"],"names":["className","percent","caption","indeterminate","undefined","style","transitionDuration","width","minWidth","setBundlePriorities","socket","prio","post","QueueConstants","BUNDLES_URL","priority","QueueRemoveCompletedAction","id","displayName","access","QUEUE_EDIT","icon","IconConstants","REMOVE","handler","notifications","onSuccess","QueuePauseAction","PAUSE","PAUSED_FORCED","QueueResumeAction","PLAY","DEFAULT","QueueActions","removeCompleted","divider","pause","resume","QueueActionMenu","moduleData","moduleId","QUEUE","actions","bundleValidationFailed","itemData","bundle","status","S","COMPLETION_VALIDATION_ERROR","itemNotFinished","time_finished","shareBundle","skipValidation","skip_validation","QueueBundleViewSourcesAction","USER","filter","data","sources","total","navigate","QueueBundleViewContentAction","FILE","type","QueueBundleSearchAction","SEARCH","location","QueueBundleSearchAlternatesAction","SEARCH_ALTERNATES","QueueBundleRemoveAction","confirmation","content","approveCaption","rejectCaption","checkboxCaption","removeFinished","remove_finished","QueueBundleRescanAction","REFRESH_COLORED","QueueBundleForceShareAction","ERROR","QueueBundleActions","search","searchAlternates","divider2","remove","divider3","rescan","forceShare","QueueBundleActionModule","subId","QueueBundleActionMenu","BundleSourceActions","source","entity","delete","user","cid","QueueBundleSourceActionMenu","PriorityEnum","str","PAUSED","LOWEST","LOW","NORMAL","HIGH","HIGHEST","memo","item","itemPrio","prioAction","t","session","setPriority","priorityId","auto","toLocaleLowerCase","TableDropdown","onClose","children","Object","keys","map","Number","prioKey","currentPrio","toString","active","onClick","getPriorityListItem","push","EmptyDropdown","prevProps","nextProps","getStatusClass","cellData","rowData","completed","statusId","grey","QUEUED","speed","blue","rowDataGetter","failed","Progress","downloaded_bytes","size","_viewName","BUNDLE_VIEW_ID","_apiUrl","MODULE_URL","mixins","ViewStoreMixin","FILE_VIEW_ID","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","PriorityCell","BundleFileTable","isActive","downloaded","isRunning","render","VirtualTable","store","QueueFileViewStore","sourceFilter","pattern","this","props","method","EXACT","property","textFilterProps","autoFocus","name","flexGrow","columnKey","cell","remoteMenuId","MenuConstants","QUEUE_FILE","renderCondition","BundleFileDialog","Component","RouteModal","title","subHeader","target","closable","FileIcon","typeInfo","fullHeight","ModalRouteDecorator","DataProviderDecorator","urls","params","get","bundleId","Source","formatSize","formatSpeed","userIcon","ids","contextElement","HINTED_USER","hub_names","last_speed","files","userSort","a","b","nicks","localeCompare","queueT","translate","slice","sort","plainT","onSocketConnected","addSocketListener","refetchData","BUNDLE_SOURCES","SourceDialog","Queue","isDownloaded","emptyRowsNodeGetter","Message","description","QueueBundleViewStore","footerData","header","triggerIcon","button","QUEUE_BUNDLE","hideWidth","action","QueueSourceRemoveAction","SOURCES_URL","___CSS_LOADER_EXPORT___","module","QueueFileSearchAction","file","QueueFileSearchAlternatesAction","FILES_URL","QueueFileRemoveAction","QueueFileActions","QueueFileActionMenu"],"sourceRoot":""}
|
|
Binary file
|
|
Binary file
|