airdcpp-webui 2.11.2-beta.2 → 2.11.3-beta.2
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/LICENSE +21 -0
- package/dist/index.html +2 -2
- package/dist/js/285.14157e0f1f25fb9aaecd.chunk.js +2 -0
- package/dist/js/285.14157e0f1f25fb9aaecd.chunk.js.gz +0 -0
- package/dist/js/285.14157e0f1f25fb9aaecd.chunk.js.map +1 -0
- package/dist/js/334.dba054251a3e485f3ea9.chunk.js +2 -0
- package/dist/js/334.dba054251a3e485f3ea9.chunk.js.gz +0 -0
- package/dist/js/334.dba054251a3e485f3ea9.chunk.js.map +1 -0
- package/dist/js/424.44413ba27808d4072f7f.chunk.js +2 -0
- package/dist/js/424.44413ba27808d4072f7f.chunk.js.gz +0 -0
- package/dist/js/424.44413ba27808d4072f7f.chunk.js.map +1 -0
- package/dist/js/{668.ca79db34c1e147bd25d0.chunk.js → 668.2579506f7fa8bed8a452.chunk.js} +2 -2
- package/dist/js/668.2579506f7fa8bed8a452.chunk.js.gz +0 -0
- package/dist/js/668.2579506f7fa8bed8a452.chunk.js.map +1 -0
- package/dist/js/69.7b5fa94bd7c4e6f23ed6.chunk.js +2 -0
- package/dist/js/69.7b5fa94bd7c4e6f23ed6.chunk.js.gz +0 -0
- package/dist/js/69.7b5fa94bd7c4e6f23ed6.chunk.js.map +1 -0
- package/dist/js/{702.dd4be667774bce5de14f.chunk.js → 702.d36d38b2be52ab51c0a9.chunk.js} +1 -1
- package/dist/js/702.d36d38b2be52ab51c0a9.chunk.js.gz +0 -0
- package/dist/js/{702.dd4be667774bce5de14f.chunk.js.map → 702.d36d38b2be52ab51c0a9.chunk.js.map} +1 -1
- package/dist/js/760.83634ca054e04ff6c7e2.chunk.js +3 -0
- package/dist/js/{760.5448a03d335f92bedb53.chunk.js.LICENSE.txt → 760.83634ca054e04ff6c7e2.chunk.js.LICENSE.txt} +0 -0
- package/dist/js/760.83634ca054e04ff6c7e2.chunk.js.gz +0 -0
- package/dist/js/760.83634ca054e04ff6c7e2.chunk.js.map +1 -0
- package/dist/js/favorite-hubs.f8dc4d8768878d9cab6a.chunk.js +2 -0
- package/dist/js/favorite-hubs.f8dc4d8768878d9cab6a.chunk.js.gz +0 -0
- package/dist/js/favorite-hubs.f8dc4d8768878d9cab6a.chunk.js.map +1 -0
- package/dist/js/filelists.c550cdaa211edb6f733f.chunk.js +2 -0
- package/dist/js/filelists.c550cdaa211edb6f733f.chunk.js.gz +0 -0
- package/dist/js/filelists.c550cdaa211edb6f733f.chunk.js.map +1 -0
- package/dist/js/files.51c49d6a2825cbc64879.chunk.js +2 -0
- package/dist/js/files.51c49d6a2825cbc64879.chunk.js.gz +0 -0
- package/dist/js/files.51c49d6a2825cbc64879.chunk.js.map +1 -0
- package/dist/js/home.895154334c98dbe0f183.chunk.js +3 -0
- package/dist/js/{home.727a64f6586ed95a66bb.chunk.js.LICENSE.txt → home.895154334c98dbe0f183.chunk.js.LICENSE.txt} +0 -0
- package/dist/js/home.895154334c98dbe0f183.chunk.js.gz +0 -0
- package/dist/js/home.895154334c98dbe0f183.chunk.js.map +1 -0
- package/dist/js/hubs.42526e43270139eb1849.chunk.js +2 -0
- package/dist/js/hubs.42526e43270139eb1849.chunk.js.gz +0 -0
- package/dist/js/hubs.42526e43270139eb1849.chunk.js.map +1 -0
- package/dist/js/locales/{ca.78b3bea781886ff158b4.chunk.js → ca.ed09d3a3d4bcca929ba1.chunk.js} +0 -0
- package/dist/js/locales/{ca.78b3bea781886ff158b4.chunk.js.gz → ca.ed09d3a3d4bcca929ba1.chunk.js.gz} +0 -0
- package/dist/js/locales/{da.6f097ed425797ab32cb3.chunk.js → da.6f60a77e9ef082dd3bf4.chunk.js} +0 -0
- package/dist/js/locales/{da.6f097ed425797ab32cb3.chunk.js.gz → da.6f60a77e9ef082dd3bf4.chunk.js.gz} +0 -0
- package/dist/js/locales/{de.fce9df327aeebd67e9a1.chunk.js → de.3b7d3665460384259e82.chunk.js} +0 -0
- package/dist/js/locales/{de.fce9df327aeebd67e9a1.chunk.js.gz → de.3b7d3665460384259e82.chunk.js.gz} +0 -0
- package/dist/js/locales/{el.c325cc8141993f493ad0.chunk.js → el.598573d2a5ed18804fe0.chunk.js} +0 -0
- package/dist/js/locales/{el.c325cc8141993f493ad0.chunk.js.gz → el.598573d2a5ed18804fe0.chunk.js.gz} +0 -0
- package/dist/js/locales/{en.ebb20d0566fd8e7cb3b8.chunk.js → en.f0fe75dca201449e5e47.chunk.js} +0 -0
- package/dist/js/locales/{en.ebb20d0566fd8e7cb3b8.chunk.js.gz → en.f0fe75dca201449e5e47.chunk.js.gz} +0 -0
- package/dist/js/locales/es.645f0fc5dd1cb8c8c5e6.chunk.js +1 -0
- package/dist/js/locales/es.645f0fc5dd1cb8c8c5e6.chunk.js.gz +0 -0
- package/dist/js/locales/{eu.13252b0f7f7534b39e34.chunk.js → eu.7734fc077f26418d6b32.chunk.js} +0 -0
- package/dist/js/locales/{eu.13252b0f7f7534b39e34.chunk.js.gz → eu.7734fc077f26418d6b32.chunk.js.gz} +0 -0
- package/dist/js/locales/{fi.1641c49d1e7154261df8.chunk.js → fi.d1f8a5f4048236243b0f.chunk.js} +0 -0
- package/dist/js/locales/{fi.1641c49d1e7154261df8.chunk.js.gz → fi.d1f8a5f4048236243b0f.chunk.js.gz} +0 -0
- package/dist/js/locales/fr.f46ce4fb57ed20dea8b5.chunk.js +1 -0
- package/dist/js/locales/fr.f46ce4fb57ed20dea8b5.chunk.js.gz +0 -0
- package/dist/js/locales/{hu.5aa0843ba5ebefad56b2.chunk.js → hu.d0d2c38a03a3b38c2bc5.chunk.js} +0 -0
- package/dist/js/locales/{hu.5aa0843ba5ebefad56b2.chunk.js.gz → hu.d0d2c38a03a3b38c2bc5.chunk.js.gz} +0 -0
- package/dist/js/locales/{it.63acad3d71352720e323.chunk.js → it.0c911d75c50ea83190ad.chunk.js} +0 -0
- package/dist/js/locales/{it.63acad3d71352720e323.chunk.js.gz → it.0c911d75c50ea83190ad.chunk.js.gz} +0 -0
- package/dist/js/locales/{nl.a23ef3d4aff66ca3b215.chunk.js → nl.36d288d75b3d3cbabf11.chunk.js} +0 -0
- package/dist/js/locales/{nl.a23ef3d4aff66ca3b215.chunk.js.gz → nl.36d288d75b3d3cbabf11.chunk.js.gz} +0 -0
- package/dist/js/locales/{no.da135b9c1614a4616b47.chunk.js → no.8f2f465d5f785650175d.chunk.js} +0 -0
- package/dist/js/locales/{no.da135b9c1614a4616b47.chunk.js.gz → no.8f2f465d5f785650175d.chunk.js.gz} +0 -0
- package/dist/js/locales/{pl.36e1b3baf978ef6c184a.chunk.js → pl.06e51d7d7b09ba14714d.chunk.js} +0 -0
- package/dist/js/locales/{pl.36e1b3baf978ef6c184a.chunk.js.gz → pl.06e51d7d7b09ba14714d.chunk.js.gz} +0 -0
- package/dist/js/locales/{pt-br.57dff49b32efd65d6825.chunk.js → pt-br.9d19d92899e8c0917c66.chunk.js} +0 -0
- package/dist/js/locales/{pt-br.57dff49b32efd65d6825.chunk.js.gz → pt-br.9d19d92899e8c0917c66.chunk.js.gz} +0 -0
- package/dist/js/locales/{pt.ab93507031a40179f7c7.chunk.js → pt.4390db3955db29b0e7dd.chunk.js} +0 -0
- package/dist/js/locales/{pt.ab93507031a40179f7c7.chunk.js.gz → pt.4390db3955db29b0e7dd.chunk.js.gz} +0 -0
- package/dist/js/locales/{ro.551cd0a17581b2159112.chunk.js → ro.705fcd327263fcf419bf.chunk.js} +0 -0
- package/dist/js/locales/{ro.551cd0a17581b2159112.chunk.js.gz → ro.705fcd327263fcf419bf.chunk.js.gz} +0 -0
- package/dist/js/locales/{ru.cbf29ad6736a21d83bcb.chunk.js → ru.8ab7e1c0d9eee7aa7afb.chunk.js} +0 -0
- package/dist/js/locales/{ru.cbf29ad6736a21d83bcb.chunk.js.gz → ru.8ab7e1c0d9eee7aa7afb.chunk.js.gz} +0 -0
- package/dist/js/locales/{sv.d33f4b4be982814b6343.chunk.js → sv.be546e605910932db11f.chunk.js} +0 -0
- package/dist/js/locales/{sv.d33f4b4be982814b6343.chunk.js.gz → sv.be546e605910932db11f.chunk.js.gz} +0 -0
- package/dist/js/locales/{tr.88e97bf59131df380c5a.chunk.js → tr.25a0d0f19e007e2febc9.chunk.js} +0 -0
- package/dist/js/locales/{tr.88e97bf59131df380c5a.chunk.js.gz → tr.25a0d0f19e007e2febc9.chunk.js.gz} +0 -0
- package/dist/js/locales/uk_UA.61073eae675491639925.chunk.js +1 -0
- package/dist/js/locales/uk_UA.61073eae675491639925.chunk.js.gz +0 -0
- package/dist/js/locales/{zh_CN.a9edec208d0cfe49d94b.chunk.js → zh_CN.4b75674e4815a965ccea.chunk.js} +0 -0
- package/dist/js/locales/{zh_CN.a9edec208d0cfe49d94b.chunk.js.gz → zh_CN.4b75674e4815a965ccea.chunk.js.gz} +0 -0
- package/dist/js/main.51b1144fdbc0a681eb6c.entry.js +3 -0
- package/dist/js/{main.c01c26460331633a96e2.entry.js.LICENSE.txt → main.51b1144fdbc0a681eb6c.entry.js.LICENSE.txt} +0 -0
- package/dist/js/main.51b1144fdbc0a681eb6c.entry.js.gz +0 -0
- package/dist/js/main.51b1144fdbc0a681eb6c.entry.js.map +1 -0
- package/dist/js/messages.6f74e67a600c48f367ad.chunk.js +2 -0
- package/dist/js/messages.6f74e67a600c48f367ad.chunk.js.gz +0 -0
- package/dist/js/messages.6f74e67a600c48f367ad.chunk.js.map +1 -0
- package/dist/js/queue.82a405ba14b60974cb0f.chunk.js +2 -0
- package/dist/js/queue.82a405ba14b60974cb0f.chunk.js.gz +0 -0
- package/dist/js/queue.82a405ba14b60974cb0f.chunk.js.map +1 -0
- package/dist/js/search.af59b1b20b4d7194457b.chunk.js +2 -0
- package/dist/js/search.af59b1b20b4d7194457b.chunk.js.gz +0 -0
- package/dist/js/search.af59b1b20b4d7194457b.chunk.js.map +1 -0
- package/dist/js/settings.b543eade40a723e95c77.chunk.js +2 -0
- package/dist/js/settings.b543eade40a723e95c77.chunk.js.gz +0 -0
- package/dist/js/settings.b543eade40a723e95c77.chunk.js.map +1 -0
- package/dist/js/share.f06abf75f7f2a6afc1b3.chunk.js +2 -0
- package/dist/js/share.f06abf75f7f2a6afc1b3.chunk.js.gz +0 -0
- package/dist/js/share.f06abf75f7f2a6afc1b3.chunk.js.map +1 -0
- package/dist/js/{system-log.45dba574bcb91efd176c.chunk.js → system-log.b9763d1c0f5cf5966f21.chunk.js} +2 -2
- package/dist/js/system-log.b9763d1c0f5cf5966f21.chunk.js.gz +0 -0
- package/dist/js/system-log.b9763d1c0f5cf5966f21.chunk.js.map +1 -0
- package/dist/js/transfers.22e0a37c676d2a0996a8.chunk.js +2 -0
- package/dist/js/transfers.22e0a37c676d2a0996a8.chunk.js.gz +0 -0
- package/dist/js/transfers.22e0a37c676d2a0996a8.chunk.js.map +1 -0
- package/dist/sw.js +1 -1
- package/dist/sw.js.gz +0 -0
- package/package.json +65 -64
- package/dist/js/285.744e520b1611ce9c52a5.chunk.js +0 -2
- package/dist/js/285.744e520b1611ce9c52a5.chunk.js.gz +0 -0
- package/dist/js/285.744e520b1611ce9c52a5.chunk.js.map +0 -1
- package/dist/js/334.27c2467ccb3a5cb23acf.chunk.js +0 -2
- package/dist/js/334.27c2467ccb3a5cb23acf.chunk.js.gz +0 -0
- package/dist/js/334.27c2467ccb3a5cb23acf.chunk.js.map +0 -1
- package/dist/js/424.83f0cedf9d07b9d54fcb.chunk.js +0 -2
- package/dist/js/424.83f0cedf9d07b9d54fcb.chunk.js.gz +0 -0
- package/dist/js/424.83f0cedf9d07b9d54fcb.chunk.js.map +0 -1
- package/dist/js/668.ca79db34c1e147bd25d0.chunk.js.gz +0 -0
- package/dist/js/668.ca79db34c1e147bd25d0.chunk.js.map +0 -1
- package/dist/js/69.779bd39a66fa5ea5248b.chunk.js +0 -2
- package/dist/js/69.779bd39a66fa5ea5248b.chunk.js.gz +0 -0
- package/dist/js/69.779bd39a66fa5ea5248b.chunk.js.map +0 -1
- package/dist/js/702.dd4be667774bce5de14f.chunk.js.gz +0 -0
- package/dist/js/760.5448a03d335f92bedb53.chunk.js +0 -3
- package/dist/js/760.5448a03d335f92bedb53.chunk.js.gz +0 -0
- package/dist/js/760.5448a03d335f92bedb53.chunk.js.map +0 -1
- package/dist/js/favorite-hubs.82de31826d6a7541ec24.chunk.js +0 -2
- package/dist/js/favorite-hubs.82de31826d6a7541ec24.chunk.js.gz +0 -0
- package/dist/js/favorite-hubs.82de31826d6a7541ec24.chunk.js.map +0 -1
- package/dist/js/filelists.7a9e00969dcca088a27c.chunk.js +0 -2
- package/dist/js/filelists.7a9e00969dcca088a27c.chunk.js.gz +0 -0
- package/dist/js/filelists.7a9e00969dcca088a27c.chunk.js.map +0 -1
- package/dist/js/files.bb297a4f890216386a57.chunk.js +0 -2
- package/dist/js/files.bb297a4f890216386a57.chunk.js.gz +0 -0
- package/dist/js/files.bb297a4f890216386a57.chunk.js.map +0 -1
- package/dist/js/home.727a64f6586ed95a66bb.chunk.js +0 -3
- package/dist/js/home.727a64f6586ed95a66bb.chunk.js.gz +0 -0
- package/dist/js/home.727a64f6586ed95a66bb.chunk.js.map +0 -1
- package/dist/js/hubs.8b51f0869cdfed35644e.chunk.js +0 -2
- package/dist/js/hubs.8b51f0869cdfed35644e.chunk.js.gz +0 -0
- package/dist/js/hubs.8b51f0869cdfed35644e.chunk.js.map +0 -1
- package/dist/js/locales/es.784f05fd27d172e4ff10.chunk.js +0 -1
- package/dist/js/locales/es.784f05fd27d172e4ff10.chunk.js.gz +0 -0
- package/dist/js/locales/fr.ede93bff1e1571d56404.chunk.js +0 -1
- package/dist/js/locales/fr.ede93bff1e1571d56404.chunk.js.gz +0 -0
- package/dist/js/locales/uk_UA.2b396266bb670b4b7a59.chunk.js +0 -1
- package/dist/js/locales/uk_UA.2b396266bb670b4b7a59.chunk.js.gz +0 -0
- package/dist/js/main.c01c26460331633a96e2.entry.js +0 -3
- package/dist/js/main.c01c26460331633a96e2.entry.js.gz +0 -0
- package/dist/js/main.c01c26460331633a96e2.entry.js.map +0 -1
- package/dist/js/messages.cfb23ba34e3a288ca289.chunk.js +0 -2
- package/dist/js/messages.cfb23ba34e3a288ca289.chunk.js.gz +0 -0
- package/dist/js/messages.cfb23ba34e3a288ca289.chunk.js.map +0 -1
- package/dist/js/queue.0e532f2a56e464d1626b.chunk.js +0 -2
- package/dist/js/queue.0e532f2a56e464d1626b.chunk.js.gz +0 -0
- package/dist/js/queue.0e532f2a56e464d1626b.chunk.js.map +0 -1
- package/dist/js/search.ef2d64870dc65f549d8c.chunk.js +0 -2
- package/dist/js/search.ef2d64870dc65f549d8c.chunk.js.gz +0 -0
- package/dist/js/search.ef2d64870dc65f549d8c.chunk.js.map +0 -1
- package/dist/js/settings.b3fd7918efe3c8bfae88.chunk.js +0 -2
- package/dist/js/settings.b3fd7918efe3c8bfae88.chunk.js.gz +0 -0
- package/dist/js/settings.b3fd7918efe3c8bfae88.chunk.js.map +0 -1
- package/dist/js/share.c0cdc71a867839f5c8b3.chunk.js +0 -2
- package/dist/js/share.c0cdc71a867839f5c8b3.chunk.js.gz +0 -0
- package/dist/js/share.c0cdc71a867839f5c8b3.chunk.js.map +0 -1
- package/dist/js/system-log.45dba574bcb91efd176c.chunk.js.gz +0 -0
- package/dist/js/system-log.45dba574bcb91efd176c.chunk.js.map +0 -1
- package/dist/js/transfers.4ed15c9e5e62fe968fbc.chunk.js +0 -2
- package/dist/js/transfers.4ed15c9e5e62fe968fbc.chunk.js.gz +0 -0
- package/dist/js/transfers.4ed15c9e5e62fe968fbc.chunk.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[364],{80803:(e,s,t)=>{t.d(s,{Z:()=>a});var n=t(94015),o=t.n(n),i=t(23645),r=t.n(i)()(o());r.push([e.id,".hub-action-prompt {\r\n flex-direction: column;\r\n align-items: flex-start !important;\r\n}\r\n\r\n.hub-action-prompt .header {\r\n margin: 0 0 1rem !important;\r\n}\r\n\r\n.hub-action-prompt .password.prompt .help {\r\n margin-top: 10px;\r\n}\r\n\r\n.hub-action-prompt .redirect.prompt {\r\n max-width: 100%;\r\n overflow: hidden;\r\n}\r\n\r\n.hub.session .virtual-table,\r\n.hub.session .offline-message,\r\n.hub.session .loader-wrapper {\r\n flex: 1;\r\n margin-top: 5px;\r\n}\r\n\r\n.hub.session .cell-wrapper.tag,\r\n.hub.session .cell-wrapper.nick,\r\n.hub.session .cell-wrapper.description,\r\n.hub.session .cell-wrapper.share_size {\r\n overflow: hidden;\r\n white-space: nowrap;\r\n}\r\n\r\n.hub.session .cell-wrapper.nick.op {\r\n color: steelblue;\r\n}\r\n.hub.session .session-footer .actions-wrapper > a,\r\n.hub.session .session-footer .actions-wrapper > div {\r\n /* Don't cut the shadow */\r\n padding-left: 1px;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.hub.session .session-footer .userlist-button label {\r\n color: grey;\r\n font-size: small;\r\n}\r\n\r\n.hub.session .session-footer .actions-wrapper .dropdown {\r\n margin-left: 10px;\r\n}","",{version:3,sources:["webpack://./src/routes/Sidebar/routes/Hubs/style.css"],names:[],mappings:"AAAA;EACE,sBAAsB;EACtB,kCAAkC;AACpC;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,eAAe;EACf,gBAAgB;AAClB;;AAEA;;;EAGE,OAAO;EACP,eAAe;AACjB;;AAEA;;;;EAIE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;AACA;;EAEE,yBAAyB;EACzB,iBAAiB;EACjB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,iBAAiB;AACnB",sourcesContent:[".hub-action-prompt {\r\n flex-direction: column;\r\n align-items: flex-start !important;\r\n}\r\n\r\n.hub-action-prompt .header {\r\n margin: 0 0 1rem !important;\r\n}\r\n\r\n.hub-action-prompt .password.prompt .help {\r\n margin-top: 10px;\r\n}\r\n\r\n.hub-action-prompt .redirect.prompt {\r\n max-width: 100%;\r\n overflow: hidden;\r\n}\r\n\r\n.hub.session .virtual-table,\r\n.hub.session .offline-message,\r\n.hub.session .loader-wrapper {\r\n flex: 1;\r\n margin-top: 5px;\r\n}\r\n\r\n.hub.session .cell-wrapper.tag,\r\n.hub.session .cell-wrapper.nick,\r\n.hub.session .cell-wrapper.description,\r\n.hub.session .cell-wrapper.share_size {\r\n overflow: hidden;\r\n white-space: nowrap;\r\n}\r\n\r\n.hub.session .cell-wrapper.nick.op {\r\n color: steelblue;\r\n}\r\n.hub.session .session-footer .actions-wrapper > a,\r\n.hub.session .session-footer .actions-wrapper > div {\r\n /* Don't cut the shadow */\r\n padding-left: 1px;\r\n padding-bottom: 1px;\r\n}\r\n\r\n.hub.session .session-footer .userlist-button label {\r\n color: grey;\r\n font-size: small;\r\n}\r\n\r\n.hub.session .session-footer .actions-wrapper .dropdown {\r\n margin-left: 10px;\r\n}"],sourceRoot:""}]);const a=r},48005:(e,s,t)=>{t.d(s,{Z:()=>r});var n=t(85893),o=(t(67294),t(35936)),i=t(55019);const r=e=>{var{hub:s}=e,t=function(e,s){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&s.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)s.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(t[n[o]]=e[n[o]])}return t}(e,["hub"]);return(0,n.jsx)(o.Z,Object.assign({},t,{icon:(0,i.iU)(s.connect_state.id)+" sitemap"}),void 0)}},6659:(e,s,t)=>{t.r(s),t.d(s,{default:()=>De});var n=t(85893),o=t(67294),i=t(64935),r=t(10907),a=t(93281),c=t(21222),l=t(518),d=t(50566),p=t(38982),h=t(48117),u=t(76249),m=t(32347);const S={reconnect:{displayName:"Reconnect",access:u.PS.HUBS_EDIT,icon:h.Z.REFRESH_COLORED,handler:({data:e})=>l.Z.post(`${c.Z.SESSIONS_URL}/${e.id}/reconnect`)},favorite:{access:u.PS.HUBS_EDIT,displayName:"Add to favorites",icon:h.Z.FAVORITE,filter:e=>!e.favorite_hub,handler:({data:e})=>l.Z.post(`${c.Z.SESSIONS_URL}/${e.id}/favorite`),notifications:{onSuccess:"The hub {{item.identity.name}} was added in favorites"}},toggleChatNotify:{access:u.PS.HUBS_EDIT,displayName:"Use chat notification",handler:({data:e})=>l.Z.patch(`${c.Z.SESSIONS_URL}/${e.id}`,{use_main_chat_notify:!e.settings.use_main_chat_notify}),checked:e=>e.settings.use_main_chat_notify},toggleShowJoins:{access:u.PS.HUBS_EDIT,displayName:"Show joins/parts",handler:({data:e})=>l.Z.patch(`${c.Z.SESSIONS_URL}/${e.id}`,{show_joins:!e.settings.show_joins}),checked:e=>e.settings.show_joins}},A=(0,p.Z)((0,d.Z)(S,c.Z.SESSIONS_URL,u.PS.HUBS_EDIT),c.Z.SESSIONS_URL,u.PS.HUBS_EDIT),v={moduleId:m.jv.HUBS,actions:A};var b=t(16119),g=t(55019),w=t(10293),x=t.n(w),E=t(41143),j=t.n(E),f=t(14936),_=t(94897),C=t(46614);const Z=x().createStore({scroll:(0,C.$)(),onSocketConnected(e){j()(!this.hasMessages(),"No existing hub messages should exist on socket connect"),j()(!this.hasInitializedSessions(),"No initialized hub sessions should exist on socket connect"),e(c.Z.MODULE_URL,c.Z.HUB_MESSAGE,this._onChatMessage),e(c.Z.MODULE_URL,c.Z.HUB_STATUS_MESSAGE,this._onStatusMessage),e(c.Z.MODULE_URL,c.Z.SESSION_UPDATED,this._onSessionUpdated),e(c.Z.MODULE_URL,c.Z.SESSION_REMOVED,this._onSessionRemoved)}}),y=(0,f.Z)(Z,b.Z,_.Z.HUBS_VIEW);var O=t(10606),U=t(70516),N=t(40479),I=t(45697),B=t.n(I),T=t(93836);const R=x().createStore({_viewName:"hub_user_view",_apiUrl:c.Z.SESSIONS_URL,_sessionStore:a.Z,mixins:[(0,T.Z)("nick")]});var L=t(35108),D=t(78230),H=t(68126),G=t(47021),P=t(27695),k=t(54883),$=t(4333);const F=({cellData:e,rowDataGetter:s,session:t})=>(0,n.jsx)(G.cG,{text:e,user:s(),userIcon:!0,remoteMenuId:$.Z.HUB_USER,entityId:t.id},void 0);class M extends o.Component{constructor(){super(...arguments),this.rowClassNameGetter=e=>e.flags.join(" "),this.emptyRowsNodeGetter=()=>{const{session:e,sessionT:s}=this.props,t=e.connect_state.id;if(t===u.XF.DISCONNECTED||t===u.XF.REDIRECT)return(0,n.jsx)("div",Object.assign({className:"offline-message"},{children:(0,n.jsx)(P.Z,{className:"offline",title:s.translate("Not connected to the hub"),icon:h.Z.OFFLINE},void 0)}),void 0);const o=s.translate(t!==u.XF.CONNECTED?"Connecting":"Loading userlist");return(0,n.jsx)("div",Object.assign({className:"loader-wrapper"},{children:(0,n.jsx)(k.Z,{text:o},void 0)}),void 0)}}render(){const{session:e}=this.props;return(0,n.jsxs)(D.Z,Object.assign({store:R,entityId:e.id,sessionStore:a.Z,rowClassNameGetter:this.rowClassNameGetter,emptyRowsNodeGetter:this.emptyRowsNodeGetter,moduleId:m.jv.HUBS},{children:[(0,n.jsx)(L.Column,{name:"Nick",width:170,columnKey:"nick",flexGrow:8,cell:(0,n.jsx)(F,{session:e},void 0)},void 0),(0,n.jsx)(L.Column,{name:"Share size",width:85,columnKey:"share_size",cell:(0,n.jsx)(H.Eh,{},void 0),flexGrow:1},void 0),(0,n.jsx)(L.Column,{name:"Description",width:100,columnKey:"description",flexGrow:1},void 0),(0,n.jsx)(L.Column,{name:"Tag",width:150,columnKey:"tag",flexGrow:2},void 0),(0,n.jsx)(L.Column,{name:"Upload speed",width:80,columnKey:"upload_speed",cell:(0,n.jsx)(H.$A,{},void 0),flexGrow:2},void 0),(0,n.jsx)(L.Column,{name:"Download speed",width:80,columnKey:"download_speed",cell:(0,n.jsx)(H.$A,{},void 0),flexGrow:2},void 0),(0,n.jsx)(L.Column,{name:"IP (v4)",width:120,columnKey:"ip4",flexGrow:3,cell:(0,n.jsx)(H.fI,{},void 0)},void 0),(0,n.jsx)(L.Column,{name:"IP (v6)",width:120,columnKey:"ip6",flexGrow:3,cell:(0,n.jsx)(H.fI,{},void 0)},void 0),(0,n.jsx)(L.Column,{name:"Files",width:70,columnKey:"file_count",flexGrow:3},void 0)]}),void 0)}}M.propTypes={session:B().object};const K=M;var z=t(2445),V=t(88998),X=t(68325),J=t(11485),W=t(54080);const q=(0,J.i)((e=>{const[s,t]=(0,o.useState)({share_size:0,user_count:0});(0,o.useEffect)((()=>{l.Z.get(`${c.Z.SESSIONS_URL}/${e.session.id}/counts`).then(t).catch((e=>console.error("Failed to fetch hub counts",e.message)));const s=c.Z.SESSIONS_URL;return e.addSocketListener(s,c.Z.SESSION_COUNTS_UPDATED,(e=>t(e)),e.session.id),()=>e.removeSocketListeners(e)}),[e.session]);const i=(0,o.useContext)(W.c),{userlistToggle:r,session:a,sessionT:d}=e,{user_count:p,share_size:h}=s,u=(0,z.BU)(p>0?h/p:0,d.plainT);return(0,n.jsxs)(V.C,{children:[(0,n.jsx)(V.o,{text:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(X.Z,{encryption:a.encryption},void 0),d.t("xUsers",{defaultValue:"{{count}} user",defaultValue_plural:"{{count}} users",count:p,replace:{count:p}})]},void 0)},void 0),!(0,O.wd)(i)&&(0,n.jsx)(V.o,{text:d.t("sharePerUser",{defaultValue:"{{total}} ({{average}}/user)",replace:{total:(0,z.BU)(h,d.plainT),average:u}})},void 0),(0,n.jsx)("div",Object.assign({className:"actions-wrapper"},{children:(0,n.jsxs)("div",Object.assign({className:"actions"},{children:[r,(0,n.jsx)(G.PC,{className:"top left pointing",actions:v,ids:["toggleChatNotify","toggleShowJoins"],header:d.translate("Notification settings"),itemData:a,triggerIcon:a.settings.use_main_chat_notify||a.settings.show_joins?"yellow bell":"bell"},void 0)]}),void 0)}),void 0)]},void 0)}),(({session:e})=>!!a.Z.getSession(e.id)));var Q=t(78217),Y=t(84807),ee=t(66883),se=t(35936),te=t(89116),ne=t(94076);(0,ne.yE)(c.Z.SESSIONS_URL),(0,ne.c8)(c.Z.SESSIONS_URL),(0,ne._b)(c.Z.SESSIONS_URL),(0,ne.pJ)(c.Z.SESSIONS_URL);var oe=t(89519);const ie=({icon:e,title:s,content:t})=>ee.Z.hasAccess(u.PS.HUBS_EDIT)?(0,n.jsxs)("div",Object.assign({className:"ui icon message hub-action-prompt"},{children:[(0,n.jsxs)("h3",Object.assign({className:"ui header"},{children:[(0,n.jsx)(se.Z,{icon:e},void 0),(0,n.jsx)("div",Object.assign({className:"content"},{children:s}),void 0)]}),void 0),t]}),void 0):null,re=({hub:e,sessionT:s})=>(0,n.jsxs)("div",Object.assign({className:"password prompt"},{children:[(0,n.jsx)(Q.Z,{placeholder:s.translate("Password"),caption:s.translate("Submit"),icon:h.Z.CONNECT,handleAction:t=>(0,oe.h9)((()=>((e,s)=>l.Z.post(`${c.Z.SESSIONS_URL}/${e.id}/password`,{password:s}))(e,t)),s.plainT)},void 0),(0,n.jsx)("div",Object.assign({className:"help"},{children:(0,n.jsx)(te.c,Object.assign({i18nKey:s.toI18nKey("passwordPromptHelp")},{children:"This usually means that there's a registered account associated with your nick. If you don't remember having a registered account in this hub, there may be someone else using the same nick."}),void 0)}),void 0)]}),void 0),ae=({hub:e,sessionT:s})=>(0,n.jsx)(Y.Z,{className:"redirect prompt",icon:h.Z.CONNECT,onClick:t=>(0,oe.h9)((()=>(e=>l.Z.post(`${c.Z.SESSIONS_URL}/${e.id}/redirect`))(e)),s.plainT),caption:s.t("acceptRedirect",{defaultValue:"Accept redirect to {{url}}",replace:{url:e.connect_state.data.hub_url}})},void 0);var ce=t(93379),le=t.n(ce),de=t(7795),pe=t.n(de),he=t(90569),ue=t.n(he),me=t(3565),Se=t.n(me),Ae=t(19216),ve=t.n(Ae),be=t(44589),ge=t.n(be),we=t(80803),xe={};xe.styleTagTransform=ge(),xe.setAttributes=Se(),xe.insert=ue().bind(null,"head"),xe.domAPI=pe(),xe.insertStyleElement=ve(),le()(we.Z,xe),we.Z&&we.Z.locals&&we.Z.locals;var Ee=t(74225);const je=e=>`view_userlist_${e.session.id}`,fe=e=>(0,O.TG)(je(e),!1);class _e extends o.Component{constructor(){super(...arguments),this.state={showList:fe(this.props)},this.toggleListState=()=>{this.setState({showList:!this.state.showList})},this.getMessage=()=>{const{session:e,sessionT:s}=this.props,t=e.connect_state.id;return t===u.XF.PASSWORD?(0,n.jsx)(ie,{title:s.translate("Password required"),icon:h.Z.LOCK,content:(0,n.jsx)(re,{hub:e,sessionT:s},void 0)},void 0):t===u.XF.REDIRECT?(0,n.jsx)(ie,{title:s.translate("Redirect requested"),icon:h.Z.REDIRECT,content:(0,n.jsx)(ae,{hub:e,sessionT:s},void 0)},void 0):null},this.onClickUsers=()=>{this.toggleListState(),(0,O.nG)(je(this.props),this.state.showList)},this.handleFileUpload=e=>{const{hub_url:s}=this.props.session;return(0,Ee.Pd)(e,s,void 0)}}componentDidUpdate(e){e.session.id!==this.props.session.id&&this.state.showList!==fe(this.props)&&this.toggleListState()}render(){const{session:e,sessionApi:s,sessionT:t,uiActions:o}=this.props,{showList:i}=this.state,r=(0,n.jsx)(U.Z,{className:"userlist-button",type:"toggle",caption:t.translate("User list"),onChange:this.onClickUsers,checked:i},void 0);return(0,n.jsxs)("div",Object.assign({className:"hub chat session"},{children:[this.getMessage(),i?(0,n.jsx)(K,{session:e,sessionT:t},void 0):(0,n.jsx)(N.Z,{messageStore:y,chatApi:b.Z,sessionApi:s,chatActions:o,chatAccess:u.PS.HUBS_SEND,session:e,handleFileUpload:this.handleFileUpload,highlightRemoteMenuId:$.Z.HUB_MESSAGE_HIGHLIGHT},void 0),(0,n.jsx)(q,{userlistToggle:r,session:e,sessionT:t},void 0)]}),void 0)}}_e.displayName="HubSession";const Ce=_e;var Ze=t(61283),ye=t(3267),Oe=t(73727),Ue=t(15479);class Ne extends o.Component{constructor(){super(...arguments),this.handleConnect=e=>{b.Z.createSession(this.props.location,e,a.Z)},this.hasSession=e=>a.Z.getSessionByUrl(e.hub_url),this.recentHubRender=e=>(0,n.jsx)("a",Object.assign({onClick:s=>this.handleConnect(e.hub_url)},{children:e.name}),void 0)}render(){const{sessionT:e}=this.props;return(0,n.jsxs)("div",Object.assign({className:"hub session new"},{children:[(0,n.jsx)(Ze.Z,{submitHandler:this.handleConnect,button:(0,n.jsx)(Y.Z,{icon:h.Z.CONNECT,caption:e.translate("Connect")},void 0)},void 0),(0,n.jsx)(P.Z,{description:(0,n.jsxs)(te.c,Object.assign({i18nKey:e.toI18nKey("favoriteHubsHint")},{children:["Tip: visit the ",(0,n.jsx)(Oe.rU,Object.assign({to:"/favorite-hubs"},{children:"Favorite hubs"}),void 0)," page to connect using custom settings"]}),void 0)},void 0),(0,n.jsx)(ye.Z,{entryType:Ue.WJ.HUB,hasSession:this.hasSession,entryTitleRenderer:this.recentHubRender,entryIcon:"sitemap"},void 0)]}),void 0)}}const Ie=Ne;var Be=t(48005),Te=t(93101),Re=t(8717);const Le={itemNameGetter:e=>e.identity.name,itemStatusGetter:e=>(0,g.iU)(e.connect_state.id),itemHeaderDescriptionGetter:e=>(0,n.jsx)(i.lB,{text:e.identity.description,emojify:!0},void 0),itemHeaderIconGetter:e=>(0,n.jsx)(Be.Z,{hub:e},void 0)},De=(0,Te.J)((e=>{const{match:s,t}=e,o=function(e,s){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&s.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)s.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(t[n[o]]=e[n[o]])}return t}(e,["match","t"]);return(0,n.jsx)(r.Z,Object.assign({activeId:(i=s.params,i.id?parseInt(i.id):null),baseUrl:"hubs",newCaption:t((0,Re.zS)("new",m.jv.HUBS),"Connect"),newDescription:t((0,Re.zS)("newDesc",m.jv.HUBS),"Connect to a new hub"),newIcon:h.Z.HUBS_PLAIN,editAccess:u.PS.HUBS_EDIT,uiActions:v,actionIds:["reconnect","clear","favorite"],sessionApi:b.Z,sessionItemLayout:Ce,newLayout:Ie,t,unreadInfoStore:a.Z},Le,o),void 0);var i}),a.Z)}}]);
|
|
2
|
-
//# sourceMappingURL=hubs.8b51f0869cdfed35644e.chunk.js.map
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/hubs.8b51f0869cdfed35644e.chunk.js","mappings":"kKAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,0pCAA2pC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,sUAAsU,eAAiB,CAAC,2pCAA2pC,WAAa,MAE7yF,W,iFCMA,MAYA,EAZyC,I,IAAA,IAAEC,GAAG,EAAKC,E,yUAAK,GAAf,SAAsB,OAC7D,SAAC,IAAI,iBACEA,EAAK,CACVC,MAAO,QAAuBF,EAAIG,cAAcJ,IAAM,kBAAU,K,oLCJpE,MAuBMK,EAAyC,CAC7CC,UAAW,CACTC,YAAa,YACbC,OAAQ,eACRL,KAAMM,EAAA,kBACNC,QAT+C,EAAGC,KAAMV,KACnDW,EAAA,OAAmB,GAAGC,EAAA,kBAA6BZ,EAAID,iBAU9Dc,SAAU,CACRN,OAAQ,eACRD,YAAa,mBACbJ,KAAMM,EAAA,WACNM,OAlCad,IAAkBA,EAAIe,aAmCnCN,QAhC8C,EAAGC,KAAMV,KAClDW,EAAA,OAAmB,GAAGC,EAAA,kBAA6BZ,EAAID,eAgC5DiB,cAAe,CACbC,UAAW,0DAGfC,iBAAkB,CAChBX,OAAQ,eACRD,YAAa,wBACbG,QApCsD,EAAGC,KAAMV,KAC1DW,EAAA,QAAoB,GAAGC,EAAA,kBAA6BZ,EAAID,KAAM,CACnEoB,sBAAuBnB,EAAIoB,SAASD,uBAmCpCE,QAASrB,GACAA,EAAIoB,SAASD,sBAGxBG,gBAAiB,CACff,OAAQ,eACRD,YAAa,mBACbG,QAtCiD,EAAGC,KAAMV,KACrDW,EAAA,QAAoB,GAAGC,EAAA,kBAA6BZ,EAAID,KAAM,CACnEwB,YAAavB,EAAIoB,SAASG,aAqC1BF,QAASrB,GACAA,EAAIoB,SAASG,aAMpBC,GAAsB,EAAAC,EAAA,IAC1B,EAAAC,EAAA,GACEtB,EACAQ,EAAA,eACA,gBAEFA,EAAA,eACA,gBAGF,GACEe,SAAU,UACVC,QAASJ,G,mGCrEX,MAAMK,EAAkB,gBAAmB,CACzCC,QAAQ,EAAAC,EAAA,KAERC,kBAAkBC,GAChB,KAAWC,KAAKC,cAAe,2DAC/B,KAAWD,KAAKE,yBAA0B,8DAE1CH,EAAkBrB,EAAA,aAAyBA,EAAA,cAA0BsB,KAAKG,gBAC1EJ,EAAkBrB,EAAA,aAAyBA,EAAA,qBAAiCsB,KAAKI,kBAEjFL,EAAkBrB,EAAA,aAAyBA,EAAA,kBAA8BsB,KAAKK,mBAC9EN,EAAkBrB,EAAA,aAAyBA,EAAA,kBAA8BsB,KAAKM,sBAIlF,GAAe,EAAAC,EAAA,GAAsBZ,EAAiB,IAAYa,EAAA,a,oECxBlE,QAAe,gBAAmB,CAChCC,UAAW,gBACXC,QAAShC,EAAA,eACTiC,cAAeC,EAAA,EACfC,OAAQ,EAAE,EAAAC,EAAA,GAAe,W,gFCiB3B,MAAMC,EAAoC,EACtCC,SAAAA,EAAUC,cAAAA,EAAeC,QAAAA,MAE3B,SAAC,KAAa,CACZC,KAAOH,EACPI,KAAOH,IACPI,UAAW,EACXC,aAAeC,EAAA,WACfC,SAAWN,EAAQrD,SAAE,GAUzB,MAAM4D,UAAqB,YAA3B,c,oBAKE,KAAAC,mBAAsBN,GACbA,EAAKO,MAAMC,KAAK,KAGzB,KAAAC,oBAAsB,KACpB,MAAM,QAAEX,EAAO,SAAEY,GAAa9B,KAAK+B,MAC7BC,EAAed,EAAQjD,cAAcJ,GAE3C,GAAImE,IAAiB,mBAAwCA,IAAiB,cAC5E,OACE,8BAAKC,UAAU,mBAAiB,WAC9B,SAACC,EAAA,EAAO,CACND,UAAU,UACVE,MAAQL,EAASM,UAAU,4BAC3BpE,KAAOM,EAAA,gBAAqB,UAC5B,GAKR,MAAM6C,EAAOW,EAASM,UACpBJ,IAAiB,eAAoC,aAAe,oBAGtE,OACE,8BAAKC,UAAU,kBAAgB,WAC7B,SAACI,EAAA,EAAM,CAAClB,KAAOA,QAAI,UAAI,IAK7BmB,SACE,MAAM,QAAEpB,GAAYlB,KAAK+B,MACzB,OACE,UAACQ,EAAA,EAAY,eACXC,MAAQC,EACRjB,SAAWN,EAAQrD,GACnB6E,aAAe9B,EAAA,EACfc,mBAAqB1B,KAAK0B,mBAC1BG,oBAAsB7B,KAAK6B,oBAC3BpC,SAAW,WAAe,YAE1B,SAAC,EAAAkD,OAAM,CACLC,KAAK,OACLC,MAAO,IACPC,UAAU,OACVC,SAAU,EACVC,MAAO,SAACjC,EAAQ,CAACG,QAAUA,QAAO,SAAI,IAExC,SAAC,EAAAyB,OAAM,CACLC,KAAK,aACLC,MAAO,GACPC,UAAU,aACVE,MAAO,SAAC,KAAQ,WAChBD,SAAU,QAAC,IAEb,SAAC,EAAAJ,OAAM,CACLC,KAAK,cACLC,MAAO,IACPC,UAAU,cACVC,SAAU,QAAC,IAEb,SAAC,EAAAJ,OAAM,CACLC,KAAK,MACLC,MAAO,IACPC,UAAU,MACVC,SAAU,QAAC,IAEb,SAAC,EAAAJ,OAAM,CACLC,KAAK,eACLC,MAAO,GACPC,UAAU,eACVE,MAAO,SAAC,KAAc,WACtBD,SAAU,QAAC,IAEb,SAAC,EAAAJ,OAAM,CACLC,KAAK,iBACLC,MAAO,GACPC,UAAU,iBACVE,MAAO,SAAC,KAAc,WACtBD,SAAU,QAAC,IAEb,SAAC,EAAAJ,OAAM,CACLC,KAAK,UACLC,MAAO,IACPC,UAAU,MACVC,SAAU,EACVC,MAAO,SAAC,KAAM,iBAAE,IAElB,SAAC,EAAAL,OAAM,CACLC,KAAK,UACLC,MAAO,IACPC,UAAU,MACVC,SAAU,EACVC,MAAO,SAAC,KAAM,iBAAE,IAElB,SAAC,EAAAL,OAAM,CACLC,KAAK,QACLC,MAAO,GACPC,UAAU,aACVC,SAAU,QAAC,WACX,IAzGD,EAAAE,UAAY,CACjB/B,QAAS,YA8Gb,U,0DC1HA,MAiFA,GAAe,EAAAgC,EAAA,IAjF0CnB,IACvD,MAAQoB,EAAQC,IAAc,IAAAC,UAAwB,CACpDC,WAAY,EACZC,WAAY,KAGd,IAAAC,YACE,KAEE/E,EAAA,MAAiC,GAAGC,EAAA,kBAA6BqD,EAAMb,QAAQrD,aAC5E4F,KAAKL,GACLM,OAAOC,GAAyBC,QAAQD,MAAM,6BAA8BA,EAAME,WAGrF,MAAMC,EAAMpF,EAAA,eAQZ,OAPAqD,EAAMhC,kBACJ+D,EACApF,EAAA,0BACCF,GAAwB4E,EAAU5E,IACnCuD,EAAMb,QAAQrD,IAGT,IAAMkE,EAAMgC,sBAAsBhC,KAE3C,CAAEA,EAAMb,UAGV,MAAM8C,GAAc,IAAAC,YAAWC,EAAA,IAEzB,eAAEC,EAAc,QAAEjD,EAAO,SAAEY,GAAaC,GACtCwB,WAAYa,EAAOd,WAAYe,GAAWlB,EAE5CmB,GAAe,QAAWF,EAAQ,EAAKC,EAASD,EAAS,EAAGtC,EAASyC,QAC3E,OACE,UAACC,EAAA,EAAa,YACZ,SAAC,IAAU,CACTrD,MACE,iCACE,SAACsD,EAAA,EAAe,CAACC,WAAaxD,EAAQwD,iBAAU,GAC9C5C,EAAS6C,EAAE,SAAU,CACnBC,aAAc,iBACdC,oBAAqB,kBACrBC,MAAOV,EACPW,QAAS,CACPD,MAAOV,YAGZ,SAEJ,KAEA,QAAgBJ,KACjB,SAAC,IAAU,CACT7C,KAAOW,EAAS6C,EAAE,eAAgB,CAChCC,aAAc,+BACdG,QAAS,CACPC,OAAO,QAAWX,EAAQvC,EAASyC,QACnCU,QAASX,WAEX,IAGN,8BAAKrC,UAAU,mBAAiB,WAC9B,+BAAKA,UAAU,WAAS,WACpBkC,GACF,SAAC,KAAU,CACTlC,UAAU,oBACVvC,QAAU,EACVwF,IAAK,CAAE,mBAAoB,mBAC3BC,OAASrD,EAASM,UAAU,yBAC5BgD,SAAWlE,EACXmE,YACEnE,EAAQhC,SAASD,sBAAwBiC,EAAQhC,SAASG,WAAa,cAAgB,aAAM,WAE/F,UACE,UACF,MAOV,EAAG6B,QAAAA,OAAgBN,EAAA,aAA2BM,EAAQrD,M,2EChGtB,SAAyBa,EAAA,iBACvB,SAAuBA,EAAA,iBACvB,SAAuBA,EAAA,iBAE1B,SAAiBA,EAAA,gB,gBCDlD,MAAM4G,GAAkD,EACpDtH,KAAAA,EAAMmE,MAAAA,EAAOoD,QAAAA,KAEVC,GAAA,YAAqB,iBAKxB,+BAAKvD,UAAU,qCAAmC,YAChD,8BAAIA,UAAU,aAAW,YACvB,SAACwD,GAAA,EAAI,CAACzH,KAAOA,QAAI,IACjB,8BAAKiE,UAAU,WAAS,UACpBE,SAAK,WACH,GAENoD,UAAO,GAXJ,KA+BLG,GAAgD,EAAG5H,IAAAA,EAAKgE,SAAAA,MAC5D,+BAAKG,UAAU,mBAAiB,YAC9B,SAAC0D,EAAA,EAAW,CACVC,YAAc9D,EAASM,UAAU,YACjCyD,QAAU/D,EAASM,UAAU,UAC7BpE,KAAOM,EAAA,UACPwH,aAAe3E,IACb,UACE,IDzDqB,EAC7BrD,EACAiI,IAEOtH,EAAA,OAAmB,GAAGC,EAAA,kBAA6BZ,EAAID,cAAe,CAAEkI,SAAUA,ICqD3EC,CAAgBlI,EAAKqD,IAC3BW,EAASyC,cACV,IAGL,8BAAKtC,UAAU,QAAM,WACnB,SAACgE,GAAA,EAAK,eAACC,QAAUpE,EAASqE,UAAU,uBAAqB,2NAIjD,WACJ,GASJC,GAAgD,EAAGtI,IAAAA,EAAKgE,SAAAA,MAC5D,SAACuE,EAAA,EAAM,CACLpE,UAAU,kBACVjE,KAAOM,EAAA,UACPgI,QAAUC,IACR,UACE,ID5EyB,CAACzI,GACzBW,EAAA,OAAmB,GAAGC,EAAA,kBAA6BZ,EAAID,eC2ElD2I,CAAkB1I,IACxBgE,EAASyC,QAGbsB,QAAU/D,EAAS6C,EAAE,iBAAkB,CACrCC,aAAc,6BACdG,QAAS,CACPjB,IAAKhG,EAAIG,cAAcO,KAAMiI,iBAE/B,G,wJC3FFC,GAAU,GAEdA,GAAQC,kBAAoB,KAC5BD,GAAQE,cAAgB,KAElBF,GAAQG,OAAS,UAAc,KAAM,QAE3CH,GAAQI,OAAS,KACjBJ,GAAQK,mBAAqB,KAEhB,KAAI,KAASL,IAKJ,MAAW,aAAiB,Y,gBCHlD,MAAMM,GAAiBjF,GACd,iBAAiBA,EAAMb,QAAQrD,KAGlCoJ,GAAalF,IACV,QAAoBiF,GAAcjF,IAAQ,GAOnD,MAAMmF,WAAmB,EAAAC,UAAzB,c,oBAGE,KAAAC,MAAQ,CACNC,SAAUJ,GAAUjH,KAAK+B,QAS3B,KAAAuF,gBAAkB,KAChBtH,KAAKuH,SAAS,CAAEF,UAAWrH,KAAKoH,MAAMC,YAGxC,KAAAG,WAAa,KACX,MAAM,QAAEtG,EAAO,SAAEY,GAAa9B,KAAK+B,MAC7BC,EAAed,EAAQjD,cAAcJ,GAE3C,OAAImE,IAAiB,eAEjB,SAACsD,GAAe,CACdnD,MAAQL,EAASM,UAAU,qBAC3BpE,KAAOM,EAAA,OACPiH,SAAU,SAACG,GAAc,CAAC5H,IAAMoD,EAAUY,SAAWA,QAAQ,SAAI,GAKnEE,IAAiB,eAEjB,SAACsD,GAAe,CACdnD,MAAQL,EAASM,UAAU,sBAC3BpE,KAAOM,EAAA,WACPiH,SAAU,SAACa,GAAc,CAACtI,IAAMoD,EAAUY,SAAWA,QAAQ,SAAI,GAKhE,MAGT,KAAA2F,aAAe,KACbzH,KAAKsH,mBAEL,QAAoBN,GAAchH,KAAK+B,OAAQ/B,KAAKoH,MAAMC,WAG5D,KAAAK,iBAAoBC,IAClB,MAAM,QAAElB,GAAYzG,KAAK+B,MAAMb,QAC/B,OAAO,SAAcyG,EAAMlB,OAASmB,IA7CtCC,mBAAmBC,GACbA,EAAU5G,QAAQrD,KAAOmC,KAAK+B,MAAMb,QAAQrD,IAAMmC,KAAKoH,MAAMC,WAAaJ,GAAUjH,KAAK+B,QAC3F/B,KAAKsH,kBA8CThF,SACE,MAAM,QAAEpB,EAAO,WAAE6G,EAAU,SAAEjG,EAAQ,UAAEkG,GAAchI,KAAK+B,OACpD,SAAEsF,GAAarH,KAAKoH,MAEpBa,GACJ,SAACC,EAAA,EAAQ,CACPjG,UAAU,kBACVkG,KAAK,SACLtC,QAAU/D,EAASM,UAAU,aAC7BgG,SAAWpI,KAAKyH,aAChBtI,QAAUkI,QAAQ,GAItB,OACE,+BAAKpF,UAAU,oBAAkB,WAC7BjC,KAAKwH,aACLH,GACA,SAAC,EAAY,CACXnG,QAAUA,EACVY,SAAWA,QAAQ,IAGrB,SAACuG,EAAA,EAAU,CACTC,aAAe,EACfC,QAAU,IACVR,WAAaA,EACbS,YAAcR,EACdS,WAAa,eACbvH,QAAUA,EACVwG,iBAAmB1H,KAAK0H,iBACxBgB,sBAAwBnH,EAAA,8BAAmC,IAG/D,SAAC,EAAS,CACR4C,eAAiB8D,EACjB/G,QAAUA,EACVY,SAAWA,QAAQ,WACnB,IA5FD,GAAA1D,YAAc,aAkGvB,Y,mDCjHA,MAAMuK,WAAe,EAAAxB,UAArB,c,oBACE,KAAAyB,cAAiBC,IACf,kBAAyB7I,KAAK+B,MAAM+G,SAAUD,EAAQjI,EAAA,IAGxD,KAAAmI,WAAcC,GACLpI,EAAA,kBAAgCoI,EAAMvC,SAG/C,KAAAwC,gBAAmBD,IAEf,4BAAG1C,QAAUC,GAAKvG,KAAK4I,cAAcI,EAAMvC,UAAQ,UAC/CuC,EAAMpG,YAAI,GAKlBN,SACE,MAAM,SAAER,GAAa9B,KAAK+B,MAC1B,OACE,+BAAKE,UAAU,mBAAiB,YAC9B,SAACiH,GAAA,EAAc,CACbC,cAAgBnJ,KAAK4I,cACrBQ,QACE,SAAC/C,EAAA,EAAM,CACLrI,KAAOM,EAAA,UACPuH,QAAU/D,EAASM,UAAU,iBAAU,SACvC,IAGN,SAACF,EAAA,EAAO,CACNmH,aACE,UAACpD,GAAA,EAAK,eAACC,QAAUpE,EAASqE,UAAU,qBAAmB,8BACtC,SAAC,MAAI,eAACmD,GAAG,kBAAgB,oCAAqB,0DAEhE,IAEH,SAACC,GAAA,EAAY,CACXC,UAAY,UACZT,WAAa/I,KAAK+I,WAClBU,mBAAqBzJ,KAAKiJ,gBAC1BS,UAAU,gBAAS,WACnB,IAMV,Y,uCC3CA,MAAMC,GAA6C,CACjDC,eAAe1I,GACNA,EAAQ2I,SAASjH,KAG1BkH,iBAAiB5I,IACR,QAAuBA,EAAQjD,cAAcJ,IAGtDkM,4BAA4B7I,IAExB,SAAC,KAAa,CACZC,KAAOD,EAAQ2I,SAASR,YACxBW,SAAU,QAAI,GAKpBC,qBAAqB/I,IACZ,SAACgJ,GAAA,EAAO,CAACpM,IAAMoD,QAAO,IAqCjC,IAAe,EAAAiJ,GAAA,IAvBqDpI,IAClE,MAAM,MAAEqI,EAAK,GAAkBrI,EAAVhE,E,yUAAK,CAAKgE,EAAzB,eACN,OACE,SAACsI,EAAA,EAAa,eACZC,UAdkBC,EAcQH,EAAMG,OAb/BA,EAAO1M,GAIL2M,SAASD,EAAW,IAHlB,MAaLE,QAAQ,OACRC,WAAa/F,GAAE,SAAU,MAAO,WAAkB,WAClDgG,eAAiBhG,GAAE,SAAU,UAAW,WAAkB,wBAC1DiG,QAAUtM,EAAA,aACVuM,WAAa,eACb7C,UAAY,EACZ8C,UAAW,CAAE,YAAa,QAAS,YACnC/C,WAAa,IACbgD,kBAAoB,GACpBC,UAAY,GACZrG,EACAsG,gBAAkBrK,EAAA,GACb+I,GACA5L,QAAK,GA5BO,IAACwM,IAiCsB3J,EAAA","sources":["webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/style.css","webpack://airdcpp-webui/./src/components/icon/HubIcon.tsx","webpack://airdcpp-webui/./src/actions/ui/HubActions.ts","webpack://airdcpp-webui/./src/stores/HubMessageStore.ts","webpack://airdcpp-webui/./src/stores/HubUserViewStore.js","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/components/HubUserTable.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/components/HubFooter.tsx","webpack://airdcpp-webui/./src/services/api/HubApi.ts","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/components/HubPrompt.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/style.css?5587","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/components/HubSession.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/components/HubNew.tsx","webpack://airdcpp-webui/./src/routes/Sidebar/routes/Hubs/components/Hubs.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \".hub-action-prompt {\\r\\n flex-direction: column;\\r\\n align-items: flex-start !important;\\r\\n}\\r\\n\\r\\n.hub-action-prompt .header {\\r\\n margin: 0 0 1rem !important;\\r\\n}\\r\\n\\r\\n.hub-action-prompt .password.prompt .help {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.hub-action-prompt .redirect.prompt {\\r\\n max-width: 100%;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.hub.session .virtual-table,\\r\\n.hub.session .offline-message,\\r\\n.hub.session .loader-wrapper {\\r\\n flex: 1;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.hub.session .cell-wrapper.tag,\\r\\n.hub.session .cell-wrapper.nick,\\r\\n.hub.session .cell-wrapper.description,\\r\\n.hub.session .cell-wrapper.share_size {\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.hub.session .cell-wrapper.nick.op {\\r\\n color: steelblue;\\r\\n}\\r\\n.hub.session .session-footer .actions-wrapper > a,\\r\\n.hub.session .session-footer .actions-wrapper > div {\\r\\n /* Don't cut the shadow */\\r\\n padding-left: 1px;\\r\\n padding-bottom: 1px;\\r\\n}\\r\\n\\r\\n.hub.session .session-footer .userlist-button label {\\r\\n color: grey;\\r\\n font-size: small;\\r\\n}\\r\\n\\r\\n.hub.session .session-footer .actions-wrapper .dropdown {\\r\\n margin-left: 10px;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/routes/Sidebar/routes/Hubs/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,sBAAsB;EACtB,kCAAkC;AACpC;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,eAAe;EACf,gBAAgB;AAClB;;AAEA;;;EAGE,OAAO;EACP,eAAe;AACjB;;AAEA;;;;EAIE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;AACA;;EAEE,yBAAyB;EACzB,iBAAiB;EACjB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,iBAAiB;AACnB\",\"sourcesContent\":[\".hub-action-prompt {\\r\\n flex-direction: column;\\r\\n align-items: flex-start !important;\\r\\n}\\r\\n\\r\\n.hub-action-prompt .header {\\r\\n margin: 0 0 1rem !important;\\r\\n}\\r\\n\\r\\n.hub-action-prompt .password.prompt .help {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.hub-action-prompt .redirect.prompt {\\r\\n max-width: 100%;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.hub.session .virtual-table,\\r\\n.hub.session .offline-message,\\r\\n.hub.session .loader-wrapper {\\r\\n flex: 1;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.hub.session .cell-wrapper.tag,\\r\\n.hub.session .cell-wrapper.nick,\\r\\n.hub.session .cell-wrapper.description,\\r\\n.hub.session .cell-wrapper.share_size {\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.hub.session .cell-wrapper.nick.op {\\r\\n color: steelblue;\\r\\n}\\r\\n.hub.session .session-footer .actions-wrapper > a,\\r\\n.hub.session .session-footer .actions-wrapper > div {\\r\\n /* Don't cut the shadow */\\r\\n padding-left: 1px;\\r\\n padding-bottom: 1px;\\r\\n}\\r\\n\\r\\n.hub.session .session-footer .userlist-button label {\\r\\n color: grey;\\r\\n font-size: small;\\r\\n}\\r\\n\\r\\n.hub.session .session-footer .actions-wrapper .dropdown {\\r\\n margin-left: 10px;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//import PropTypes from 'prop-types';\r\nimport * as React from 'react';\r\n\r\nimport Icon, { IconProps } from 'components/semantic/Icon';\r\nimport { hubOnlineStatusToColor } from 'utils/TypeConvert';\r\n\r\nimport * as API from 'types/api';\r\n\r\n\r\ninterface HubIconProps extends IconProps {\r\n hub: API.Hub;\r\n}\r\n\r\nconst HubIcon: React.FC<HubIconProps> = ({ hub, ...other }) => (\r\n <Icon\r\n { ...other }\r\n icon={ hubOnlineStatusToColor(hub.connect_state.id) + ' sitemap' }\r\n />\r\n);\r\n\r\n/*HubIcon.propTypes = {\r\n // Hub object\r\n hub: PropTypes.object.isRequired,\r\n};*/\r\n\r\nexport default HubIcon;","import HubConstants from 'constants/HubConstants';\r\nimport SocketService from 'services/SocketService';\r\n\r\nimport ChatActionDecorator from './decorators/ChatActionDecorator';\r\nimport SessionActionDecorator from './decorators/SessionActionDecorator';\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\n\r\nconst showFav = (hub: API.Hub) => !hub.favorite_hub;\r\n\r\n\r\nconst handleFavorite: UI.ActionHandler<API.Hub> = ({ data: hub }) => {\r\n return SocketService.post(`${HubConstants.SESSIONS_URL}/${hub.id}/favorite`);\r\n};\r\n\r\nconst handleToggleChatNotify: UI.ActionHandler<API.Hub> = ({ data: hub }) => {\r\n return SocketService.patch(`${HubConstants.SESSIONS_URL}/${hub.id}`, {\r\n use_main_chat_notify: !hub.settings.use_main_chat_notify,\r\n });\r\n};\r\n\r\nconst handleToggleJoins: UI.ActionHandler<API.Hub> = ({ data: hub }) => {\r\n return SocketService.patch(`${HubConstants.SESSIONS_URL}/${hub.id}`, {\r\n show_joins: !hub.settings.show_joins,\r\n });\r\n};\r\n\r\nconst handleReconnect: UI.ActionHandler<API.Hub> = ({ data: hub }) => {\r\n return SocketService.post(`${HubConstants.SESSIONS_URL}/${hub.id}/reconnect`);\r\n};\r\n\r\nconst HubActions: UI.ActionListType<API.Hub> = {\r\n reconnect: { \r\n displayName: 'Reconnect',\r\n access: API.AccessEnum.HUBS_EDIT, \r\n icon: IconConstants.REFRESH_COLORED,\r\n handler: handleReconnect,\r\n },\r\n favorite: { \r\n access: API.AccessEnum.HUBS_EDIT, \r\n displayName: 'Add to favorites', \r\n icon: IconConstants.FAVORITE,\r\n filter: showFav,\r\n handler: handleFavorite,\r\n notifications: {\r\n onSuccess: 'The hub {{item.identity.name}} was added in favorites',\r\n }\r\n },\r\n toggleChatNotify: { \r\n access: API.AccessEnum.HUBS_EDIT, \r\n displayName: 'Use chat notification',\r\n handler: handleToggleChatNotify,\r\n checked: hub => {\r\n return hub.settings.use_main_chat_notify;\r\n }\r\n },\r\n toggleShowJoins: { \r\n access: API.AccessEnum.HUBS_EDIT, \r\n displayName: 'Show joins/parts', \r\n handler: handleToggleJoins,\r\n checked: hub => {\r\n return hub.settings.show_joins;\r\n }\r\n },\r\n};\r\n\r\n\r\nconst HubActionsDecorated = SessionActionDecorator(\r\n ChatActionDecorator(\r\n HubActions, \r\n HubConstants.SESSIONS_URL, \r\n API.AccessEnum.HUBS_EDIT\r\n ), \r\n HubConstants.SESSIONS_URL, \r\n API.AccessEnum.HUBS_EDIT\r\n);\r\n\r\nexport default {\r\n moduleId: UI.Modules.HUBS,\r\n actions: HubActionsDecorated,\r\n};\r\n","//@ts-ignore\r\nimport Reflux from 'reflux';\r\nimport invariant from 'invariant';\r\n\r\nimport HubConstants from 'constants/HubConstants';\r\nimport HubActions from 'actions/reflux/HubActions';\r\n\r\nimport MessageStoreDecorator from './decorators/MessageStoreDecorator';\r\n\r\nimport AccessConstants from 'constants/AccessConstants';\r\nimport { SessionScrollPositionKeeper } from './helpers/SessionScrollPositionKeeper';\r\nimport { AddSocketListener } from 'decorators/SocketSubscriptionDecorator';\r\n\r\n\r\nconst HubMessageStore = Reflux.createStore({\r\n scroll: SessionScrollPositionKeeper(),\r\n\r\n onSocketConnected(addSocketListener: AddSocketListener) {\r\n invariant(!this.hasMessages(), 'No existing hub messages should exist on socket connect');\r\n invariant(!this.hasInitializedSessions(), 'No initialized hub sessions should exist on socket connect');\r\n\r\n addSocketListener(HubConstants.MODULE_URL, HubConstants.HUB_MESSAGE, this._onChatMessage);\r\n addSocketListener(HubConstants.MODULE_URL, HubConstants.HUB_STATUS_MESSAGE, this._onStatusMessage);\r\n\r\n addSocketListener(HubConstants.MODULE_URL, HubConstants.SESSION_UPDATED, this._onSessionUpdated);\r\n addSocketListener(HubConstants.MODULE_URL, HubConstants.SESSION_REMOVED, this._onSessionRemoved);\r\n },\r\n});\r\n\r\nexport default MessageStoreDecorator(HubMessageStore, HubActions, AccessConstants.HUBS_VIEW)\r\n;\r\n","import ViewStoreMixin from 'mixins/ViewStoreMixin';\r\nimport Reflux from 'reflux';\r\nimport HubConstants from 'constants/HubConstants';\r\nimport HubSessionStore from './HubSessionStore';\r\n\r\nexport default Reflux.createStore({\r\n _viewName: 'hub_user_view',\r\n _apiUrl: HubConstants.SESSIONS_URL,\r\n _sessionStore: HubSessionStore,\r\n mixins: [ ViewStoreMixin('nick') ],\r\n});\r\n","import PropTypes from 'prop-types';\r\nimport * as React from 'react';\r\n\r\nimport HubSessionStore from 'stores/HubSessionStore';\r\nimport HubUserViewStore from 'stores/HubUserViewStore';\r\n\r\nimport { Column } from 'fixed-data-table-2';\r\nimport VirtualTable from 'components/table/VirtualTable';\r\nimport { SizeCell, ConnectionCell, IpCell } from 'components/table/Cell';\r\n\r\nimport { TableUserMenu } from 'components/menu';\r\n\r\nimport Message from 'components/semantic/Message';\r\nimport Loader from 'components/semantic/Loader';\r\nimport { RowWrapperCellChildProps } from 'components/table/RowWrapperCell';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport IconConstants from 'constants/IconConstants';\r\nimport MenuConstants from 'constants/MenuConstants';\r\n\r\n\r\ninterface NickCellProps extends RowWrapperCellChildProps<string, API.HubUser> {\r\n session: API.Hub;\r\n}\r\n\r\nconst NickCell: React.FC<NickCellProps> = (\r\n { cellData, rowDataGetter, session }\r\n) => (\r\n <TableUserMenu \r\n text={ cellData } \r\n user={ rowDataGetter!() }\r\n userIcon={ true }\r\n remoteMenuId={ MenuConstants.HUB_USER }\r\n entityId={ session.id }\r\n />\r\n);\r\n\r\n\r\ninterface HubUserTableProps {\r\n session: API.Hub;\r\n sessionT: UI.ModuleTranslator;\r\n}\r\n\r\nclass HubUserTable extends React.Component<HubUserTableProps> {\r\n static propTypes = {\r\n session: PropTypes.object, // required\r\n };\r\n\r\n rowClassNameGetter = (user: API.HubUser) => {\r\n return user.flags.join(' ');\r\n }\r\n\r\n emptyRowsNodeGetter = () => {\r\n const { session, sessionT } = this.props;\r\n const connectState = session.connect_state.id;\r\n\r\n if (connectState === API.HubConnectStateEnum.DISCONNECTED || connectState === API.HubConnectStateEnum.REDIRECT) {\r\n return (\r\n <div className=\"offline-message\">\r\n <Message \r\n className=\"offline\"\r\n title={ sessionT.translate('Not connected to the hub') }\r\n icon={ IconConstants.OFFLINE }\r\n />\r\n </div>\r\n );\r\n } \r\n\r\n const text = sessionT.translate(\r\n connectState !== API.HubConnectStateEnum.CONNECTED ? 'Connecting' : 'Loading userlist'\r\n );\r\n \r\n return (\r\n <div className=\"loader-wrapper\">\r\n <Loader text={ text }/>\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n const { session } = this.props;\r\n return (\r\n <VirtualTable\r\n store={ HubUserViewStore }\r\n entityId={ session.id }\r\n sessionStore={ HubSessionStore }\r\n rowClassNameGetter={ this.rowClassNameGetter }\r\n emptyRowsNodeGetter={ this.emptyRowsNodeGetter }\r\n moduleId={ UI.Modules.HUBS }\r\n >\r\n <Column\r\n name=\"Nick\"\r\n width={170}\r\n columnKey=\"nick\"\r\n flexGrow={8}\r\n cell={ <NickCell session={ session }/> }\r\n />\r\n <Column\r\n name=\"Share size\"\r\n width={85}\r\n columnKey=\"share_size\"\r\n cell={ <SizeCell/> }\r\n flexGrow={1}\r\n />\r\n <Column\r\n name=\"Description\"\r\n width={100}\r\n columnKey=\"description\"\r\n flexGrow={1}\r\n />\r\n <Column\r\n name=\"Tag\"\r\n width={150}\r\n columnKey=\"tag\"\r\n flexGrow={2}\r\n />\r\n <Column\r\n name=\"Upload speed\"\r\n width={80}\r\n columnKey=\"upload_speed\"\r\n cell={ <ConnectionCell/> }\r\n flexGrow={2}\r\n />\r\n <Column\r\n name=\"Download speed\"\r\n width={80}\r\n columnKey=\"download_speed\"\r\n cell={ <ConnectionCell/> }\r\n flexGrow={2}\r\n />\r\n <Column\r\n name=\"IP (v4)\"\r\n width={120}\r\n columnKey=\"ip4\"\r\n flexGrow={3}\r\n cell={ <IpCell/> }\r\n />\r\n <Column\r\n name=\"IP (v6)\"\r\n width={120}\r\n columnKey=\"ip6\"\r\n flexGrow={3}\r\n cell={ <IpCell/> }\r\n />\r\n <Column\r\n name=\"Files\"\r\n width={70}\r\n columnKey=\"file_count\"\r\n flexGrow={3}\r\n />\r\n </VirtualTable>\r\n );\r\n }\r\n}\r\n\r\nexport default HubUserTable;","//import PropTypes from 'prop-types';\r\nimport { useEffect, useState, useContext } from 'react';\r\n\r\nimport * as React from 'react';\r\n\r\nimport HubConstants from 'constants/HubConstants';\r\nimport SocketService from 'services/SocketService';\r\nimport HubSessionStore from 'stores/HubSessionStore';\r\n\r\nimport { formatSize } from 'utils/ValueFormat';\r\nimport { SessionFooter, FooterItem } from 'routes/Sidebar/components/SessionFooter';\r\nimport EncryptionState from 'components/EncryptionState';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { ErrorResponse } from 'airdcpp-apisocket';\r\nimport { \r\n SocketSubscriptionDecorator, SocketSubscriptionDecoratorChildProps\r\n} from 'decorators/SocketSubscriptionDecorator';\r\nimport { useMobileLayout } from 'utils/BrowserUtils';\r\nimport { LayoutWidthContext } from 'context/LayoutWidthContext';\r\nimport { ActionMenu } from 'components/menu';\r\nimport HubActions from 'actions/ui/HubActions';\r\n\r\n\r\ninterface HubFooterProps {\r\n session: API.Hub;\r\n userlistToggle: React.ReactNode;\r\n sessionT: UI.ModuleTranslator;\r\n}\r\n\r\n\r\ntype DataProps = SocketSubscriptionDecoratorChildProps<HubFooterProps>;\r\nconst HubFooter: React.FC<HubFooterProps & DataProps> = (props) => {\r\n const [ counts, setCounts ] = useState<API.HubCounts>({\r\n share_size: 0,\r\n user_count: 0\r\n });\r\n\r\n useEffect(\r\n () => {\r\n // Fetch initial\r\n SocketService.get<API.HubCounts>(`${HubConstants.SESSIONS_URL}/${props.session.id}/counts`)\r\n .then(setCounts)\r\n .catch((error: ErrorResponse) => console.error('Failed to fetch hub counts', error.message));\r\n\r\n // Subscription\r\n const url = HubConstants.SESSIONS_URL;\r\n props.addSocketListener(\r\n url, \r\n HubConstants.SESSION_COUNTS_UPDATED, \r\n (data: API.HubCounts) => setCounts(data), \r\n props.session.id\r\n );\r\n\r\n return () => props.removeSocketListeners(props);\r\n },\r\n [ props.session ]\r\n );\r\n\r\n const layoutWidth = useContext(LayoutWidthContext);\r\n\r\n const { userlistToggle, session, sessionT } = props;\r\n const { user_count: users, share_size: shared } = counts;\r\n\r\n const averageShare = formatSize(users > 0 ? (shared / users) : 0, sessionT.plainT);\r\n return (\r\n <SessionFooter>\r\n <FooterItem \r\n text={(\r\n <>\r\n <EncryptionState encryption={ session.encryption }/>\r\n { sessionT.t('xUsers', {\r\n defaultValue: '{{count}} user',\r\n defaultValue_plural: '{{count}} users',\r\n count: users,\r\n replace: {\r\n count: users\r\n }\r\n }\r\n ) }\r\n </>\r\n )}\r\n />\r\n { !useMobileLayout(layoutWidth) && (\r\n <FooterItem \r\n text={ sessionT.t('sharePerUser', {\r\n defaultValue: '{{total}} ({{average}}/user)',\r\n replace: {\r\n total: formatSize(shared, sessionT.plainT),\r\n average: averageShare\r\n }\r\n }) }\r\n /> \r\n ) }\r\n <div className=\"actions-wrapper\">\r\n <div className=\"actions\">\r\n { userlistToggle }\r\n <ActionMenu\r\n className=\"top left pointing\"\r\n actions={ HubActions }\r\n ids={[ 'toggleChatNotify', 'toggleShowJoins' ]}\r\n header={ sessionT.translate('Notification settings') } \r\n itemData={ session }\r\n triggerIcon={ \r\n session.settings.use_main_chat_notify || session.settings.show_joins ? 'yellow bell' : 'bell' \r\n }\r\n />\r\n </div>\r\n </div>\r\n </SessionFooter>\r\n );\r\n};\r\n\r\nexport default SocketSubscriptionDecorator(\r\n HubFooter,\r\n ({ session }) => !!HubSessionStore.getSession(session.id)\r\n);","import HubConstants from 'constants/HubConstants';\r\nimport SocketService from 'services/SocketService';\r\n\r\nimport * as API from 'types/api';\r\nimport { \r\n sendChatMessageDecorator, clearMessagesDecorator, setReadDecorator, fetchMessagesDecorator \r\n} from './common/ChatActions';\r\n//import * as UI from 'types/ui';\r\n\r\n\r\nexport const sendHubPassword = (\r\n hub: API.Hub, \r\n password: string\r\n) => {\r\n return SocketService.post(`${HubConstants.SESSIONS_URL}/${hub.id}/password`, { password: password });\r\n};\r\n\r\nexport const acceptHubRedirect = (hub: API.Hub) => {\r\n return SocketService.post(`${HubConstants.SESSIONS_URL}/${hub.id}/redirect`);\r\n};\r\n\r\nexport const sendHubChatMessage = sendChatMessageDecorator(HubConstants.SESSIONS_URL);\r\nexport const clearHubChatMessages = clearMessagesDecorator(HubConstants.SESSIONS_URL);\r\nexport const fetchHubChatMessages = fetchMessagesDecorator(HubConstants.SESSIONS_URL);\r\n\r\nexport const setHubSessionRead = setReadDecorator(HubConstants.SESSIONS_URL);\r\n","//import PropTypes from 'prop-types';\r\nimport * as React from 'react';\r\n\r\nimport ActionInput from 'components/semantic/ActionInput';\r\nimport Button from 'components/semantic/Button';\r\n\r\nimport LoginStore from 'stores/LoginStore';\r\nimport Icon, { IconType } from 'components/semantic/Icon';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport { Trans } from 'react-i18next';\r\nimport { sendHubPassword, acceptHubRedirect } from 'services/api/HubApi';\r\nimport { runBackgroundSocketAction } from 'utils/ActionUtils';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\n\r\ninterface HubActionPromptProps {\r\n icon: IconType;\r\n title: React.ReactNode;\r\n content: React.ReactNode;\r\n}\r\n\r\n// Main prompt (HUBS_EDIT permission is required for the content to be rendered)\r\nconst HubActionPrompt: React.FC<HubActionPromptProps> = (\r\n { icon, title, content }\r\n) => {\r\n if (!LoginStore.hasAccess(API.AccessEnum.HUBS_EDIT)) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"ui icon message hub-action-prompt\">\r\n <h3 className=\"ui header\">\r\n <Icon icon={ icon }/>\r\n <div className=\"content\">\r\n { title }\r\n </div>\r\n </h3>\r\n { content }\r\n </div>\r\n );\r\n};\r\n\r\n/*HubActionPrompt.propTypes = {\r\n // Message title\r\n title: PropTypes.node.isRequired,\r\n\r\n // Children\r\n content: PropTypes.node.isRequired,\r\n};*/\r\n\r\n\r\ninterface PasswordPromptProps {\r\n hub: API.Hub;\r\n sessionT: UI.ModuleTranslator;\r\n}\r\n\r\n// Sub prompts\r\nconst PasswordPrompt: React.FC<PasswordPromptProps> = ({ hub, sessionT }) => (\r\n <div className=\"password prompt\">\r\n <ActionInput \r\n placeholder={ sessionT.translate('Password') } \r\n caption={ sessionT.translate('Submit') }\r\n icon={ IconConstants.CONNECT }\r\n handleAction={ text => \r\n runBackgroundSocketAction(\r\n () => sendHubPassword(hub, text),\r\n sessionT.plainT\r\n )\r\n }\r\n />\r\n <div className=\"help\">\r\n <Trans i18nKey={ sessionT.toI18nKey('passwordPromptHelp') }>\r\n This usually means that there's a registered account associated with your nick. \r\n If you don't remember having a registered account in this hub, \r\n there may be someone else using the same nick.\r\n </Trans>\r\n </div>\r\n </div>\r\n);\r\n\r\ninterface RedirectPromptProps {\r\n hub: API.Hub;\r\n sessionT: UI.ModuleTranslator;\r\n}\r\n\r\nconst RedirectPrompt: React.FC<RedirectPromptProps> = ({ hub, sessionT }) => (\r\n <Button\r\n className=\"redirect prompt\"\r\n icon={ IconConstants.CONNECT }\r\n onClick={ _ => \r\n runBackgroundSocketAction(\r\n () => acceptHubRedirect(hub),\r\n sessionT.plainT\r\n )\r\n }\r\n caption={ sessionT.t('acceptRedirect', {\r\n defaultValue: 'Accept redirect to {{url}}',\r\n replace: {\r\n url: hub.connect_state.data!.hub_url\r\n }\r\n }) }\r\n />\r\n);\r\n\r\nexport { RedirectPrompt, PasswordPrompt, HubActionPrompt };","\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;\n\n options.insert = insertFn.bind(null, \"head\");\n \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 { Component } from 'react';\r\n\r\nimport HubMessageStore from 'stores/HubMessageStore';\r\n\r\nimport { loadSessionProperty, saveSessionProperty } from 'utils/BrowserUtils';\r\nimport Checkbox from 'components/semantic/Checkbox';\r\n\r\nimport ChatLayout, { ChatAPI, ChatActionList } from 'routes/Sidebar/components/chat/ChatLayout';\r\nimport HubUserTable from 'routes/Sidebar/routes/Hubs/components/HubUserTable';\r\n\r\nimport HubFooter from 'routes/Sidebar/routes/Hubs/components/HubFooter';\r\nimport { RedirectPrompt, PasswordPrompt, HubActionPrompt } from 'routes/Sidebar/routes/Hubs/components/HubPrompt';\r\n\r\nimport '../style.css';\r\n\r\nimport * as API from 'types/api';\r\nimport { SessionChildProps } from 'routes/Sidebar/components/SessionLayout';\r\nimport { shareTempFile } from 'services/api/ShareApi';\r\nimport HubActions from 'actions/reflux/HubActions';\r\nimport IconConstants from 'constants/IconConstants';\r\nimport MenuConstants from 'constants/MenuConstants';\r\n\r\n\r\nconst getStorageKey = (props: HubSessionProps) => {\r\n return `view_userlist_${props.session.id}`;\r\n};\r\n\r\nconst checkList = (props: HubSessionProps) => {\r\n return loadSessionProperty(getStorageKey(props), false);\r\n};\r\n\r\ninterface HubSessionProps extends SessionChildProps<API.Hub, {}, ChatActionList> {\r\n\r\n}\r\n\r\nclass HubSession extends Component<HubSessionProps> {\r\n static displayName = 'HubSession';\r\n\r\n state = {\r\n showList: checkList(this.props),\r\n };\r\n \r\n componentDidUpdate(prevProps: HubSessionProps) {\r\n if (prevProps.session.id !== this.props.session.id && this.state.showList !== checkList(this.props)) {\r\n this.toggleListState();\r\n }\r\n }\r\n\r\n toggleListState = () => {\r\n this.setState({ showList: !this.state.showList });\r\n }\r\n\r\n getMessage = () => {\r\n const { session, sessionT } = this.props;\r\n const connectState = session.connect_state.id;\r\n\r\n if (connectState === API.HubConnectStateEnum.PASSWORD) {\r\n return (\r\n <HubActionPrompt \r\n title={ sessionT.translate('Password required') }\r\n icon={ IconConstants.LOCK }\r\n content={ <PasswordPrompt hub={ session } sessionT={ sessionT }/> }\r\n />\r\n );\r\n }\r\n\r\n if (connectState === API.HubConnectStateEnum.REDIRECT) {\r\n return (\r\n <HubActionPrompt \r\n title={ sessionT.translate('Redirect requested') }\r\n icon={ IconConstants.REDIRECT }\r\n content={ <RedirectPrompt hub={ session } sessionT={ sessionT }/> }\r\n />\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n onClickUsers = () => {\r\n this.toggleListState();\r\n\r\n saveSessionProperty(getStorageKey(this.props), this.state.showList);\r\n }\r\n\r\n handleFileUpload = (file: File) => {\r\n const { hub_url } = this.props.session;\r\n return shareTempFile(file, hub_url, undefined);\r\n }\r\n\r\n render() {\r\n const { session, sessionApi, sessionT, uiActions } = this.props;\r\n const { showList } = this.state;\r\n\r\n const checkbox = (\r\n <Checkbox\r\n className=\"userlist-button\"\r\n type=\"toggle\"\r\n caption={ sessionT.translate('User list') }\r\n onChange={ this.onClickUsers }\r\n checked={ showList }\r\n />\r\n );\r\n\r\n return (\r\n <div className=\"hub chat session\">\r\n { this.getMessage() }\r\n { showList ? (\r\n <HubUserTable\r\n session={ session }\r\n sessionT={ sessionT }\r\n />\r\n ) : (\r\n <ChatLayout\r\n messageStore={ HubMessageStore }\r\n chatApi={ HubActions as ChatAPI }\r\n sessionApi={ sessionApi }\r\n chatActions={ uiActions }\r\n chatAccess={ API.AccessEnum.HUBS_SEND }\r\n session={ session }\r\n handleFileUpload={ this.handleFileUpload }\r\n highlightRemoteMenuId={ MenuConstants.HUB_MESSAGE_HIGHLIGHT }\r\n />\r\n ) }\r\n <HubFooter\r\n userlistToggle={ checkbox }\r\n session={ session }\r\n sessionT={ sessionT }\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default HubSession;","import { Component } from 'react';\r\n\r\nimport HubSearchInput from 'components/autosuggest/HubSearchInput';\r\nimport RecentLayout from 'routes/Sidebar/components/RecentLayout';\r\n\r\nimport Message from 'components/semantic/Message';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport HubActions from 'actions/reflux/HubActions';\r\nimport HubSessionStore from 'stores/HubSessionStore';\r\n\r\nimport { HistoryEntryEnum } from 'constants/HistoryConstants';\r\n\r\nimport * as API from 'types/api';\r\n\r\nimport { Trans } from 'react-i18next';\r\nimport { NewSessionLayoutProps } from 'routes/Sidebar/components/SessionLayout';\r\nimport IconConstants from 'constants/IconConstants';\r\nimport Button from 'components/semantic/Button';\r\n\r\n\r\nclass HubNew extends Component<NewSessionLayoutProps> {\r\n handleConnect = (hubUrl: string) => {\r\n HubActions.createSession(this.props.location, hubUrl, HubSessionStore);\r\n }\r\n\r\n hasSession = (entry: API.HistoryItem) => {\r\n return HubSessionStore.getSessionByUrl(entry.hub_url);\r\n }\r\n\r\n recentHubRender = (entry: API.HistoryItem) => {\r\n return (\r\n <a onClick={ _ => this.handleConnect(entry.hub_url) }>\r\n { entry.name }\r\n </a> \r\n );\r\n }\r\n\r\n render() {\r\n const { sessionT } = this.props;\r\n return (\r\n <div className=\"hub session new\">\r\n <HubSearchInput \r\n submitHandler={ this.handleConnect }\r\n button={ \r\n <Button\r\n icon={ IconConstants.CONNECT }\r\n caption={ sessionT.translate('Connect') }\r\n />\r\n }\r\n />\r\n <Message\r\n description={(\r\n <Trans i18nKey={ sessionT.toI18nKey('favoriteHubsHint') }>\r\n Tip: visit the <Link to=\"/favorite-hubs\">Favorite hubs</Link> page to connect using custom settings\r\n </Trans>\r\n )}\r\n />\r\n <RecentLayout\r\n entryType={ HistoryEntryEnum.HUB }\r\n hasSession={ this.hasSession }\r\n entryTitleRenderer={ this.recentHubRender }\r\n entryIcon=\"sitemap\"\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default HubNew;\r\n","import * as React from 'react';\r\n\r\nimport { TextDecorator } from 'components/text';\r\n\r\nimport SessionLayout from 'routes/Sidebar/components/SessionLayout';\r\n\r\nimport HubSessionStore from 'stores/HubSessionStore';\r\nimport HubUIActions from 'actions/ui/HubActions';\r\nimport HubAPIActions from 'actions/reflux/HubActions';\r\n\r\nimport { hubOnlineStatusToColor } from 'utils/TypeConvert';\r\n\r\nimport HubSession from 'routes/Sidebar/routes/Hubs/components/HubSession';\r\nimport HubNew from 'routes/Sidebar/routes/Hubs/components/HubNew';\r\nimport HubIcon from 'components/icon/HubIcon';\r\n\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport { \r\n SessionProviderDecorator, SessionProviderDecoratorChildProps \r\n} from 'routes/Sidebar/decorators/SessionProviderDecorator';\r\nimport { toI18nKey } from 'utils/TranslationUtils';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\n\r\nconst ItemHandler: UI.SessionInfoGetter<API.Hub> = {\r\n itemNameGetter(session) {\r\n return session.identity.name;\r\n },\r\n\r\n itemStatusGetter(session) {\r\n return hubOnlineStatusToColor(session.connect_state.id);\r\n },\r\n\r\n itemHeaderDescriptionGetter(session) {\r\n return (\r\n <TextDecorator\r\n text={ session.identity.description }\r\n emojify={ true }\r\n />\r\n );\r\n },\r\n\r\n itemHeaderIconGetter(session) {\r\n return <HubIcon hub={ session } />;\r\n },\r\n};\r\n\r\nconst parseNumericId = (params: UI.SessionRouteParams) => {\r\n if (!params.id) {\r\n return null;\r\n }\r\n\r\n return parseInt(params['id']);\r\n};\r\n\r\n//const hubActions = [ 'reconnect', 'favorite', 'clear' ];\r\n\r\nconst Hubs: React.FC<SessionProviderDecoratorChildProps<API.Hub>> = props => {\r\n const { match, t, ...other } = props;\r\n return (\r\n <SessionLayout \r\n activeId={ parseNumericId(match.params) }\r\n baseUrl=\"hubs\"\r\n newCaption={ t(toI18nKey('new', UI.Modules.HUBS), 'Connect') }\r\n newDescription={ t(toI18nKey('newDesc', UI.Modules.HUBS), 'Connect to a new hub') } \r\n newIcon={ IconConstants.HUBS_PLAIN }\r\n editAccess={ API.AccessEnum.HUBS_EDIT }\r\n uiActions={ HubUIActions }\r\n actionIds={[ 'reconnect', 'clear', 'favorite' ]}\r\n sessionApi={ HubAPIActions as UI.SessionActions<API.Hub> }\r\n sessionItemLayout={ HubSession }\r\n newLayout={ HubNew }\r\n t={ t }\r\n unreadInfoStore={ HubSessionStore }\r\n { ...ItemHandler }\r\n { ...other }\r\n />\r\n );\r\n};\r\n\r\nexport default SessionProviderDecorator(Hubs, HubSessionStore);\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","hub","other","icon","connect_state","HubActions","reconnect","displayName","access","IconConstants","handler","data","SocketService","HubConstants","favorite","filter","favorite_hub","notifications","onSuccess","toggleChatNotify","use_main_chat_notify","settings","checked","toggleShowJoins","show_joins","HubActionsDecorated","SessionActionDecorator","ChatActionDecorator","moduleId","actions","HubMessageStore","scroll","SessionScrollPositionKeeper","onSocketConnected","addSocketListener","this","hasMessages","hasInitializedSessions","_onChatMessage","_onStatusMessage","_onSessionUpdated","_onSessionRemoved","MessageStoreDecorator","AccessConstants","_viewName","_apiUrl","_sessionStore","HubSessionStore","mixins","ViewStoreMixin","NickCell","cellData","rowDataGetter","session","text","user","userIcon","remoteMenuId","MenuConstants","entityId","HubUserTable","rowClassNameGetter","flags","join","emptyRowsNodeGetter","sessionT","props","connectState","className","Message","title","translate","Loader","render","VirtualTable","store","HubUserViewStore","sessionStore","Column","name","width","columnKey","flexGrow","cell","propTypes","SocketSubscriptionDecorator","counts","setCounts","useState","share_size","user_count","useEffect","then","catch","error","console","message","url","removeSocketListeners","layoutWidth","useContext","LayoutWidthContext","userlistToggle","users","shared","averageShare","plainT","SessionFooter","EncryptionState","encryption","t","defaultValue","defaultValue_plural","count","replace","total","average","ids","header","itemData","triggerIcon","HubActionPrompt","content","LoginStore","Icon","PasswordPrompt","ActionInput","placeholder","caption","handleAction","password","sendHubPassword","Trans","i18nKey","toI18nKey","RedirectPrompt","Button","onClick","_","acceptHubRedirect","hub_url","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","getStorageKey","checkList","HubSession","Component","state","showList","toggleListState","setState","getMessage","onClickUsers","handleFileUpload","file","undefined","componentDidUpdate","prevProps","sessionApi","uiActions","checkbox","Checkbox","type","onChange","ChatLayout","messageStore","chatApi","chatActions","chatAccess","highlightRemoteMenuId","HubNew","handleConnect","hubUrl","location","hasSession","entry","recentHubRender","HubSearchInput","submitHandler","button","description","to","RecentLayout","entryType","entryTitleRenderer","entryIcon","ItemHandler","itemNameGetter","identity","itemStatusGetter","itemHeaderDescriptionGetter","emojify","itemHeaderIconGetter","HubIcon","SessionProviderDecorator","match","SessionLayout","activeId","params","parseInt","baseUrl","newCaption","newDescription","newIcon","editAccess","actionIds","sessionItemLayout","newLayout","unreadInfoStore"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[673],{16722:e=>{e.exports=JSON.parse('{"widgets":{"application":{"widgetName":"Aplicación","addWidget":"Añadir widget...","loggedInAs":"Conectado como","clientStarted":"Cliente iniciado","activeSessions":"Sesiones activas"},"rss":{"widgetName":"Feed RSS","invalidUrl":"URL inválida","lastUpdated":"Última actualización: {{time}}","actions":{"openLink":"Abrir enlace","search":"Buscar"},"loadingFeed":"Cargando feed","form":{"feedUrlName":"URL del feed","feedUrlHelp":"Se soportan feeds RSS y Atom","feedCacheMinutesName":"Intervalo mínimo de recuperación (minutos)"},"invalidFeed":"Feed no soportado / inválido: {{error}}"},"transfers":{"widgetName":"Transferencias","trafficBps":"Tráfico (bps)","downloads":"Descargas","uploads":"Subidas","downloaded":"Descargado","uploaded":"Subido","downloadLimit":"Límite de descarga","uploadLimit":"Límite de subida"},"notepad":{"widgetName":"Notas"},"extensions":{"widgetName":"Extensiones lanzadas","updatedAgo":"Actualizado {{date}}"},"actions":{"editWidget":"Editar widget","removeWidget":"Eliminar widget","prompts":{"removeApprove":"Eliminar widget","removeReject":"No eliminar","removeContent":"¿Estás seguro de querer eliminar el widget {{item.settings.name}}?"}},"form":{"nameName":"Nombre"},"widgetPositionHint":"Los widgets y su posición son específicos del navegador.","accessDenied":"No se le permite acceder a este widget","settingsMissing":"Faltan los ajustes del widget"},"events":{"events":"Eventos","loadingMessages":"Cargando mensajes","noMessagesToShow":"No hay mensajes que mostrar","actions":{"clear":"Limpiar"},"notifications":{"information":"Información","info":"INFO","warning":"ADVERTENCIA","error":"ERROR","actions":{"viewEvents":"Ver eventos"}}},"table":{"filter":{"filter":"Filtro","matchType":"Tipo de comparación","partial":"Parcial","regex":"Expresión regular","wildcard":"Comodín","exact":"Exacto","filterByProfile":"Filtrar por perfil","allProfiles":"Todos los perfiles"}},"search":{"table":{"name":"Nombre","size":"Tamaño","relevance":"Relevancia","type":"Tipo","connection":"Conexión","users":"Usuarios","time":"Última modificación","slots":"Slots"},"actions":{"resultDetails":"Detalles del resultado","browseContent":"Examinar contenido"},"form":{"fileTypeName":"Tipo de archivo","hubUrlsName":"Hubs","maxSizeName":"Tamaño máximo","minSizeName":"Tamaño mínimo","sizeLimitsName":"Size limits"},"resetAll":"Reiniciar todo","user":"Usuario","hubs":"Hubs","connection":"Conexión","slots":"Slots","ip":"IP","path":"Ruta","searchOffline":"Debe estar conectado a al menos un hub para realizar búsquedas","enterSearchString":"Introducir texto de búsqueda...","search":"Buscar","usersCount":"Usuario ({count}}","usersCount_plural":"Usuarios ({count}}","xUsersNicks":"{{count}} usuario ({{user.nicks}})","xUsersNicks_plural":"{{count}} usuarios ({{user.nicks}})","noResults":"No se han encontrado resultados para \\"{{searchString}}\\"","noResultsHint":"<0><0>Asegúrate de haber escrito las palabras correctamente</0><1>Usa palabras clave diferentes</1><2>Estás buscando muy rápido (los hubs a menudo tienen un intervalo mínimo de búsqueda</2><3>Si no recibes resultados para búsquedas comunes, asegúrate de que tus ajustes de conectividad están configurados correctamente (router, firewall, antivirus y aplicación)</3></0>"},"share":{"table":{"path":"Ruta","size":"Tamaño","virtual_name":"Nombre virtual","profiles":"Perfiles","last_refresh_time":"Última actualización","type":"Contenido","virtualName":"Nombre virtual","lastRefreshTime":"Última actualización"},"actions":{"editDirectory":"Editar directorio","removeDirectory":"Eliminar carpeta","addDirectory":"Añadir directorio","refreshAll":"Actualizar todo","prompts":{"removeRootApprove":"Eliminar carpeta","removeRootReject":"No eliminar","removeRootContent":"¿Estás seguro de que quieres eliminar el directorio {{item.virtual_name}} de tu compartido? Se eliminará de todos los perfiles compartidos."}},"actionsCaption":"Acciones...","shareActions":"Acciones de compartido","hashingInformation":"Información de hasheo","hashingInformationDesc":"<0>Los nuevos archivos aparecerán en tu compartido solo después de que haya finalizado el indexado (el cliente haya calculado las sumas de comprobación para ellos). La información sobre el progreso de indexado se publicará en el registro de eventos.</0>","addShareDirectory":"Añadir directorio para compartir","editShareDirectory":"Editar directorio para compartir","unknown":"Desconocido","form":{"pathName":"Ruta","virtualNameName":"Nombre virtual","virtualNameHelp":"Los directorios con nombres virtuales idénticos se fusionarán en la lista de archivos.","profilesName":"Perfiles de compartido","profilesHelp":"Se pueden crear nuevos perfiles de compartido desde la configuración de la aplicación","incomingName":"Entrante"}},"favoriteHubs":{"actions":{"addNew":"Añadir nuevo","setPassword":"Establecer contraseña","edit":"Editar","remove":"Eliminar","changePassword":"Cambiar contraseña","removePassword":"Eliminar contraseña","prompts":{"changePasswordPlaceholder":"Introducir contraseña","changePasswordApprove":"Actualizar contraseña","changePasswordContent":"Introduzca la nueva contraseña para el hub {{item.name}}","removePasswordApprove":"Eliminar contraseña","removePasswordReject":"No eliminar","removePasswordContent":"¿Estás seguro de querer reiniciar la contraseña del hub {{item.name}}?","createPasswordPlaceholder":"Introducir contraseña","createPasswordApprove":"Establecer contraseña","createPasswordContent":"Establecer la contraseña para el hub {{item.name}}","removeApprove":"Eliminar hub favorito","removeReject":"No eliminar","removeContent":"¿Estás seguro de querer eliminar el hub favorito {{item.name}}?"}},"table":{"connectState":"Estado","name":"Nombre","autoConnect":"Auto conectar","nick":"Nick","hasPassword":"Contraseña","hubUrl":"Dirección","shareProfile":"Perfil de compartido"},"notSet":"No establecido","set":"Establecido","globalDefault":"Global por defecto","addFavoriteHub":"Añadir hub favorito","editFavoriteHub":"Editar hub favorito","form":{"genericName":"Propiedades del hub","nameName":"Nombre","hubUrlName":"URL del hub","hubDescriptionName":"Descipción del hub","shareProfileName":"Perfil de compartido","shareProfileHelp":"Los perfiles de compartido personalizados solo se pueden seleccionar tras entrar a un hub ADC (la dirección empieza por adc:// o adcs://)","autoConnectName":"Auto conectar","userName":"Anulaciones en los ajustes de usuario","nickName":"Nick","userDescriptionName":"Descripción del usuario","connectivityV4Name":"Anulaciones de los ajustes de conectividad (IPv4)","connectionModeV4Name":"Modo de conectividad","connectionModeV4Option-1":"Desactivado","connectionModeV4Option0":"Modo activo","connectionModeV4Option2":"Modo pasivo","connectionIpV4Name":"Dirección IP","connectivityV6Name":"Anulaciones de los ajustes de conectividad (IPv6)","connectionModeV6Name":"Modo de conectividad","connectionModeV6Option-1":"Desactivado","connectionModeV6Option0":"Modo activo","connectionModeV6Option2":"Modo pasivo","connectionIpV6Name":"Dirección IP","miscName":"Anulaciones varias","useMainChatNotifyName":"Usar notificación de chat","awayMessageName":"Mensaje de ausente","showJoinsName":"Mostrar uniones/partes"}},"filelists":{"new":"Abrir lista de archivos","newDesc":"Empezar a navegar por una nueva lista de archivos","offlineMessage":"Debes estar conectado al menos a un hub para poder descargar listas de archivos de otros usuarios","directorySize":"Tamaño del directorio","totalListSize":"Tamaño total de la lista","browseOwnShare":"Navegar por tu propio compartido","root":"Raíz","userOffline":"Usuario desconectado","userOfflineDesc":"Podrás seguir navegando cuando el usuario se vuelva a conectar.","noContentToDisplay":"No hay contenido para mostrar","theDirectoryIsEmpty":"El directorio está vacío","updatingView":"Actualizando vista","downloadFailed":"Descarga fallida","confirmLeave":"Confirm action","confirmLeaveDesc":"Click the back button again to leave this filelist","table":{"name":"Nombre","size":"Tamaño","time":"Última modificación","type":"Tipo"},"actions":{"reload":"Recargar","refreshInShare":"Actualizar en compartidos","close":"Cerrar","details":"Detalles"}},"common":{"actions":{"copy":"Copiar","download":"Descargar","downloadTo":"Descargar a…","findNfo":"Encontrar NFO","search":"Buscar","sendMessage":"Enviar mensaje","browseShare":"Navegar por el compartido","ignoreMessages":"Ignorar mensajes","viewAsText":"Ver como texto","playVideo":"Reproducir video","viewImage":"Ver imagen","playAudio":"Reproducir sonido","copyMagnetLink":"Copiar enlace magnet","shutDownApplication":"Apagar aplicación","restartWebServer":"Reiniciar servidor web","unignoreMessages":"Designorar mensajes","closeAndDontShowAgain":"Cerrar y no volver a mostrar","notifications":{"ignoreUserSuccess":"Se ha añadido al usuario {{item.nicks}} a la lista de usuarios ignorados","unignoreUserSuccess":"Se ha eliminado al usuario {{item.nicks}} de la lista de usuarios ignorados","copyMagnetSuccess":"Enlace magnet copiado al portapapeles","copySuccess":"El texto se ha copiado al portapapeles"},"prompts":{"restartWebSystemApprove":"Continuar y reiniciar","restartWebSystemReject":"No reiniciar","restartWebSystemContent":"Cuando cambies las opciones del enlace, se recomienda reiniciar únicamente el servidor web \\n cuando puedas acceder al servidor para solucionar problemas. Si el servidor web no vuelve a conectarse deberías iniciar la aplicación manualmente \\n para ver si hay mensajes de error. El archivo de configuración está ubicado en tu directorio de usuario por defecto (Dentro del directorio .airdc++) en caso de que necesites editarlo manualmente.","shutdownSystemApprove":"Continuar y apagar","shutdownSystemReject":"Cancelar","shutdownSystemContent":"¿Estás seguro de que deseas cerrar la aplicación?"}},"units":{"b":"B","kib":"KiB","mib":"MiB","gib":"GiB","tib":"TiB","pib":"PiB","eib":"EiB","bits":"bit/s","kbits":"Kbit/s","mbits":"Mbit/s","gbits":"Gbit/s"},"filename":"Nombre de archivo","xBytes":"{{bytes}} bytes","unitsPerSecond":"{{units}}/s","today":"Hoy","yesterday":"Ayer","tomorrow":"Mañana","lastWeek":"{{weekDay}} [pasado]","awayModeWasEnabled":"Se ha activado el modo ausente","awayModeWasDisabled":"Se ha desactivado el modo ausente","actionSucceed":"Acción realizada con éxito","actionFailed":"Acción fallida","queueingFailed":"Fallo al poner en cola el elemento {{item.name}}","noNfoResultsWereReceived":"No se han recibido resultados NFO","networkClientError":"Error de red/cliente","failedToFetchData":"Error al buscar los datos","failedToLoadContent":"Fallo al cargar el contenido","loadingItems":"Cargando elementos","root":"Raíz","name":"Nombre","size":"Tamaño","path":"Ruta","createDirectory":"Cerar directorio","create":"Crear","directoryName":"Nombre del directorio","computer":"Ordenador","history":"Anterior","shared":"Compartido","favorites":"Favoritos","dupes":"Duplicados","browse":"Navegar","download":"Descargar","close":"Cerrar","noPathsToDisplay":"No hay rutas para mostrar","spaceFree":"{{freeSpace}} libres","select":"Seleccionar","new":"Nuevo","currentSessions":"Sesión actual","closeAll":"Cerrar todo","recentSessions":"Sesiones recientes","openedAgo":"Abierto hace {{timeAgo}}","waitingForServerResponse":"Esperando respuesta del servidor","loadingMessages":"Cargando mensajes","loadingSession":"Cargando sesión","yes":"Sí","no":"No","cancel":"Cancelar","loading":"Cargando","loadingData":"Cargando datos...","noOnlineHubs":"No hay hubs en línea","installAsLocalApplication":"Instalar como aplicación local","pwaInstallDesc":"Esta aplicación web se puede instalar localmente, proporcionando una experiencia de usuario mejorada","install":"Instalar","dontInstall":"No instalar","statisticsNotAvailable":"Estadísticas no disponibles","save":"Guardar","enterNick":"Introduzca el nick...","disabled":"Desactivado","enterLimitUnit":"Introducir límite ({{unit}}/s)","enterLimit":"Introducir límite...","removeLimit":"Eliminar límite","tlsOk":"Se ha validado la autenticidad del certificado","tlsOutdatedWarning":"Protocolo de seguridad antiguo con vulnerabilidades conocidas","tlsAuthenticityWarning":"No se ha podido validar la autenticidad del certificado","upload":"Subida","sendFiles":"Enviar archivos","removeSharedFile":"Borrar archivo compartido","fileNoLongerShared":"El archivo {{file.name}} ya no se comparte","fileTooLarge":"El archivo es muy grande (el tamaño máximo es {{maxSize}})","previewIsNotAvailable":"Previsualización no disponible","failedToFetchContent":"Error al buscar el contenido","noItemsToShow":"No hay elementos que mostrar","noSessionEditAccess":"No tienes permiso para abrir una nueva sesión","noChatAccess":"No tienes permiso para enviar nuevos mensajes","loadingSessions":"Cargando sesiones","typeContent":"Tipo/contenido","lastModified":"Última modificación","dupeType":"Tipo de duplicado","shareFull":"Compartido (total)","sharePartial":"Compartido (parcial)","queueFull":"Cola (total)","queuePartial":"Cola (parcial)","finishedFull":"Finalizado (total) ","finishedPartial":"Finalizado (parcial)","shareAndQueue":"Compartir y poner en cola","dupePaths":"Rutas de duplicados","actionsCaption":"Acciones...","tth":"TTH","na":"N/D","noActionsAvailable":"No hay acciones disponibles","continue":"Continuar","form":{"browse":"Navegar","noOptions":"Sin opciones","fieldOptional":"{{definition.title}} (opcional)","minimumValueError":"El valor mínimo permitido es {{value}}","maximumValueError":"El valor máximo permitido es {{value}}","any":"Cualquiera","directory":"Carpeta","file":"&Archivo","add":"Añadir","down":"Bajar","remove":"Eliminar","up":"Subir","offlineMessage":"No hay hubs conectados","loading":"Cargando"}},"hubs":{"table":{"nick":"Nick","shareSize":"Tamaño compartido","description":"Descripción","tag":"Tag","uploadSpeed":" Subida","downloadSpeed":"Bajada","ip4":"IP (v4)","ip6":"IP (v6)","fileCount":"Archivos"},"actions":{"reconnect":"Reconectar","clearChat":"Limpiar chat","close":"Cerrar","addToFavorites":"Añadir a usuarios favoritos","useChatNotification":"Usar notificación de chat","showJoinsParts":"Mostrar uniones/partes","notifications":{"favoriteSuccess":"Se ha agregado el hub {{item.identity.name}} a favoritos"}},"notifications":{"actions":{"viewChat":"Ver chat"}},"notificationSettings":"Ajustes de notificaciones","enterHubAddress":"Introduce la dirección del hub...","connect":"Conectar","notConnectedToTheHub":"No conectado al hub","connecting":"Conectando","loadingUserlist":"Cargando lista de usuarios","favoriteHubsHint":"Consejo: visita la página de <1>hubs favoritos</1> para conectarte usando ajustes personalizados","new":"Conectar","newDesc":"Conectarse a un hub nuevo","userList":"Lista de usuarios","sharePerUser":"{{total}} ({{average}}/usuario)","xUsers":"{{count}} usuarios","xUsers_plural":"{{count}} usuarios","redirectRequested":"Redirección solicitada","acceptRedirect":"Aceptar la redirección a {{url}}","passwordRequired":"Se requiere contraseña","password":"Contraseña","submit":"Enviar","passwordPromptHelp":"Esto normalmente significa que ya hay una cuenta registrada asociada con tu nick. Si no recuerdas haber registrado una cuenta en ese hub, puede que haya otra persona usando el mismo nick."},"queue":{"table":{"name":"Nombre","size":"Tamaño","status":"Estado","sources":"Fuentes","secondsLeft":"Tiempo restante","speed":"Velocidad","priority":"Prioridad","type":"Tipo/contenido","timeAdded":"Añadido","timeFinished":"Acabado"},"actionsCaption":"Acciones...","queueActions":"Acciones en cola","pausedForced":"Pausado (forzado)","queueEmpty":"La cola está vacía","queueEmptyDesc":"Se pueden agregar elementos a la cola desde las búsquedas o las listas de archivos.","actions":{"removeCompletedBundles":"Eliminar paquetes completados","pauseAllBundles":"Pausar todos los paquetes","resumeAllBundles":"Reanudar todos los paquetes","manageFiles":"Administrar archivos...","manageSources":"Administrar fuentes...","searchForeground":"Búsqueda (en primer plano)","searchForAlternates":"Buscar alternativas","remove":"Eliminar","removeSource":"Eliminar fuente de descarga","rescanForErrors":"Reescaneo de errores","forceInShare":"Forzar el compartido","prompts":{"removeBundleApprove":"Eliminar paquete","removeBundleReject":"No eliminar","removeBundleContent":"¿Estás seguro de querer eliminar el paquete {{item.name}}?","removeBundleCheckbox":"Eliminar archivos finalizados","removeFileApprove":"Eliminar archivo","removeFileReject":"No eliminar","removeFileContent":"¿Estás seguro de querer eliminar el archivo {{item.name}}?","removeFileCheckbox":"Eliminar en disco"},"notifications":{"removeFileSuccess":"Se ha eliminado el archivo {{item.name}} de la cola","removeCompletedSuccess":"Se han eliminado {{result.count}} paquetes completados","searchBundleAlternatesSuccess":"Se han buscado alternativas para el paquete {{item.name}}"}},"paused":"Pausado","lowest":"Mínima","low":"Baja","normal":"Normal","high":"Alta","highest":"Máxima","auto":"Auto","sources":"Fuentes","user":"Usuario","hubs":"Hubs","lastKnownSpeed":"Última velocidad conocida","files":"Archivos","size":"Tamaño","notifications":{"bundleWasAddedInQueue":"Se ha añadido el paquete a la cola","bundleDownloadError":"Error de descarga: {{error}}","bundleContentValidationError":"Ha fallado la validación del contenido del paquete: {{error}} ({{hook}})","validatingDownloadedBundle":"Validando paquete descargado","bundleWasCompletedSuccessfully":"El paquete se ha completado con éxito","bundleWasAddedInShare":"El paquete se ha añadido a tu compartido","actions":{"viewQueue":"Ver cola"}}},"transfers":{"table":{"user":"Usuario","name":"Nombre","size":"Segmento","status":"Estado","secondsLeft":"Tiempo restante","speed":"Velocidad","flags":"Flags","ip":"IP"},"actions":{"forceConnect":"Forzar conexión","disconnect":"Desconectar","removeFileFromQueue":"Borrar archivo de la cola","removeUserFromQueue":"Eliminar usuario de la cola","notifications":{"removeFileSuccess":"Se ha eliminado el archivo {{item.name}} de la cola","removeSourceSuccess":"Se ha eliminado al usuario {{item.user.nicks}} de {{result.count}} archivos"}},"noActiveTransfers":"No hay transferencias activas"},"settings":{"actions":{"detectNow":"Detectar ahora","addDirectory":"Añadir directorio","addUser":"Añadir usuario","editUser":"Editar usuario","editDirectory":"Editar directorio","removeDirectory":"Eliminar carpeta","addProfile":"Añadir perfil","browseFiles":"Navegar por archivos","renameProfile":"Renombrar perfil","addPath":"Añadir ruta","removePath":"Eliminar ruta","removeUser":"Eliminar usuario","setAsDefault":"Usar por defecto","removeProfile":"Eliminar perfil","addType":"Añadir tipo","editType":"Editar tipo","removeType":"Eliminar tipo","prompts":{"createProfilePlaceholder":"Enter name","createProfileApprove":"Crear","createProfileContent":"Enter name for the profile","editProfilePlaceholder":"Enter name","editProfileApprove":"Renombrar","editProfileContent":"Enter new name for the profile {{item.name}}","removeShareExcludeApprove":"Eliminar ruta","removeShareExcludeReject":"No eliminar","removeShareExcludeContent":"¿Estás seguro de querer eliminar la ruta excluida {{item}}?","removeWebUserApprove":"Eliminar usuario","removeWebUserReject":"No eliminar","removeWebUserContent":"¿Estás seguro de querer eliminar al usuario {{item.username}}?","removeFavoriteDirectoryApprove":"Eliminar carpeta","removeFavoriteDirectoryReject":"No eliminar","removeFavoriteDirectoryContent":"¿Estás seguro de querer eliminar la carpeta favorita {{item.name}}?","removeSearchTypeApprove":"Eliminar tipo","removeSearchTypeReject":"No eliminar","removeSearchTypeContent":"¿Estás seguro de querer eliminar el tipo de búsqueda {{item.name}}?"}},"navigation":{"profile":"Perfil","connectivity":"Conectividad","speedAndLimits":"Velocidad y límites","downloads":"Descargas","sharing":"Compartir","view":"Ver","about":"Acerca de","extensions":"Extensiones","extensionEngines":"Extension engines","system":"Sistema","autoDetection":"Auto-detección","iPv4ConnectivityManual":"Conectividad IPv4 (manual)","iPv6ConnectivityManual":"Conectividad IPv6 (manual)","portsManual":"Puertos (manual)","proxies":"Proxies","encryption":"Cifrado","user":"Usuario","awayMode":"Modo ausente","ignoredUsers":"Usuario(s) ignorado(s)","miscellaneous":"Misceláneas","manageInstalled":"Administrar instaladas","extensionCatalog":"Catálogo de extensiones","extensionOptions":"Opciones de extensiones","application":"Aplicación","transferStatistics":"Estadísticas de transferencia","shareStatistics":"Estadísticas de compartido","hubStatistics":"Estadísticas de hub","users":"Usuarios","logging":"Registros","webServer":"Servidor web","advancedServerSettings":"Advanced server settings","refreshOptions":"Actualizar opciones","shareProfiles":"Perfiles de compartido","sharingOptions":"Opciones de compartir","hashing":"Hasheando","excludedPaths":"Rutas excluidas","connectionSpeed":"Velocidad de conexión","bandwidthLimiting":"Limitación del ancho de banda","downloadLimits":"Límites de descarga","uploadLimits":"Límites de subida","perUserLimits":"Límites por usuario","locations":"Ubicaciones","skippingOptions":"Opciones de omisión","searchMatching":"Coincidencias de búsquedas","searchTypes":"Tipos de búsqueda","downloadOptions":"Opciones de descarga","priorities":"Prioridades","notificationsCaption":"Notificaciones","histories":"Historial","events":"Eventos","appearance":"Apariencia"},"advanced":"Avanzado","noUnsavedChanges":"No hay cambios sin guardar","noSavePermission":"Sin permiso de guardado","saveChanges":"Guardar cambios","savingCompleted":"Guardado completado","settingsWereSavedSuccessfully":"Los ajustes se han guardado correctamente","unsavedChangesPrompt":"Tienes cambios sin guardar. ¿Seguro que quieres salir?","connectivity":{"detection":{"connectivityDetectionNote":"En caso de que haya problemas de conectividad en la transferencia de archivos, por favor confirma que tus puertos TCP están abiertos usando <1>un comprobador de puertos online</1>. Ten en cuenta que los puertos UDP no se pueden comprobar online. Para más información sobre los distintos modos de conectividad, por favor visita <4>el FAQ de conectividad de DC++</4>.","currentAutoDetectionStatus":"Estado actual de la auto-detección","iPv4Connectivity":"Conectividad IPv4","iPv6Connectivity":"Conectividad IPv6","manualConfiguration":"{{status}} (configuración manual)","autoDetected":"{{status}} (auto detectada)","detecting":"Detectando..."},"ports":{"portsAutoValuesNote":"Los números de puertos, listados en esta página, se pueden anular por los mapeadores de puertos (si está habilitado)","form":{"tcpPortHelp":"El puerto TCP se usa para transferencias sin cifrar","udpPortHelp":"El puerto UDP se usa para las búsquedas","tlsPortHelp":"El puerto TLS (TCP) se usa para transferencias cifradas"}},"v6":{"protocolAutoValuesNote":"La detección automática de conectividad está activada actualmente; los valores de los ajustes listados en esta página no se usan."},"v4":{"protocolAutoValuesNote":"La detección automática de conectividad está activada actualmente; los valores de los ajustes listados en esta página no se usan."}},"profile":{"user":{"form":{"settingProfileHelp0":"El cliente se usa en hubs normales privados/públicos para transferir archivos vía Internet. Usa este perfil si no estás seguro.","settingProfileHelp1":"El cliente se usa para transferir archivos que están partidos en archivos RAR (o en otros formatos de tamaño pequeño)","settingProfileHelp2":"El cliente se usa para transferir archivos en la red local (por ejemplo LAN parties) o en otras redes cerradas (por ejemplo la red de una universidad)","languageFileHelp":"<0>Se debe reiniciar la aplicación para que el cambio de idioma tenga efecto.</0><1>Si quieres ayudar a mejorar las traducciones existentes o traducir la aplicación a un idioma nuevo, por favor lee las <1>instrucciones para traductores.</1>"}},"ignoredUsers":{"user":"Usuario","messagesIgnored":"Mensajes ignorados","noIgnoredUsers":"No hay usuarios ignorados"},"miscellaneous":{"form":{"nmdcEncodingHelp":"<0>Los ajustes de codificación solo se usan en hubs NMDC. Los hubs ADC siempre usarán codificación UTF-8.<1></1><2></2><3>Valores usados normalmente:<1><0>Europa central: cp1250</0><1>Cirílico: cp1251</1><2>Europa occidental: cp1252</2><3>Griego: cp1253</3><4>Turco: cp1254</4><5>Hebreo: cp1256</5></1></3></0>"}}},"extensions":{"packages":{"byAuthor":"por {{author}}","latestVersion":"Última versión","installedVersion":"Versión instalada","datePublished":"{{version}} (publicada el {{date}})","readMore":"Leer más","defaultExtensionEngineMissing":"El motor de extensiones por defecto <1>node</1>no está instalado en su sistema. Por favor visita <3>engine\'s home page</3> para seguir las instrucciones de instalación.","manage":"Administrar..."},"manage":{"byAuthor":"por {{author}}","latestVersion":"Última versión","installedVersion":"Versión instalada","nonListedExtension":"Extensión no listada","readMore":"Leer más","noInstalledExtensions":"Se han encontrado extensiones no instaladas. Las extensiones nuevas se pueden instalar desde la página del <1>Catálogo de extensiones</1>.","defaultExtensionEngineMissing":"El motor de extensiones por defecto <1>node</1>no está instalado en su sistema. Por favor visita <3>engine\'s home page</3> para seguir las instrucciones de instalación.","extensionDirectoryFetchError":"Fallo al buscar la información en el directorio de extensiones: {{error}}","unmanagedExtension":"Extensión no administrada","manage":"Administrar..."}},"about":{"application":{"applicationVersion":"Versión de la aplicación","webUiVersion":"Versión de Web UI","webUiBuildDate":"Fecha de compilación de Web UI","apiVersion":"Versión de la API","apiFeatureLevel":"Nivel de características de la API","started":"Iniciado","activeSessions":"Sesiones activas","serverThreads":"Hilos del servidor","resources":"Recursos","homePage":"Página de inicio","featureRequestBugTracker":"Solicitud de funciones/seguidor de errores","documentation":"Documentación","thirdPartyCredits":"Créditos de terceros"},"transfers":{"totalDownloaded":"Total descargado","totalUploaded":"Total subido","session":"Sesión","sessionDownloaded":"Descargado en la sesión","sessionUploaded":"Subido en la sesión"},"share":{"noFilesShared":"No hay archivos compartidos","totalShareSize":"Tamaño total compartido","totalFiles":"Archivos totales","totalFilesValue":"{{totalCount}} ({{uniqueCount}} únicos)","totalDirectories":"Directorios totales","averageFileAge":"Edad media de los archivos","averageFilesPerDirectory":"Media de archivos por directorio","incomingSearches":"Búsquedas entrantes","totalSearches":"Búsquedas totales","searchesTotalValue":"{{totalCount}} ({{perSecondCount}} por segundo)","tthSearches":"Búsquedas TTH","textSearches":"Búsquedas de texto","searchesPerSecondValue":"{{totalCount}} ({{matchedCount}} coincidencias por segundo)","filteredTextSearches":"Búsquedas filtradas por texto","searchesFilteredValue":"{{filteredPercentage}} ({{resultPercentage}} de las que tenían coincidencias han devuelto resultados)","averageTextSearchTokensNonFiltered":"Media de tokens de búsqueda de texto (sin filtrar)","searchesAverageTokensValue":"{{tokenCount}} ({{tokenLength}} bytes por token)","averageMatchingTimePerTextSearch":"Tiempo medio de coincidencia por búsqueda de texto","searchesAverageMatchTimeValue":"{{matchTime}} ms"},"hubs":{"noHubsOnline":"No hay hubs en línea","totalUsers":"Usuarios totales","uniqueUsers":"Usuarios únicos","activeUsers":"Usuarios activos","totalShare":"Total compartido","averageSharePerUser":"Compartido medio por usuario","averageAdcDownloadSpeed":"Velocidad media de descarga ADC","clients":"Clientes","averageAdcUploadSpeed":"Velocidad media de subida ADC"}},"system":{"logging":{"messages":"Mensajes","transfers":"Transferencias","variableHelp":"Información variable para los campos Nombre de archivo y Formato"},"serverSettings":{"defaultCertNote":"El certificado de cliente por defecto se usa si las rutas de certificado están vacías"},"advancedServerSettings":{"hookTimeouts":"Hook timeouts"},"users":{"username":"Nombre de usuario","permissions":"Permisos","activeSessions":"Sesiones activas","lastLoggedIn":"Último inicio de sesión","administrator":"Administrador","form":{"usernameName":"Nombre de usuario","passwordName":"Contraseña","permissionsName":"Permisos"},"permissionSelector":{"administrator":"Administrador","search":"Buscar","download":"Descargar","transfers":"Transferencias","events":"Eventos","view":"Ver","edit":"Editar","queue":"Cola","favoriteHubs":"Hubs favoritos","settings":"Ajustes","localFilesystem":"Sistema de archivos local","hubs":"Hubs","sendMessages":"Enviar mensajes","privateChat":"Chat privado","filelists":"Lista de archivos","viewedFiles":"Archivos vistos"},"addWebUser":"Añadir usuario web","editUser":"Editar usuario","adminPermissionNote":"Se requieren permisos de administrador para acceder a la sección Sistema de los ajustes"}},"sharing":{"excludes":{"shareRefreshNote":"Se debe actualizar el compartido para que los cambios surtan efecto","addExcludedPath":"Añadir ruta excluida","path":"Ruta"},"profiles":{"name":"Nombre","totalSize":"Tamaño total","totalFiles":"Archivos totales","shareProfilesNote":"<0>Los archivos en cola se comparten mediante la función de compartir archivos parciales en todos los hubs en los que el contenido compartido no se haya ocultado, a pesar de la configuración de los perfiles de compartido.</0><1>Los perfiles de compartido se asignan individualmente para los directorios desde la <1>página</1> Compartir</1>"},"sharingOptions":{"skiplist":"Archivos a no compartir"},"hashing":{"hashDatabase":"Base de datos de hasheo","fileIndexSize":"Tamaño del índice de archivos","hashStoreSize":"Tamaño del almacén hash","maintenance":"Mantenimiento","verifyIntegrityOfHashData":"Verificar integridad de los datos hash","optimizeNow":"Optimizar ahora","hashDBOptimizeNote":"Esta operación borrará toda la información de hash de los archivos que no estén compartidos actualmente. Si compartes archivos desde discos en red o desde un medio de almacenamiento extraíble, asegúrate de que los archivos se muestran en tu compartido (si no es así tendrás que volver a hashearlos)"}},"speedLimits":{"speed":{"connectionSpeedNote":"Por favor, sé lo más preciso que puedas y establece la velocidad REAL de tu conexión. Puedes usar un comprobador online, como <1>Speedtest.net</1>, para probar tu velocidad."},"uploadLimits":{"manuallySet":"Ajustar manualmente"},"downloadLimits":{"manuallySet":"Ajustar manualmente"}},"downloads":{"locations":{"availablePathVariables":"Variables de rutas disponible","favoriteDownloadDirectories":"Carpetas de descargas favoritas","name":"Nombre","path":"Ruta","form":{"pathName":"Ruta","nameName":"Nombre"},"addFavoriteDirectory":"Añadir directorio favorito","editFavoriteDirectory":"Editar directorio favorito"},"skippingOptions":{"skiplist":"Archivos a no compartir"},"priorities":{"filePriorities":"Prioridades de archivos","highPriorityFiles":"Archivos con prioridad alta"},"searchTypes":{"name":"Nombre","fileExtensions":"Extensiones de archivo","default":"Por defecto","searchTypesNote":"Nota: ¡Los tipos de búsqueda personalizados solo se aplican a hubs ADC! En hubs NMDC, al utilizar un tipo de búsqueda predefinida solo buscará un conjunto de extensiones predefinidas y no configurables; al usar un tipo de búsqueda personalizado se buscará cualquier extensión.","form":{"nameName":"Nombre","extensionsName":"Extensiones de archivo"},"addSearchType":"Añadir tipo de búsqueda","editSearchType":"Editar tipo de búsqueda"},"downloadOptions":{"segments":"Segmentos","compression":"Compression","buffers":"Buffers"}},"browserSpecificNote":"Los ajustes listados en esta página son específicos para el navegador","view":{"notifications":{"popupNotifications":"Notificaciones emergentes","form":{"notifyMentionMyNickName":"Menciones de mi nick","notifyPmUserName":"Mensajes privados (usuarios)","notifyPmBotName":"Mensajes privados (bots)","notifyHubMessageName":"Mensajes de chat del hub (solo en los hubs donde las notificaciones están activadas)","notifyBundleStatusName":"Cambios de estado en los paquetes","notifyEventsInfoName":"Eventos de información","notifyEventsWarningName":"Eventos de aviso","notifyEventsErrorName":"Eventos de error"}},"histories":{"maxMessageHistory":"Número máximo de mensajes a cachear","maxSessionHistory":"Número máximo de sesiones abiertas anteriormente"},"miscellaneous":{"form":{"unreadLabelDelayName":"Retraso para marcar sesiones de chat como leídas (segundos)","backgroundImageUrlName":"URL para imagen de fondo personalizada","noInstallPromptName":"No mostrar el indicador de instalación de la aplicación en la vista de Inicio"}}}},"extensions":{"actions":{"uninstall":"Desinstalar","start":"Comenzar","installFromUrl":"Instalar desde URL","install":"Instalar","update":"Actualizar","stop":"Parar","configure":"Configurar","prompts":{"installUrlPlaceholder":"Introducir URL","installUrlApprove":"Instalar","installUrlContent":"Introducir URL de descarga","removeApprove":"Eliminar extensión","removeReject":"No eliminar","removeContent":"¿Está seguro de que desea eliminar la extensión {{item.name}}? Esto también eliminará posibles ajustes específicos de la conexión."}}},"navigation":{"home":"Inicio","queue":"Cola","search":"Buscar","transfers":"Transferencias","hubs":"Hubs","messages":"Mensajes","filelists":"Lista de archivos","files":"Archivos","events":"Eventos","favoriteHubs":"Hubs favoritos","share":"Compartir","settings":"Ajustes","logout":"Cerrar sesión","more":"Más..."},"login":{"username":"Nombre de usuario","password":"Contraseña","keepMeLoggedIn":"Mantenerme conectado","login":"Iniciar sesión","authenticationFailed":"Autenticación fallida: {{lastError}}","connectingToTheServer":"Conectando al servidor...","reestablishConnection":"Intentando restablecer la conexión...","sessionLost":"Sesión perdida","connectionClosed":"Conexión cerrada","privateBrowsingNotSupported":"Este sitio no se puede usar con su navegador si el modo de navegación privada está habilitado","dataStorageNotSupported":"Este sitio no se puede usar con su navegador porque no admite el almacenamiento de datos"},"viewedFiles":{"actions":{"close":"Cerrar"},"noFiles":"No hay ficheros para ver","noFilesDesc":"Puedes abrir archivos de texto o multimedia para verlos aquí desde la búsqueda o la lista de archivos","preparingView":"Preparando vista","opened":"Abierto","downloaded":"Descargado","unsupportedFormat":"Formato no soportado","downloadFailed":"Descarga fallida","notifications":{"fileHasFinishedDownloading":"El archivo ha terminado de descargarse","fileWasLoaded":"File was loaded","actions":{"viewFile":"Ver archivo"}}},"messages":{"actions":{"clearChat":"Limpiar chat","close":"Cerrar","connect":"Conectar","disconnect":"Desconectar"},"new":"Nueva sesión","newDesc":"Abrir una nueva sesión de chat privada","offlineMessage":"Debes estar conectado como mínimo a un hub para enviar mensajes privados","directEncryptedChannelAvailable":"Canal directo cifrado disponible","establishingConnection":"Estableciendo conexxión","directEncryptedChannelEstablished":"Conexión directa cifrada establecida","notifications":{"actions":{"viewMessage":"Ver mensaje"}}},"home":{"newUserIntro":"Información para un usuario nuevo","newUserIntroDesc":"<0><0>Añade algunos directorios para compartirlos con los demás en la <1>página</1> Compartir.</0><1>Seguramente quieras echar un vistazo a cada página principal en <1>los ajustes del cliente</1> antes de empezar. <3>Es importante que <1>configures tu velocidad de conexión </1> correctamente para que el cliente pueda utilizar tu ancho de banda eficientemente.</3></1><2>Todavía no hay un listado de hubs públicos, por lo que necesitas saber la dirección de los hubs a los que te quieres conectar.</2></0><1>Visita la <1>página de inicio</1> para obtener más información sobre el cliente y sus funciones.</1><2>Si tienes preguntas, puedes plantearlas en el <1>tracker de GitHubr</1> o unirte al hub de desarrollo y soporte: <3></3></2>"},"hash":{"actions":{"pause":"Pausar","resume":"Reanudar","stop":"Parar"},"status":"Estado","paused":"Pausado","filesLeft":"Archivos restantes","maximumSpeedPerHasher":"Velocidad máxima por hasheador","runningThreads":"Ejecutando ({{threadCount}} hilos)","speed":"Velocidad","timeLeft":"Tiempo restante","idle":"En espera","hashProgress":"Progreso del hasheo"}}')}}]);
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[293],{52365:e=>{e.exports=JSON.parse('{"widgets":{"application":{"widgetName":"Application","addWidget":"Ajouter un widget...","loggedInAs":"Connecté en tant que","clientStarted":"Client démarré","activeSessions":"Sessions actives"},"rss":{"widgetName":"Flux RSS","invalidUrl":"URL invalide","lastUpdated":"Mis à jour : {{time}}","actions":{"openLink":"Ouvrir le lien","search":"Recherche"},"loadingFeed":"Chargement des flux","form":{"feedUrlName":"URL du flux","feedUrlHelp":"Les flux Atom et RSS sont supportés","feedCacheMinutesName":"Minimum refetch interval (minutes)"},"invalidFeed":"Invalid/unsupported feed: {{error}}"},"transfers":{"widgetName":"Transferts","trafficBps":"Bande passante (bps)","downloads":"Téléchargements","uploads":"Envois","downloaded":"Téléchargé","uploaded":"Envoyé","downloadLimit":"Limite de téléchargement","uploadLimit":"Limite d\'envoi"},"notepad":{"widgetName":"Notes"},"extensions":{"widgetName":"Extension releases","updatedAgo":"Updated {{date}}"},"actions":{"editWidget":"Éditer le widget","removeWidget":"Retirer le widget","prompts":{"removeApprove":"Retirer le widget","removeReject":"Ne pas retirer","removeContent":"Êtes-vous sûr de vouloir retirer le widget {{item.settings.name}} ?"}},"form":{"nameName":"Nom"},"widgetPositionHint":"Les widgets et leurs positions sont spécifiques au navigateur","accessDenied":"You aren\'t allowed to access this widget","settingsMissing":"Widget settings missing"},"events":{"events":"Événements","loadingMessages":"Chargement des messages","noMessagesToShow":"Aucun nouveau message","actions":{"clear":"Effacer"},"notifications":{"information":"Information","info":"INFO","warning":"AVERTISSEMENT","error":"ERREUR","actions":{"viewEvents":"Voir les événements"}}},"table":{"filter":{"filter":"Filtrer","matchType":"Type à comparer","partial":"Partiel","regex":"RegEx","wildcard":"Wildcard","exact":"Exact","filterByProfile":"Filtrer par profil","allProfiles":"Tous les profils"}},"search":{"table":{"name":"Nom","size":"Taille","relevance":"Pertinence","type":"Type","connection":"Connexion","users":"Utilisateurs","time":"Dernière modification","slots":"Slots"},"actions":{"resultDetails":"Détails des résultats","browseContent":"Browse content"},"form":{"fileTypeName":"type de fichier","hubUrlsName":"Hubs","maxSizeName":"Maximum size","minSizeName":"Minimum size","sizeLimitsName":"Size limits"},"resetAll":"Reset all","user":"Utilisateur","hubs":"Hubs","connection":"Connexion","slots":"Slots","ip":"IP","path":"Chemin","searchOffline":"Vous devez être connecté à au moins un hub pour pouvoir effectuer une recherche.","enterSearchString":"Entrez votre recherche...","search":"Recherche","usersCount":"Utilisateur ({{count}})","usersCount_plural":"Utilisateurs ({{count}})","xUsersNicks":"{{count}} user ({{user.nicks}})","xUsersNicks_plural":"{{count}} users ({{user.nicks}})","noResults":"Pas de résultat pour \\"{{searchString}}\\"","noResultsHint":"<0><0>Ensure that you spelled the words correctly</0><1>Use different keywords</1><2>You are searching too frequently (hubs often have a minimum search interval)</2><3>If you never receive results for common search terms, make sure that your connectivity settings are configured properly</3></0>"},"share":{"table":{"path":"Chemin","size":"Taille","virtual_name":"Nom virtuel","profiles":"Profils","last_refresh_time":"Dernier rafraîchissement","type":"Contenu","virtualName":"Nom virtuel","lastRefreshTime":"Dernier rafraîchissement"},"actions":{"editDirectory":"Éditer un dossier","removeDirectory":"Supprimer le dossier","addDirectory":"Ajouter un dossier","refreshAll":"Tout rafraîchir","prompts":{"removeRootApprove":"Supprimer le dossier","removeRootReject":"Ne pas retirer","removeRootContent":"Are you sure that you want to remove the directory {{item.virtual_name}} from share? It will be removed from all share profiles."}},"actionsCaption":"Actions…","shareActions":"Share actions","hashingInformation":"Hashing information","hashingInformationDesc":"<0>New files will appear in share only after they have finished hashing (the client has calculated checksums for them). Information about hashing progress will be posted to the event log.</0>","addShareDirectory":"Ajouter un dossier à partager","editShareDirectory":"Éditer un dossier à partager","unknown":"Inconnu","form":{"pathName":"Chemin","virtualNameName":"Nom virtuel","virtualNameHelp":"Directories with identical virtual names will be merged in filelist","profilesName":"Profiles de partage","profilesHelp":"New share profiles can be created from application settings","incomingName":"Réception"}},"favoriteHubs":{"actions":{"addNew":"Add new","setPassword":"Entrer le mot de passe","edit":"Modif.","remove":"Retirer","changePassword":"Changer de mot de passe","removePassword":"Retirer le mot de passe","prompts":{"changePasswordPlaceholder":"Entrer le mot de passe","changePasswordApprove":"Mettre à jour le mot de passe","changePasswordContent":"Enter new password for the hub {{item.name}}","removePasswordApprove":"Retirer le mot de passe","removePasswordReject":"Ne pas retirer","removePasswordContent":"Are you sure that you want to reset the password of the hub {{item.name}}?","createPasswordPlaceholder":"Entrer le mot de passe","createPasswordApprove":"Entrer le mot de passe","createPasswordContent":"Set password for the hub {{item.name}}","removeApprove":"Remove favorite hub","removeReject":"Ne pas retirer","removeContent":"Are you sure that you want to remove the favorite hub {{item.name}}?"}},"table":{"connectState":"State","name":"Nom","autoConnect":"Connexion auto","nick":"Pseudo","hasPassword":"Mot de passe","hubUrl":"Adresse","shareProfile":"Profil de partage"},"notSet":"Non défini","set":"Définir","globalDefault":"Global default","addFavoriteHub":"Ajouter un hub favori","editFavoriteHub":"Edit favorite hub","form":{"genericName":"Propriétés de hub","nameName":"Nom","hubUrlName":"URL du hub","hubDescriptionName":"Description du hub","shareProfileName":"Profil de partage","shareProfileHelp":"Custom share profiles can be selected only after entering an ADC hub address (starting with adc:// or adcs://)","autoConnectName":"Connexion auto","userName":"User setting overrides","nickName":"Pseudo","userDescriptionName":"Description utilisateur","connectivityV4Name":"Connectivity setting overrides (IPv4)","connectionModeV4Name":"Mode de connectivité","connectionModeV4Option-1":"Désactivé","connectionModeV4Option0":"Mode actif","connectionModeV4Option2":"Mode passif","connectionIpV4Name":"Adresse IP","connectivityV6Name":"Connectivity setting overrides (IPv6)","connectionModeV6Name":"Mode de connectivité","connectionModeV6Option-1":"Désactivé","connectionModeV6Option0":"Mode actif","connectionModeV6Option2":"Mode passif","connectionIpV6Name":"Adresse IP","miscName":"Miscellaneous overrides","useMainChatNotifyName":"Use chat notification","awayMessageName":"Away message","showJoinsName":"Show joins/parts"}},"filelists":{"new":"Ouvrir la liste de fichiers","newDesc":"Start browsing a new filelist","offlineMessage":"You must to be connected to at least one hub in order to download filelists from other users","directorySize":"Taille du répertoire","totalListSize":"Total list size","browseOwnShare":"Parcourir sa propre liste...","root":"Root","userOffline":"Utilisateur déconnecté","userOfflineDesc":"You will be able to continue browsing when the user comes back online","noContentToDisplay":"Pas de contenu à afficher","theDirectoryIsEmpty":"Le dossier est vide","updatingView":"Updating view","downloadFailed":"Téléchargement échoué","confirmLeave":"Confirm action","confirmLeaveDesc":"Click the back button again to leave this filelist","table":{"name":"Nom","size":"Taille","time":"Dernière modification","type":"Type"},"actions":{"reload":"Recharger","refreshInShare":"Rafraîchir le partageur","close":"Fermer","details":"Details"}},"common":{"actions":{"copy":"Copier","download":"Réception","downloadTo":"Télécharger vers...","findNfo":"Trouver le NFO","search":"Recherche","sendMessage":"Envoyer un message","browseShare":"Parcourir le dossier de partage","ignoreMessages":"Ignorer les messages","viewAsText":"Afficher comme texte","playVideo":"Visualiser la vidéo","viewImage":"Voir l\'image","playAudio":"Jouer le son","copyMagnetLink":"Copier le lien magnet","shutDownApplication":"Quitter l\'application","restartWebServer":"Redémarrer le serveur web","unignoreMessages":"Ne plus ignorer les messages","closeAndDontShowAgain":"Fermer et ne plus afficher","notifications":{"ignoreUserSuccess":"L\'utilisateur {{item.nicks}} est maintenant ignoré","unignoreUserSuccess":"L\'utilisateur {{item.nicks}} n\'est maintenant plus ignoré","copyMagnetSuccess":"Magnet link was copied to clipboard","copySuccess":"Text was copied to clipboard"},"prompts":{"restartWebSystemApprove":"Continuer et redémarrer","restartWebSystemReject":"Ne pas redémarrer","restartWebSystemContent":"When changing the binding options, it\'s recommended to restart the web server only \\n when you are able to access the server for troubleshooting. If the web server won\'t come back online, you should start the application \\n manually to see if there are any error messages. The configuration file is located in your user directory by default (inside .airdc++ directory) in case you need to edit it manually.","shutdownSystemApprove":"Continuer et arrêter","shutdownSystemReject":"Annuler","shutdownSystemContent":"Are you sure that you wish to shut down the application?"}},"units":{"b":"B","kib":"Ko","mib":"Mo","gib":"Go","tib":"To","pib":"PiB","eib":"EiB","bits":"bit/s","kbits":"Kbit/s","mbits":"Hashing","gbits":"Gbit/s"},"filename":"Fichier","xBytes":"{{bytes}} bytes","unitsPerSecond":"{{units}}/s","today":"Today","yesterday":"Yesterday","tomorrow":"Tomorrow","lastWeek":"[Last] {{weekDay}}","awayModeWasEnabled":"Le mode Absent est activé","awayModeWasDisabled":"Le mode Absent est désactivé","actionSucceed":"Action succeed","actionFailed":"L\'action a échoué","queueingFailed":"Failed to queue the item {{item.name}}","noNfoResultsWereReceived":"No NFO results were received","networkClientError":"Erreur de réseau/client","failedToFetchData":"Failed to fetch data","failedToLoadContent":"Failed to load content","loadingItems":"Loading items","root":"Root","name":"Nom","size":"Taille","path":"Chemin","createDirectory":"Créer un répertoire","create":"Créer","directoryName":"Nom du répertoire","computer":"Ordinateur","history":"Précédent","shared":"Partagé","favorites":"Favoris","dupes":"Dupes","browse":"Parcourir","download":"Réception","close":"Fermer","noPathsToDisplay":"No paths to display","spaceFree":"{{freeSpace}} free","select":"Sélectionner","new":"Nouveau","currentSessions":"Sessions actuelles","closeAll":"Tout fermer","recentSessions":"Sessions récentes","openedAgo":"Opened {{timeAgo}}","waitingForServerResponse":"Waiting for server response","loadingMessages":"Chargement des messages","loadingSession":"Loading session","yes":"Oui","no":"Non","cancel":"Annuler","loading":"Chargement","loadingData":"Chargement des données","noOnlineHubs":"Aucun hub en ligne","installAsLocalApplication":"Installer en tant qu’application locale","pwaInstallDesc":"This web application can be installed locally, providing a better user experience","install":"Installer","dontInstall":"Ne pas installer","statisticsNotAvailable":"Statistics not available","save":"Sauvegarder","enterNick":"Entrer un pseudo","disabled":"Désactivé","enterLimitUnit":"Enter limit ({{unit}}/s)","enterLimit":"Entrer les limites…","removeLimit":"Retirer les limites","tlsOk":"Authenticity of the certificate is validated","tlsOutdatedWarning":"Outdated cryptographic protocol with known security vulnerabilities","tlsAuthenticityWarning":"Authenticity of the certificate could not be validated","upload":"Envoi","sendFiles":"Send files","removeSharedFile":"Remove shared file","fileNoLongerShared":"File {{file.name}} is no longer shared","fileTooLarge":"File is too large (maximum size is {{maxSize}})","previewIsNotAvailable":"Preview is not available","failedToFetchContent":"Failed to fetch content","noItemsToShow":"No items to show","noSessionEditAccess":"You aren\'t allowed to open new sessions","noChatAccess":"You aren\'t allowed to send new messages","loadingSessions":"Loading sessions","typeContent":"Type/contenu","lastModified":"Dernière modification","dupeType":"Dupe type","shareFull":"Share (full)","sharePartial":"Share (partial)","queueFull":"Queue (full)","queuePartial":"Queue (partial)","finishedFull":"Finished (full)","finishedPartial":"Finished (partial)","shareAndQueue":"Share and queue","dupePaths":"Dupe paths","actionsCaption":"Actions…","tth":"TTH","na":"N/A","noActionsAvailable":"No actions available","continue":"Continue","form":{"browse":"Parcourir","noOptions":"Pas d\'options","fieldOptional":"{{definition.title}} (optionnel)","minimumValueError":"Minimum allowed value is {{value}}","maximumValueError":"Maximum allowed value is {{value}}","any":"Tous","directory":"Dossier","file":"&Fichier","add":"Ajouter","down":"Down","remove":"Retirer","up":"Up","offlineMessage":"No connected hubs","loading":"Chargement"}},"hubs":{"table":{"nick":"Pseudo","shareSize":"Taille du dossier de partage","description":"Description","tag":"Tag","uploadSpeed":"Vitesse d\'envoi","downloadSpeed":"Vitesse de réception","ip4":"IP (v4)","ip6":"IP (v6)","fileCount":"Fichiers"},"actions":{"reconnect":"Se reconnecter","clearChat":"Effacer la discussion","close":"Fermer","addToFavorites":"Ajouter aux Favoris","useChatNotification":"Use chat notification","showJoinsParts":"Show joins/parts","notifications":{"favoriteSuccess":"The hub {{item.identity.name}} was added in favorites"}},"notifications":{"actions":{"viewChat":"View chat"}},"notificationSettings":"Notification settings","enterHubAddress":"Entrer l\'adresse du hub","connect":"Se connecter","notConnectedToTheHub":"Pas connecter au hub","connecting":"En cours de connexion","loadingUserlist":"Loading userlist","favoriteHubsHint":"Tip: visit the <1>Favorite hubs</1> page to connect using custom settings","new":"Se connecter","newDesc":"Connect to a new hub","userList":"Liste d\'utilisateurs","sharePerUser":"{{total}} ({{average}}/user)","xUsers":"{{count}} utilisateurs","xUsers_plural":"{{count}} utilisateurs","redirectRequested":"Redirect requested","acceptRedirect":"Accept redirect to {{url}}","passwordRequired":"Mot de passe requis","password":"Mot de passe","submit":"Submit","passwordPromptHelp":"This usually means that there\'s a registered account associated with your nick. If you don\'t remember having a registered account in this hub, there may be someone else using the same nick."},"queue":{"table":{"name":"Nom","size":"Taille","status":"État","sources":"Sources","secondsLeft":"Temps restant","speed":"Vitesse","priority":"Priorité","type":"Type/contenu","timeAdded":"Ajouté","timeFinished":"Terminé"},"actionsCaption":"Actions…","queueActions":"Actions de la fille d\'att.","pausedForced":"Pause (forcé)","queueEmpty":"La file d\'attente est vide","queueEmptyDesc":"New items can be queued from search or filelists","actions":{"removeCompletedBundles":"Remove completed bundles","pauseAllBundles":"Mettre en pause tous les paquets","resumeAllBundles":"Reprendre tous les paquets","manageFiles":"Gérer les fichiers…","manageSources":"Gérer les sources…","searchForeground":"Rechercher (nouvelle fenêtre)","searchForAlternates":"Rechercher d\'autres sources","remove":"Retirer","removeSource":"Retirer la source","rescanForErrors":"Rescan for errors","forceInShare":"Force in share","prompts":{"removeBundleApprove":"Retirer le paquet","removeBundleReject":"Ne pas retirer","removeBundleContent":"Are you sure that you want to remove the bundle {{item.name}}?","removeBundleCheckbox":"Retirer les fichiers finis","removeFileApprove":"Retirer le fichier","removeFileReject":"Ne pas retirer","removeFileContent":"Are you sure that you want to remove the file {{item.name}}?","removeFileCheckbox":"Supprimer le fichier"},"notifications":{"removeFileSuccess":"File {{item.name}} was removed from queue","removeCompletedSuccess":"{{result.count}} completed bundles were removed","searchBundleAlternatesSuccess":"The bundle {{item.name}} was searched for alternates"}},"paused":"En pause","lowest":"La plus basse","low":"Basse","normal":"Normal","high":"Haute","highest":"La plus haute","auto":"Auto","sources":"Sources","user":"Utilisateur","hubs":"Hubs","lastKnownSpeed":"Dernière vitesse connue","files":"Fichiers","size":"Taille","notifications":{"bundleWasAddedInQueue":"Le paquet a été ajouté en file d\'attente","bundleDownloadError":"Erreur de téléchargement : {{error}}","bundleContentValidationError":"Bundle content validation failed: {{error}} ({{hook}})","validatingDownloadedBundle":"Validating downloaded bundle","bundleWasCompletedSuccessfully":"Le paquet a été téléchargé entièrement","bundleWasAddedInShare":"Le paquet a été mis en partage","actions":{"viewQueue":"Voir la file d\'attente"}}},"transfers":{"table":{"user":"Utilisateur","name":"Nom","size":"Segment","status":"État","secondsLeft":"Temps restant","speed":"Vitesse","flags":"Flags","ip":"IP"},"actions":{"forceConnect":"Forcer la connexion","disconnect":"Déconnecter","removeFileFromQueue":"Retirer le paquet de la file d\'attente","removeUserFromQueue":"Retirer l\'utilisateur de la file d\'attente","notifications":{"removeFileSuccess":"File {{item.name}} was removed from queue","removeSourceSuccess":"The user {{item.user.nicks}} was removed from {{result.count}} files"}},"noActiveTransfers":"Pas de transfert actif"},"settings":{"actions":{"detectNow":"Détecter maintenant","addDirectory":"Ajouter un dossier","addUser":"Ajouter un utilisateur","editUser":"Éditer un utilisateur","editDirectory":"Éditer un dossier","removeDirectory":"Supprimer le dossier","addProfile":"Ajouter un profil","browseFiles":"Parcourir les fichiers","renameProfile":"Renommer le profil","addPath":"Add path","removePath":"Remove path","removeUser":"Remove user","setAsDefault":"Set as default","removeProfile":"Retirer le profil","addType":"Add type","editType":"Edit type","removeType":"Remove type","prompts":{"createProfilePlaceholder":"Enter name","createProfileApprove":"Créer","createProfileContent":"Enter name for the profile","editProfilePlaceholder":"Enter name","editProfileApprove":"Renommer","editProfileContent":"Enter new name for the profile {{item.name}}","removeShareExcludeApprove":"Remove path","removeShareExcludeReject":"Ne pas retirer","removeShareExcludeContent":"Are you sure that you want to remove the excluded path {{item}}?","removeWebUserApprove":"Remove user","removeWebUserReject":"Ne pas retirer","removeWebUserContent":"Are you sure that you want to remove the user {{item.username}}?","removeFavoriteDirectoryApprove":"Supprimer le dossier","removeFavoriteDirectoryReject":"Ne pas retirer","removeFavoriteDirectoryContent":"Are you sure that you want to remove the favorite directory {{item.name}}?","removeSearchTypeApprove":"Remove type","removeSearchTypeReject":"Ne pas retirer","removeSearchTypeContent":"Are you sure that you want to remove the search type {{item.name}}?"}},"navigation":{"profile":"Profile","connectivity":"Connectivité","speedAndLimits":"Speed and limits","downloads":"Téléchargements","sharing":"En partage","view":"Voir","about":"À propos","extensions":"Extensions","extensionEngines":"Extension engines","system":"Système","autoDetection":"Détection auto","iPv4ConnectivityManual":"Connectivité IPv4 (manuelle)","iPv6ConnectivityManual":"Connectivité IPv6 (manuelle)","portsManual":"Ports (manuel)","proxies":"Proxys","encryption":"Chiffrement","user":"Utilisateur","awayMode":"Mode absence","ignoredUsers":"Utilisateurs ignorés","miscellaneous":"Divers","manageInstalled":"Manage installed","extensionCatalog":"Extension catalog","extensionOptions":"Options des extensions","application":"Application","transferStatistics":"Statistiques de transfert","shareStatistics":"Share statistics","hubStatistics":"Statistiques des hubs","users":"Utilisateurs","logging":"Enregistrement journal","webServer":"Serveur web","advancedServerSettings":"Advanced server settings","refreshOptions":"Option de rafraîchissement","shareProfiles":"Profiles de partage","sharingOptions":"Option de partage","hashing":"Hachage","excludedPaths":"Excluded paths","connectionSpeed":"Vitesse de connexion","bandwidthLimiting":"Bandwidth limiting","downloadLimits":"Limite de téléchargement","uploadLimits":"Limite d\'envoi","perUserLimits":"Per-user limits","locations":"Locations","skippingOptions":"Option d\'ignorance","searchMatching":"Correspondance de recherche","searchTypes":"Search types","downloadOptions":"Options de téléchargement","priorities":"Priorités","notificationsCaption":"Notifications","histories":"Historiques","events":"Événements","appearance":"Apparence"},"advanced":"Avancé","noUnsavedChanges":"No unsaved changes","noSavePermission":"No save permission","saveChanges":"Sauvegarder les changements","savingCompleted":"Saving completed","settingsWereSavedSuccessfully":"Settings were saved successfully","unsavedChangesPrompt":"You have unsaved changes. Are you sure you want to leave?","connectivity":{"detection":{"connectivityDetectionNote":"In case of file transfer connectivity issues, please confirm that your TCP ports are really open by using <1>an online port checker</1>. Note that validity of the UDP port (search) can\'t be checked online. For more information about different connectivity modes, please visit <4>DC++\'s connectivity FAQ</4>.","currentAutoDetectionStatus":"Current auto detection status","iPv4Connectivity":"Connectivité IPv4","iPv6Connectivity":"Connectivité IPv6","manualConfiguration":"{{status}} (configuration manuelle)","autoDetected":"{{status}} (détection auto)","detecting":"Detecting..."},"ports":{"portsAutoValuesNote":"Port numbers listed on this page can be overridden by port mappers (if enabled)","form":{"tcpPortHelp":"TCP port is used for unencrypted transfers","udpPortHelp":"UDP port is used for searching","tlsPortHelp":"TLS port (TCP) is used for encrypted transfers"}},"v6":{"protocolAutoValuesNote":"Connectivity auto detection is currently enabled; setting values listed on this page are not being used"},"v4":{"protocolAutoValuesNote":"Connectivity auto detection is currently enabled; setting values listed on this page are not being used"}},"profile":{"user":{"form":{"settingProfileHelp0":"Le client est utilisé dans des hubs privés / publics normaux pour transférer des fichiers via Internet. Utilisez ce profil en cas de doute.","settingProfileHelp1":"The client is used for transferring files that are split in RAR archives (or in other small-sized formats)","settingProfileHelp2":"The client is used for transferring files in local network (e.g. LAN parties) or in another closed network (e.g. university network)","languageFileHelp":"<0>The application must be restarted for the new language to take effect.</0><1>If you want to help with improving the existing translations or translate the application into a new language, please see the <1>instructions for translators</1>.</1>"}},"ignoredUsers":{"user":"Utilisateur","messagesIgnored":"Messages ignorés","noIgnoredUsers":"Aucun utilisateur ignoré"},"miscellaneous":{"form":{"nmdcEncodingHelp":"<0>Encoding setting is only used in NMDC hubs. ADC hubs will always use UTF-8 encoding.<1></1><2></2><3>Commonly used values:<1><0>Central Europe: cp1250</0><1>Cyrillic: cp1251</1><2>Western Europe: cp1252</2><3>Greek: cp1253</3><4>Turkish: cp1254</4><5>Hebrew: cp1256</5></1></3></0>"}}},"extensions":{"packages":{"byAuthor":"par {{author}}","latestVersion":"Dernière version","installedVersion":"Version installée","datePublished":"{{version}} (published {{date}})","readMore":"En savoir plus","defaultExtensionEngineMissing":"The default extension engine <1>node</1> is not installed on your system. Please visit <3>engine\'s home page</3> for installation instructions.","manage":"Manage..."},"manage":{"byAuthor":"par {{author}}","latestVersion":"Dernière version","installedVersion":"Version installée","nonListedExtension":"Non-listed extension","readMore":"En savoir plus","noInstalledExtensions":"No installed extensions were found. New extensions can be installed from the <1>Extension catalog</1> page.","defaultExtensionEngineMissing":"The default extension engine <1>node</1> is not installed on your system. Please visit <3>engine\'s home page</3> for installation instructions.","extensionDirectoryFetchError":"Failed to fetch information from the extension directory: {{error}}","unmanagedExtension":"Unmanaged extension","manage":"Manage..."}},"about":{"application":{"applicationVersion":"Version de l\'application","webUiVersion":"Version de l\'interface web","webUiBuildDate":"Web UI build date","apiVersion":"Version de l\'API","apiFeatureLevel":"API feature level","started":"Démarré","activeSessions":"Sessions actives","serverThreads":"Server threads","resources":"Resources","homePage":"Home page","featureRequestBugTracker":"Feature request/bug tracker","documentation":"Documentation","thirdPartyCredits":"Third-party credits"},"transfers":{"totalDownloaded":"Total downloaded","totalUploaded":"Total uploaded","session":"Session","sessionDownloaded":"Session downloaded","sessionUploaded":"Session uploaded"},"share":{"noFilesShared":"No files shared","totalShareSize":"Total share size","totalFiles":"Total files","totalFilesValue":"{{totalCount}} ({{uniqueCount}} unique)","totalDirectories":"Total directories","averageFileAge":"Average file age","averageFilesPerDirectory":"Average files per directory","incomingSearches":"Incoming searches","totalSearches":"Total searches","searchesTotalValue":"{{totalCount}} ({{perSecondCount}} per second)","tthSearches":"Recherches TTH","textSearches":"Text searches","searchesPerSecondValue":"{{totalCount}} ({{matchedCount}} matched per second)","filteredTextSearches":"Filtered text searches","searchesFilteredValue":"{{filteredPercentage}} ({{resultPercentage}} of the matched ones returned results)","averageTextSearchTokensNonFiltered":"Average text search tokens (non-filtered)","searchesAverageTokensValue":"{{tokenCount}} ({{tokenLength}} bytes per token)","averageMatchingTimePerTextSearch":"Average matching time per text search","searchesAverageMatchTimeValue":"{{matchTime}} ms"},"hubs":{"noHubsOnline":"Aucun hub en ligne","totalUsers":"Total users","uniqueUsers":"Unique users","activeUsers":"Active users","totalShare":"Total share","averageSharePerUser":"Average share per user","averageAdcDownloadSpeed":"Average ADC download speed","clients":"Clients","averageAdcUploadSpeed":"Average ADC upload speed"}},"system":{"logging":{"messages":"Messages","transfers":"Transferts","variableHelp":"Variable information for Filename and Format fields"},"serverSettings":{"defaultCertNote":"The default client certificate is used if the certificate paths are empty"},"advancedServerSettings":{"hookTimeouts":"Hook timeouts"},"users":{"username":"Nom d\'utilisateur","permissions":"Permissions","activeSessions":"Sessions actives","lastLoggedIn":"Last logged in","administrator":"Administrateur","form":{"usernameName":"Nom d\'utilisateur","passwordName":"Mot de passe","permissionsName":"Permissions"},"permissionSelector":{"administrator":"Administrateur","search":"Recherche","download":"Réception","transfers":"Transferts","events":"Événements","view":"Voir","edit":"Modif.","queue":"File d\'attente","favoriteHubs":"Hubs favoris","settings":"Paramètres","localFilesystem":"Local filesystem","hubs":"Hubs","sendMessages":"Envoyer les messages","privateChat":"Discussion privée","filelists":"Liste de fichiers","viewedFiles":"Viewed files"},"addWebUser":"Add web user","editUser":"Éditer un utilisateur","adminPermissionNote":"Administrator permission is required in order to access the System section in settings"}},"sharing":{"excludes":{"shareRefreshNote":"Share must be refreshed for the changes to take effect","addExcludedPath":"Add excluded path","path":"Chemin"},"profiles":{"name":"Nom","totalSize":"Total size","totalFiles":"Total files","shareProfilesNote":"<0>Queued files are shared via the partial file sharing feature in all hubs where the share has not been hidden, regardless of the configured share profiles.</0><1>Share profiles are assigned for individual directories from the <1>Share</1> page.</1>"},"sharingOptions":{"skiplist":"Skiplist"},"hashing":{"hashDatabase":"Données des hachages","fileIndexSize":"File index size","hashStoreSize":"Hash store size","maintenance":"Maintenance","verifyIntegrityOfHashData":"Verify integrity of hash data","optimizeNow":"Optimize now","hashDBOptimizeNote":"This operation will delete all hash information for files that aren\'t currently in share. If you are sharing files from network disks or from a removable storage, make sure that the files are currently shown in share (otherwise they have to be rehashed)"}},"speedLimits":{"speed":{"connectionSpeedNote":"Please be as accurate as possible and set the ACTUAL speed of your connection. You may use an online tester, such as <1>Speedtest.net</1>, to test your speed."},"uploadLimits":{"manuallySet":"Manually set"},"downloadLimits":{"manuallySet":"Manually set"}},"downloads":{"locations":{"availablePathVariables":"Available path variables","favoriteDownloadDirectories":"Répertoires de téléchargement favori","name":"Nom","path":"Chemin","form":{"pathName":"Chemin","nameName":"Nom"},"addFavoriteDirectory":"Add favorite directory","editFavoriteDirectory":"Edit favorite directory"},"skippingOptions":{"skiplist":"Skiplist"},"priorities":{"filePriorities":"File priorities","highPriorityFiles":"High priority files"},"searchTypes":{"name":"Nom","fileExtensions":"File extensions","default":"Défaut","searchTypesNote":"Note; Custom search types will only be applied to ADC hubs! On NMDC hubs, using a predefined search type will only search for a set of predefined, unconfigurable extensions; using a custom type will default to searching for any extension.","form":{"nameName":"Nom","extensionsName":"File extensions"},"addSearchType":"Add search type","editSearchType":"Edit search type"},"downloadOptions":{"segments":"Segments","compression":"Compression","buffers":"Buffers"}},"browserSpecificNote":"Settings listed on this page are browser-specific","view":{"notifications":{"popupNotifications":"Popup notifications","form":{"notifyMentionMyNickName":"Mentions of my nick","notifyPmUserName":"Private messages (users)","notifyPmBotName":"Private messages (bots)","notifyHubMessageName":"Hub chat messages (only in hubs where chat notifications are enabled)","notifyBundleStatusName":"Bundle status changes","notifyEventsInfoName":"Info events","notifyEventsWarningName":"Warning events","notifyEventsErrorName":"Error events"}},"histories":{"maxMessageHistory":"Maximum number of messages to cache","maxSessionHistory":"Maximum number of previously opened sessions"},"miscellaneous":{"form":{"unreadLabelDelayName":"Delay for marking chat sessions as read (seconds)","backgroundImageUrlName":"Custom background image URL","noInstallPromptName":"Never show the application install prompt in Home view"}}}},"extensions":{"actions":{"uninstall":"Désinstaller","start":"Démarrer","installFromUrl":"Install from URL","install":"Installer","update":"MàJ","stop":"Stop","configure":"Configurer","prompts":{"installUrlPlaceholder":"Enter URL","installUrlApprove":"Installer","installUrlContent":"Enter download URL","removeApprove":"Remove extension","removeReject":"Ne pas retirer","removeContent":"Are you sure that you want to remove the extension {{item.name}}? This will also remove possible extension-specific settings."}}},"navigation":{"home":"Accueil","queue":"File d\'attente","search":"Recherche","transfers":"Transferts","hubs":"Hubs","messages":"Messages","filelists":"Liste de fichiers","files":"Fichiers","events":"Événements","favoriteHubs":"Hubs favoris","share":"Share","settings":"Paramètres","logout":"Se déconnecter","more":"Plus..."},"login":{"username":"Nom d\'utilisateur","password":"Mot de passe","keepMeLoggedIn":"Keep me logged in","login":"Login","authenticationFailed":"Authentication failed: {{lastError}}","connectingToTheServer":"Connecting to the server...","reestablishConnection":"Attempting to re-establish connection...","sessionLost":"Session lost","connectionClosed":"Connexion fermée","privateBrowsingNotSupported":"This site can\'t be used with your browser if private browsing mode is enabled","dataStorageNotSupported":"This site can\'t be used with your browser because it doesn\'t support data storage"},"viewedFiles":{"actions":{"close":"Fermer"},"noFiles":"No files to view","noFilesDesc":"You may open text or media files to be viewed here from search or filelists","preparingView":"Preparing view","opened":"Opened","downloaded":"Téléchargé","unsupportedFormat":"Unsupported format","downloadFailed":"Téléchargement échoué","notifications":{"fileHasFinishedDownloading":"File has finished downloading","fileWasLoaded":"File was loaded","actions":{"viewFile":"Voir le fichier"}}},"messages":{"actions":{"clearChat":"Effacer la discussion","close":"Fermer","connect":"Se connecter","disconnect":"Déconnecter"},"new":"New session","newDesc":"Open a new private chat session","offlineMessage":"You must to be connected to at least one hub in order to send private messages","directEncryptedChannelAvailable":"Direct encrypted channel available","establishingConnection":"Establishing connection...","directEncryptedChannelEstablished":"Direct encrypted channel established","notifications":{"actions":{"viewMessage":"Voir le message"}}},"home":{"newUserIntro":"Information for new user","newUserIntroDesc":"<0><0>Add a few directories that are shared to other users from the <1>Share</1> page.</0><1>You might want to go through at least each main page of <1>the client settings</1> before you start. <3>It\'s important that you <1>configure your connection speed</1> correctly because the client won\'t be able to utilize your bandwidth efficiently otherwise.</3></1><2>There is no listing of public hubs yet so you need to know the hub addresses where you wish to connect to.</2></0><1>Visit the <1>home page</1> for more information about the client and its features.</1><2>If you have questions, you may post them on the <1>GitHub tracker</1> or join the dev/support hub: <3></3></2>"},"hash":{"actions":{"pause":"Pause","resume":"Reprendre","stop":"Stop"},"status":"État","paused":"En pause","filesLeft":"Files left","maximumSpeedPerHasher":"Maximum speed per hasher","runningThreads":"Running ({{threadCount}} threads)","speed":"Vitesse","timeLeft":"Temps restant","idle":"Idle","hashProgress":"Hash progress"}}')}}]);
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkairdcpp_webui=self.webpackChunkairdcpp_webui||[]).push([[149],{2482:e=>{e.exports=JSON.parse('{"widgets":{"application":{"widgetName":"Application","addWidget":"Add widget...","loggedInAs":"Logged in as","clientStarted":"Client started","activeSessions":"Active sessions"},"rss":{"widgetName":"RSS feed","invalidUrl":"Invalid URL","lastUpdated":"Last updated: {{time}}","actions":{"openLink":"Open link","search":"Search"},"loadingFeed":"Loading feed","form":{"feedUrlName":"Feed URL","feedUrlHelp":"RSS and Atom feeds are supported","feedCacheMinutesName":"Minimum refetch interval (minutes)"},"invalidFeed":"Invalid/unsupported feed: {{error}}"},"transfers":{"widgetName":"Transfers","trafficBps":"Traffic (bps)","downloads":"Downloads","uploads":"Uploads","downloaded":"Downloaded","uploaded":"Uploaded","downloadLimit":"Download limit","uploadLimit":"Upload limit"},"notepad":{"widgetName":"Notes"},"extensions":{"widgetName":"Extension releases","updatedAgo":"Updated {{date}}"},"actions":{"editWidget":"Edit widget","removeWidget":"Remove widget","prompts":{"removeApprove":"Remove widget","removeReject":"Don\'t remove","removeContent":"Are you sure that you want to remove the widget {{item.settings.name}}?"}},"form":{"nameName":"Name"},"widgetPositionHint":"Widgets and their positions are browser-specific","accessDenied":"You aren\'t allowed to access this widget","settingsMissing":"Widget settings missing"},"events":{"events":"Events","loadingMessages":"Loading messages","noMessagesToShow":"No messages to show","actions":{"clear":"Clear"},"notifications":{"information":"Information","info":"INFO","warning":"WARNING","error":"ERROR","actions":{"viewEvents":"View events"}}},"table":{"filter":{"filter":"Filter","matchType":"Match type","partial":"Partial","regex":"Regex","wildcard":"Wildcard","exact":"Exact","filterByProfile":"Filter by profile","allProfiles":"All profiles"}},"search":{"table":{"name":"Name","size":"Size","relevance":"Relevance","type":"Type","connection":"Connection","users":"Users","time":"Last modified","slots":"Slots"},"actions":{"resultDetails":"Result details","browseContent":"Browse content"},"form":{"fileTypeName":"File type","hubUrlsName":"Hubs","maxSizeName":"Maximum size","minSizeName":"Minimum size","sizeLimitsName":"Size limits"},"resetAll":"Reset all","user":"User","hubs":"Hubs","connection":"Connection","slots":"Slots","ip":"IP","path":"Path","searchOffline":"You must to be connected to at least one hub in order to perform searches","enterSearchString":"Enter search string...","search":"Search","usersCount":"User ({{count}})","usersCount_plural":"Users ({{count}})","xUsersNicks":"{{count}} user ({{user.nicks}})","xUsersNicks_plural":"{{count}} users ({{user.nicks}})","noResults":"No results found for \\"{{searchString}}\\"","noResultsHint":"<0><0>Ensure that you spelled the words correctly</0><1>Use different keywords</1><2>You are searching too frequently (hubs often have a minimum search interval)</2><3>If you never receive results for common search terms, make sure that your connectivity settings are configured properly</3></0>"},"share":{"table":{"path":"Path","size":"Size","virtual_name":"Virtual name","profiles":"Profiles","last_refresh_time":"Last refreshed","type":"Content","virtualName":"Virtual name","lastRefreshTime":"Last refreshed"},"actions":{"editDirectory":"Edit directory","removeDirectory":"Remove directory","addDirectory":"Add directory","refreshAll":"Refresh all","prompts":{"removeRootApprove":"Remove directory","removeRootReject":"Don\'t remove","removeRootContent":"Are you sure that you want to remove the directory {{item.virtual_name}} from share? It will be removed from all share profiles."}},"actionsCaption":"Actions...","shareActions":"Share actions","hashingInformation":"Hashing information","hashingInformationDesc":"<0>New files will appear in share only after they have finished hashing (the client has calculated checksums for them). Information about hashing progress will be posted to the event log.</0>","addShareDirectory":"Add share directory","editShareDirectory":"Edit share directory","unknown":"Unknown","form":{"pathName":"Path","virtualNameName":"Virtual name","virtualNameHelp":"Directories with identical virtual names will be merged in filelist","profilesName":"Share profiles","profilesHelp":"New share profiles can be created from application settings","incomingName":"Incoming"}},"favoriteHubs":{"actions":{"addNew":"Add new","setPassword":"Set password","edit":"Edit","remove":"Remove","changePassword":"Change password","removePassword":"Remove password","prompts":{"changePasswordPlaceholder":"Enter password","changePasswordApprove":"Update password","changePasswordContent":"Enter new password for the hub {{item.name}}","removePasswordApprove":"Remove password","removePasswordReject":"Don\'t remove","removePasswordContent":"Are you sure that you want to reset the password of the hub {{item.name}}?","createPasswordPlaceholder":"Enter password","createPasswordApprove":"Set password","createPasswordContent":"Set password for the hub {{item.name}}","removeApprove":"Remove favorite hub","removeReject":"Don\'t remove","removeContent":"Are you sure that you want to remove the favorite hub {{item.name}}?"}},"table":{"connectState":"State","name":"Name","autoConnect":"Auto connect","nick":"Nick","hasPassword":"Password","hubUrl":"Address","shareProfile":"Share profile"},"notSet":"Not set","set":"Set","globalDefault":"Global default","addFavoriteHub":"Add favorite hub","editFavoriteHub":"Edit favorite hub","form":{"genericName":"Hub properties","nameName":"Name","hubUrlName":"Hub URL","hubDescriptionName":"Hub description","shareProfileName":"Share profile","shareProfileHelp":"Custom share profiles can be selected only after entering an ADC hub address (starting with adc:// or adcs://)","autoConnectName":"Auto connect","userName":"User setting overrides","nickName":"Nick","userDescriptionName":"User description","connectivityV4Name":"Connectivity setting overrides (IPv4)","connectionModeV4Name":"Connectivity mode","connectionModeV4Option-1":"Disabled","connectionModeV4Option0":"Active mode","connectionModeV4Option2":"Passive mode","connectionIpV4Name":"IP address","connectivityV6Name":"Connectivity setting overrides (IPv6)","connectionModeV6Name":"Connectivity mode","connectionModeV6Option-1":"Disabled","connectionModeV6Option0":"Active mode","connectionModeV6Option2":"Passive mode","connectionIpV6Name":"IP address","miscName":"Miscellaneous overrides","useMainChatNotifyName":"Use chat notification","awayMessageName":"Away message","showJoinsName":"Show joins/parts"}},"filelists":{"new":"Open filelist","newDesc":"Start browsing a new filelist","offlineMessage":"You must to be connected to at least one hub in order to download filelists from other users","directorySize":"Directory size","totalListSize":"Total list size","browseOwnShare":"Browse own share...","root":"Root","userOffline":"User offline","userOfflineDesc":"You will be able to continue browsing when the user comes back online","noContentToDisplay":"No content to display","theDirectoryIsEmpty":"The directory is empty","updatingView":"Updating view","downloadFailed":"Download failed","confirmLeave":"Confirm action","confirmLeaveDesc":"Click the back button again to leave this filelist","table":{"name":"Name","size":"Size","time":"Last modified","type":"Type"},"actions":{"reload":"Reload","refreshInShare":"Refresh in share","close":"Close","details":"Details"}},"common":{"actions":{"copy":"Copy","download":"Download","downloadTo":"Download to...","findNfo":"Find NFO","search":"Search","sendMessage":"Send message","browseShare":"Browse share","ignoreMessages":"Ignore messages","viewAsText":"View as text","playVideo":"Play video","viewImage":"View image","playAudio":"Play audio","copyMagnetLink":"Copy magnet link","shutDownApplication":"Shut down application","restartWebServer":"Restart web server","unignoreMessages":"Unignore messages","closeAndDontShowAgain":"Close and don\'t show again","notifications":{"ignoreUserSuccess":"User {{item.nicks}} was added in ignored users","unignoreUserSuccess":"User {{item.nicks}} was removed from ignored users","copyMagnetSuccess":"Magnet link was copied to clipboard","copySuccess":"Text was copied to clipboard"},"prompts":{"restartWebSystemApprove":"Continue and restart","restartWebSystemReject":"Don\'t restart","restartWebSystemContent":"When changing the binding options, it\'s recommended to restart the web server only \\n when you are able to access the server for troubleshooting. If the web server won\'t come back online, you should start the application \\n manually to see if there are any error messages. The configuration file is located in your user directory by default (inside .airdc++ directory) in case you need to edit it manually.","shutdownSystemApprove":"Continue and shut down","shutdownSystemReject":"Cancel","shutdownSystemContent":"Are you sure that you wish to shut down the application?"}},"units":{"b":"B","kib":"KiB","mib":"MiB","gib":"GiB","tib":"TiB","pib":"PiB","eib":"EiB","bits":"bit/s","kbits":"Kbit/s","mbits":"Mbit/s","gbits":"Gbit/s"},"filename":"Filename","xBytes":"{{bytes}} bytes","unitsPerSecond":"{{units}}/s","today":"Today","yesterday":"Yesterday","tomorrow":"Tomorrow","lastWeek":"[Last] {{weekDay}}","awayModeWasEnabled":"Away mode was enabled","awayModeWasDisabled":"Away mode was disabled","actionSucceed":"Action succeed","actionFailed":"Action failed","queueingFailed":"Failed to queue the item {{item.name}}","noNfoResultsWereReceived":"No NFO results were received","networkClientError":"Network/client error","failedToFetchData":"Failed to fetch data","failedToLoadContent":"Failed to load content","loadingItems":"Loading items","root":"Root","name":"Name","size":"Size","path":"Path","createDirectory":"Create directory","create":"Create","directoryName":"Directory name","computer":"Computer","history":"Previous","shared":"Shared","favorites":"Favorites","dupes":"Dupes","browse":"Browse","download":"Download","close":"Close","noPathsToDisplay":"No paths to display","spaceFree":"{{freeSpace}} free","select":"Select","new":"New","currentSessions":"Current sessions","closeAll":"Close all","recentSessions":"Recent sessions","openedAgo":"Opened {{timeAgo}}","waitingForServerResponse":"Waiting for server response","loadingMessages":"Loading messages","loadingSession":"Loading session","yes":"Yes","no":"No","cancel":"Cancel","loading":"Loading","loadingData":"Loading data...","noOnlineHubs":"No online hubs","installAsLocalApplication":"Install as local application","pwaInstallDesc":"This web application can be installed locally, providing a better user experience","install":"Install","dontInstall":"Don\'t install","statisticsNotAvailable":"Statistics not available","save":"Save","enterNick":"Enter nick...","disabled":"Disabled","enterLimitUnit":"Enter limit ({{unit}}/s)","enterLimit":"Enter limit...","removeLimit":"Remove limit","tlsOk":"Authenticity of the certificate is validated","tlsOutdatedWarning":"Outdated cryptographic protocol with known security vulnerabilities","tlsAuthenticityWarning":"Authenticity of the certificate could not be validated","upload":"Upload","sendFiles":"Send files","removeSharedFile":"Remove shared file","fileNoLongerShared":"File {{file.name}} is no longer shared","fileTooLarge":"File is too large (maximum size is {{maxSize}})","previewIsNotAvailable":"Preview is not available","failedToFetchContent":"Failed to fetch content","noItemsToShow":"No items to show","noSessionEditAccess":"You aren\'t allowed to open new sessions","noChatAccess":"You aren\'t allowed to send new messages","loadingSessions":"Loading sessions","typeContent":"Type/content","lastModified":"Last modified","dupeType":"Dupe type","shareFull":"Share (full)","sharePartial":"Share (partial)","queueFull":"Queue (full)","queuePartial":"Queue (partial)","finishedFull":"Finished (full)","finishedPartial":"Finished (partial)","shareAndQueue":"Share and queue","dupePaths":"Dupe paths","actionsCaption":"Actions...","tth":"TTH","na":"N/A","noActionsAvailable":"No actions available","continue":"Continue","form":{"browse":"Browse","noOptions":"No options","fieldOptional":"{{definition.title}} (optional)","minimumValueError":"Minimum allowed value is {{value}}","maximumValueError":"Maximum allowed value is {{value}}","any":"Any","directory":"Directory","file":"File","add":"Add","down":"Down","remove":"Remove","up":"Up","offlineMessage":"No connected hubs","loading":"Loading"}},"hubs":{"table":{"nick":"Nick","shareSize":"Share size","description":"Description","tag":"Tag","uploadSpeed":"Upload speed","downloadSpeed":"Download speed","ip4":"IP (v4)","ip6":"IP (v6)","fileCount":"Files"},"actions":{"reconnect":"Reconnect","clearChat":"Clear chat","close":"Close","addToFavorites":"Add to favorites","useChatNotification":"Use chat notification","showJoinsParts":"Show joins/parts","notifications":{"favoriteSuccess":"The hub {{item.identity.name}} was added in favorites"}},"notifications":{"actions":{"viewChat":"View chat"}},"notificationSettings":"Notification settings","enterHubAddress":"Enter hub address...","connect":"Connect","notConnectedToTheHub":"Not connected to the hub","connecting":"Connecting","loadingUserlist":"Loading userlist","favoriteHubsHint":"Tip: visit the <1>Favorite hubs</1> page to connect using custom settings","new":"Connect","newDesc":"Connect to a new hub","userList":"User list","sharePerUser":"{{total}} ({{average}}/user)","xUsers":"{{count}} users","xUsers_plural":"{{count}} users","redirectRequested":"Redirect requested","acceptRedirect":"Accept redirect to {{url}}","passwordRequired":"Password required","password":"Password","submit":"Submit","passwordPromptHelp":"This usually means that there\'s a registered account associated with your nick. If you don\'t remember having a registered account in this hub, there may be someone else using the same nick."},"queue":{"table":{"name":"Name","size":"Size","status":"Status","sources":"Sources","secondsLeft":"Time left","speed":"Speed","priority":"Priority","type":"Type/content","timeAdded":"Added","timeFinished":"Finished"},"actionsCaption":"Actions...","queueActions":"Queue actions","pausedForced":"Paused (forced)","queueEmpty":"The queue is empty","queueEmptyDesc":"New items can be queued from search or filelists","actions":{"removeCompletedBundles":"Remove completed bundles","pauseAllBundles":"Pause all bundles","resumeAllBundles":"Resume all bundles","manageFiles":"Manage files...","manageSources":"Manage sources...","searchForeground":"Search (foreground)","searchForAlternates":"Search for alternates","remove":"Remove","removeSource":"Remove source","rescanForErrors":"Rescan for errors","forceInShare":"Force in share","prompts":{"removeBundleApprove":"Remove bundle","removeBundleReject":"Don\'t remove","removeBundleContent":"Are you sure that you want to remove the bundle {{item.name}}?","removeBundleCheckbox":"Remove finished files","removeFileApprove":"Remove file","removeFileReject":"Don\'t remove","removeFileContent":"Are you sure that you want to remove the file {{item.name}}?","removeFileCheckbox":"Remove on disk"},"notifications":{"removeFileSuccess":"File {{item.name}} was removed from queue","removeCompletedSuccess":"{{result.count}} completed bundles were removed","searchBundleAlternatesSuccess":"The bundle {{item.name}} was searched for alternates"}},"paused":"Paused","lowest":"Lowest","low":"Low","normal":"Normal","high":"High","highest":"Highest","auto":"Auto","sources":"Sources","user":"User","hubs":"Hubs","lastKnownSpeed":"Last known speed","files":"Files","size":"Size","notifications":{"bundleWasAddedInQueue":"Bundle was added in queue","bundleDownloadError":"Download error: {{error}}","bundleContentValidationError":"Bundle content validation failed: {{error}} ({{hook}})","validatingDownloadedBundle":"Validating downloaded bundle","bundleWasCompletedSuccessfully":"Bundle was completed successfully","bundleWasAddedInShare":"Bundle was added in share","actions":{"viewQueue":"View queue"}}},"transfers":{"table":{"user":"User","name":"Name","size":"Segment","status":"Status","secondsLeft":"Time left","speed":"Speed","flags":"Flags","ip":"IP"},"actions":{"forceConnect":"Force connect","disconnect":"Disconnect","removeFileFromQueue":"Remove file from queue","removeUserFromQueue":"Remove user from queue","notifications":{"removeFileSuccess":"File {{item.name}} was removed from queue","removeSourceSuccess":"The user {{item.user.nicks}} was removed from {{result.count}} files"}},"noActiveTransfers":"No active transfers"},"settings":{"actions":{"detectNow":"Detect now","addDirectory":"Add directory","addUser":"Add user","editUser":"Edit user","editDirectory":"Edit directory","removeDirectory":"Remove directory","addProfile":"Add profile","browseFiles":"Browse files","renameProfile":"Rename profile","addPath":"Add path","removePath":"Remove path","removeUser":"Remove user","setAsDefault":"Set as default","removeProfile":"Remove profile","addType":"Add type","editType":"Edit type","removeType":"Remove type","prompts":{"createProfilePlaceholder":"Enter name","createProfileApprove":"Create","createProfileContent":"Enter name for the profile","editProfilePlaceholder":"Enter name","editProfileApprove":"Rename","editProfileContent":"Enter new name for the profile {{item.name}}","removeShareExcludeApprove":"Remove path","removeShareExcludeReject":"Don\'t remove","removeShareExcludeContent":"Are you sure that you want to remove the excluded path {{item}}?","removeWebUserApprove":"Remove user","removeWebUserReject":"Don\'t remove","removeWebUserContent":"Are you sure that you want to remove the user {{item.username}}?","removeFavoriteDirectoryApprove":"Remove directory","removeFavoriteDirectoryReject":"Don\'t remove","removeFavoriteDirectoryContent":"Are you sure that you want to remove the favorite directory {{item.name}}?","removeSearchTypeApprove":"Remove type","removeSearchTypeReject":"Don\'t remove","removeSearchTypeContent":"Are you sure that you want to remove the search type {{item.name}}?"}},"navigation":{"profile":"Profile","connectivity":"Connectivity","speedAndLimits":"Speed and limits","downloads":"Downloads","sharing":"Sharing","view":"View","about":"About","extensions":"Extensions","extensionEngines":"Extension engines","system":"System","autoDetection":"Auto detection","iPv4ConnectivityManual":"IPv4 connectivity (manual)","iPv6ConnectivityManual":"IPv6 connectivity (manual)","portsManual":"Ports (manual)","proxies":"Proxies","encryption":"Encryption","user":"User","awayMode":"Away mode","ignoredUsers":"Ignored users","miscellaneous":"Miscellaneous","manageInstalled":"Manage installed","extensionCatalog":"Extension catalog","extensionOptions":"Extension options","application":"Application","transferStatistics":"Transfer statistics","shareStatistics":"Share statistics","hubStatistics":"Hub statistics","users":"Users","logging":"Logging","webServer":"Web server","advancedServerSettings":"Advanced server settings","refreshOptions":"Refresh options","shareProfiles":"Share profiles","sharingOptions":"Sharing options","hashing":"Hashing","excludedPaths":"Excluded paths","connectionSpeed":"Connection speed","bandwidthLimiting":"Bandwidth limiting","downloadLimits":"Download limits","uploadLimits":"Upload limits","perUserLimits":"Per-user limits","locations":"Locations","skippingOptions":"Skipping options","searchMatching":"Search matching","searchTypes":"Search types","downloadOptions":"Download options","priorities":"Priorities","notificationsCaption":"Notifications","histories":"Histories","events":"Events","appearance":"Appearance"},"advanced":"Advanced","noUnsavedChanges":"No unsaved changes","noSavePermission":"No save permission","saveChanges":"Save changes","savingCompleted":"Saving completed","settingsWereSavedSuccessfully":"Settings were saved successfully","unsavedChangesPrompt":"You have unsaved changes. Are you sure you want to leave?","connectivity":{"detection":{"connectivityDetectionNote":"In case of file transfer connectivity issues, please confirm that your TCP ports are really open by using <1>an online port checker</1>. Note that validity of the UDP port (search) can\'t be checked online. For more information about different connectivity modes, please visit <4>DC++\'s connectivity FAQ</4>.","currentAutoDetectionStatus":"Current auto detection status","iPv4Connectivity":"IPv4 connectivity","iPv6Connectivity":"IPv6 connectivity","manualConfiguration":"{{status}} (manual configuration)","autoDetected":"{{status}} (auto detected)","detecting":"Detecting..."},"ports":{"portsAutoValuesNote":"Port numbers listed on this page can be overridden by port mappers (if enabled)","form":{"tcpPortHelp":"TCP port is used for unencrypted transfers","udpPortHelp":"UDP port is used for searching","tlsPortHelp":"TLS port (TCP) is used for encrypted transfers"}},"v6":{"protocolAutoValuesNote":"Connectivity auto detection is currently enabled; setting values listed on this page are not being used"},"v4":{"protocolAutoValuesNote":"Connectivity auto detection is currently enabled; setting values listed on this page are not being used"}},"profile":{"user":{"form":{"settingProfileHelp0":"The client is used in normal private/public hubs for transferring files via internet. Use this profile if unsure.","settingProfileHelp1":"The client is used for transferring files that are split in RAR archives (or in other small-sized formats)","settingProfileHelp2":"The client is used for transferring files in local network (e.g. LAN parties) or in another closed network (e.g. university network)","languageFileHelp":"<0>The application must be restarted for the new language to take effect.</0><1>If you want to help with improving the existing translations or translate the application into a new language, please see the <1>instructions for translators</1>.</1>"}},"ignoredUsers":{"user":"User","messagesIgnored":"Messages ignored","noIgnoredUsers":"No ignored users"},"miscellaneous":{"form":{"nmdcEncodingHelp":"<0>Encoding setting is only used in NMDC hubs. ADC hubs will always use UTF-8 encoding.<1></1><2></2><3>Commonly used values:<1><0>Central Europe: cp1250</0><1>Cyrillic: cp1251</1><2>Western Europe: cp1252</2><3>Greek: cp1253</3><4>Turkish: cp1254</4><5>Hebrew: cp1256</5></1></3></0>"}}},"extensions":{"packages":{"byAuthor":"by {{author}}","latestVersion":"Latest version","installedVersion":"Installed version","datePublished":"{{version}} (published {{date}})","readMore":"Read more","defaultExtensionEngineMissing":"The default extension engine <1>node</1> is not installed on your system. Please visit <3>engine\'s home page</3> for installation instructions.","manage":"Manage..."},"manage":{"byAuthor":"by {{author}}","latestVersion":"Latest version","installedVersion":"Installed version","nonListedExtension":"Non-listed extension","readMore":"Read more","noInstalledExtensions":"No installed extensions were found. New extensions can be installed from the <1>Extension catalog</1> page.","defaultExtensionEngineMissing":"The default extension engine <1>node</1> is not installed on your system. Please visit <3>engine\'s home page</3> for installation instructions.","extensionDirectoryFetchError":"Failed to fetch information from the extension directory: {{error}}","unmanagedExtension":"Unmanaged extension","manage":"Manage..."}},"about":{"application":{"applicationVersion":"Application version","webUiVersion":"Web UI version","webUiBuildDate":"Web UI build date","apiVersion":"API version","apiFeatureLevel":"API feature level","started":"Started","activeSessions":"Active sessions","serverThreads":"Server threads","resources":"Resources","homePage":"Home page","featureRequestBugTracker":"Feature request/bug tracker","documentation":"Documentation","thirdPartyCredits":"Third-party credits"},"transfers":{"totalDownloaded":"Total downloaded","totalUploaded":"Total uploaded","session":"Session","sessionDownloaded":"Session downloaded","sessionUploaded":"Session uploaded"},"share":{"noFilesShared":"No files shared","totalShareSize":"Total share size","totalFiles":"Total files","totalFilesValue":"{{totalCount}} ({{uniqueCount}} unique)","totalDirectories":"Total directories","averageFileAge":"Average file age","averageFilesPerDirectory":"Average files per directory","incomingSearches":"Incoming searches","totalSearches":"Total searches","searchesTotalValue":"{{totalCount}} ({{perSecondCount}} per second)","tthSearches":"TTH searches","textSearches":"Text searches","searchesPerSecondValue":"{{totalCount}} ({{matchedCount}} matched per second)","filteredTextSearches":"Filtered text searches","searchesFilteredValue":"{{filteredPercentage}} ({{resultPercentage}} of the matched ones returned results)","averageTextSearchTokensNonFiltered":"Average text search tokens (non-filtered)","searchesAverageTokensValue":"{{tokenCount}} ({{tokenLength}} bytes per token)","averageMatchingTimePerTextSearch":"Average matching time per text search","searchesAverageMatchTimeValue":"{{matchTime}} ms"},"hubs":{"noHubsOnline":"No hubs online","totalUsers":"Total users","uniqueUsers":"Unique users","activeUsers":"Active users","totalShare":"Total share","averageSharePerUser":"Average share per user","averageAdcDownloadSpeed":"Average ADC download speed","clients":"Clients","averageAdcUploadSpeed":"Average ADC upload speed"}},"system":{"logging":{"messages":"Messages","transfers":"Transfers","variableHelp":"Variable information for Filename and Format fields"},"serverSettings":{"defaultCertNote":"The default client certificate is used if the certificate paths are empty"},"advancedServerSettings":{"hookTimeouts":"Hook timeouts"},"users":{"username":"Username","permissions":"Permissions","activeSessions":"Active sessions","lastLoggedIn":"Last logged in","administrator":"Administrator","form":{"usernameName":"User name","passwordName":"Password","permissionsName":"Permissions"},"permissionSelector":{"administrator":"Administrator","search":"Search","download":"Download","transfers":"Transfers","events":"Events","view":"View","edit":"Edit","queue":"Queue","favoriteHubs":"Favorite hubs","settings":"Settings","localFilesystem":"Local filesystem","hubs":"Hubs","sendMessages":"Send messages","privateChat":"Private chat","filelists":"Filelists","viewedFiles":"Viewed files"},"addWebUser":"Add web user","editUser":"Edit user","adminPermissionNote":"Administrator permission is required in order to access the System section in settings"}},"sharing":{"excludes":{"shareRefreshNote":"Share must be refreshed for the changes to take effect","addExcludedPath":"Add excluded path","path":"Path"},"profiles":{"name":"Name","totalSize":"Total size","totalFiles":"Total files","shareProfilesNote":"<0>Queued files are shared via the partial file sharing feature in all hubs where the share has not been hidden, regardless of the configured share profiles.</0><1>Share profiles are assigned for individual directories from the <1>Share</1> page.</1>"},"sharingOptions":{"skiplist":"Skiplist"},"hashing":{"hashDatabase":"Hash database","fileIndexSize":"File index size","hashStoreSize":"Hash store size","maintenance":"Maintenance","verifyIntegrityOfHashData":"Verify integrity of hash data","optimizeNow":"Optimize now","hashDBOptimizeNote":"This operation will delete all hash information for files that aren\'t currently in share. If you are sharing files from network disks or from a removable storage, make sure that the files are currently shown in share (otherwise they have to be rehashed)"}},"speedLimits":{"speed":{"connectionSpeedNote":"Please be as accurate as possible and set the ACTUAL speed of your connection. You may use an online tester, such as <1>Speedtest.net</1>, to test your speed."},"uploadLimits":{"manuallySet":"Manually set"},"downloadLimits":{"manuallySet":"Manually set"}},"downloads":{"locations":{"availablePathVariables":"Available path variables","favoriteDownloadDirectories":"Favorite download directories","name":"Name","path":"Path","form":{"pathName":"Path","nameName":"Name"},"addFavoriteDirectory":"Add favorite directory","editFavoriteDirectory":"Edit favorite directory"},"skippingOptions":{"skiplist":"Skiplist"},"priorities":{"filePriorities":"File priorities","highPriorityFiles":"High priority files"},"searchTypes":{"name":"Name","fileExtensions":"File extensions","default":"Default","searchTypesNote":"Note; Custom search types will only be applied to ADC hubs! On NMDC hubs, using a predefined search type will only search for a set of predefined, unconfigurable extensions; using a custom type will default to searching for any extension.","form":{"nameName":"Name","extensionsName":"File extensions"},"addSearchType":"Add search type","editSearchType":"Edit search type"},"downloadOptions":{"segments":"Segments","compression":"Compression","buffers":"Buffers"}},"browserSpecificNote":"Settings listed on this page are browser-specific","view":{"notifications":{"popupNotifications":"Popup notifications","form":{"notifyMentionMyNickName":"Mentions of my nick","notifyPmUserName":"Private messages (users)","notifyPmBotName":"Private messages (bots)","notifyHubMessageName":"Hub chat messages (only in hubs where chat notifications are enabled)","notifyBundleStatusName":"Bundle status changes","notifyEventsInfoName":"Info events","notifyEventsWarningName":"Warning events","notifyEventsErrorName":"Error events"}},"histories":{"maxMessageHistory":"Maximum number of messages to cache","maxSessionHistory":"Maximum number of previously opened sessions"},"miscellaneous":{"form":{"unreadLabelDelayName":"Delay for marking chat sessions as read (seconds)","backgroundImageUrlName":"Custom background image URL","noInstallPromptName":"Never show the application install prompt in Home view"}}}},"extensions":{"actions":{"uninstall":"Uninstall","start":"Start","installFromUrl":"Install from URL","install":"Install","update":"Update","stop":"Stop","configure":"Configure","prompts":{"installUrlPlaceholder":"Enter URL","installUrlApprove":"Install","installUrlContent":"Enter download URL","removeApprove":"Remove extension","removeReject":"Don\'t remove","removeContent":"Are you sure that you want to remove the extension {{item.name}}? This will also remove possible extension-specific settings."}}},"navigation":{"home":"Home","queue":"Queue","search":"Search","transfers":"Transfers","hubs":"Hubs","messages":"Messages","filelists":"Filelists","files":"Files","events":"Events","favoriteHubs":"Favorite hubs","share":"Share","settings":"Settings","logout":"Logout","more":"More..."},"login":{"username":"Username","password":"Password","keepMeLoggedIn":"Keep me logged in","login":"Login","authenticationFailed":"Authentication failed: {{lastError}}","connectingToTheServer":"Connecting to the server...","reestablishConnection":"Attempting to re-establish connection...","sessionLost":"Session lost","connectionClosed":"Connection closed","privateBrowsingNotSupported":"This site can\'t be used with your browser if private browsing mode is enabled","dataStorageNotSupported":"This site can\'t be used with your browser because it doesn\'t support data storage"},"viewedFiles":{"actions":{"close":"Close"},"noFiles":"No files to view","noFilesDesc":"You may open text or media files to be viewed here from search or filelists","preparingView":"Preparing view","opened":"Opened","downloaded":"Downloaded","unsupportedFormat":"Unsupported format","downloadFailed":"Download failed","notifications":{"fileHasFinishedDownloading":"File has finished downloading","fileWasLoaded":"File was loaded","actions":{"viewFile":"View file"}}},"messages":{"actions":{"clearChat":"Clear chat","close":"Close","connect":"Connect","disconnect":"Disconnect"},"new":"New session","newDesc":"Open a new private chat session","offlineMessage":"You must to be connected to at least one hub in order to send private messages","directEncryptedChannelAvailable":"Direct encrypted channel available","establishingConnection":"Establishing connection...","directEncryptedChannelEstablished":"Direct encrypted channel established","notifications":{"actions":{"viewMessage":"View message"}}},"home":{"newUserIntro":"Information for new user","newUserIntroDesc":"<0><0>Add a few directories that are shared to other users from the <1>Share</1> page.</0><1>You might want to go through at least each main page of <1>the client settings</1> before you start. <3>It\'s important that you <1>configure your connection speed</1> correctly because the client won\'t be able to utilize your bandwidth efficiently otherwise.</3></1><2>There is no listing of public hubs yet so you need to know the hub addresses where you wish to connect to.</2></0><1>Visit the <1>home page</1> for more information about the client and its features.</1><2>If you have questions, you may post them on the <1>GitHub tracker</1> or join the dev/support hub: <3></3></2>"},"hash":{"actions":{"pause":"Pause","resume":"Resume","stop":"Stop"},"status":"Status","paused":"Paused","filesLeft":"Files left","maximumSpeedPerHasher":"Maximum speed per hasher","runningThreads":"Running ({{threadCount}} threads)","speed":"Speed","timeLeft":"Time left","idle":"Idle","hashProgress":"Hash progress"}}')}}]);
|
|
Binary file
|