From d386873a0b5a56c96b9552bf3c078d3b905c1c7c Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Fri, 20 Aug 2021 09:37:21 +0300 Subject: [PATCH 1/4] update web --- server/web/pages/template/html.go | 8 +- .../pages/template/pages/asset-manifest.json | 6 +- server/web/pages/template/pages/index.html | 2 +- .../pages/static/js/main.57bd6fc7.chunk.js | 2 - .../static/js/main.57bd6fc7.chunk.js.map | 1 - .../pages/static/js/main.b6b3aa76.chunk.js | 2 + .../static/js/main.b6b3aa76.chunk.js.map | 1 + server/web/pages/template/route.go | 124 +++++++++--------- .../TorrentCache/index.jsx | 13 +- 9 files changed, 79 insertions(+), 80 deletions(-) delete mode 100644 server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js delete mode 100644 server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js.map create mode 100644 server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js create mode 100644 server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js.map diff --git a/server/web/pages/template/html.go b/server/web/pages/template/html.go index 873211d..16e5d3d 100644 --- a/server/web/pages/template/html.go +++ b/server/web/pages/template/html.go @@ -61,12 +61,12 @@ var Staticjs297916048chunkjsLICENSEtxt []byte var Staticjs297916048chunkjsmap []byte -//go:embed pages/static/js/main.57bd6fc7.chunk.js -var Staticjsmain57bd6fc7chunkjs []byte +//go:embed pages/static/js/main.b6b3aa76.chunk.js +var Staticjsmainb6b3aa76chunkjs []byte -//go:embed pages/static/js/main.57bd6fc7.chunk.js.map -var Staticjsmain57bd6fc7chunkjsmap []byte +//go:embed pages/static/js/main.b6b3aa76.chunk.js.map +var Staticjsmainb6b3aa76chunkjsmap []byte //go:embed pages/static/js/runtime-main.8bda5920.js diff --git a/server/web/pages/template/pages/asset-manifest.json b/server/web/pages/template/pages/asset-manifest.json index a7b0702..f976a43 100644 --- a/server/web/pages/template/pages/asset-manifest.json +++ b/server/web/pages/template/pages/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.js": "/static/js/main.57bd6fc7.chunk.js", - "main.js.map": "/static/js/main.57bd6fc7.chunk.js.map", + "main.js": "/static/js/main.b6b3aa76.chunk.js", + "main.js.map": "/static/js/main.b6b3aa76.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.8bda5920.js", "runtime-main.js.map": "/static/js/runtime-main.8bda5920.js.map", "static/js/2.97916048.chunk.js": "/static/js/2.97916048.chunk.js", @@ -12,6 +12,6 @@ "entrypoints": [ "static/js/runtime-main.8bda5920.js", "static/js/2.97916048.chunk.js", - "static/js/main.57bd6fc7.chunk.js" + "static/js/main.b6b3aa76.chunk.js" ] } \ No newline at end of file diff --git a/server/web/pages/template/pages/index.html b/server/web/pages/template/pages/index.html index 158c177..3a584b2 100644 --- a/server/web/pages/template/pages/index.html +++ b/server/web/pages/template/pages/index.html @@ -1 +1 @@ -TorrServer
\ No newline at end of file +TorrServer
\ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js b/server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js deleted file mode 100644 index 266ee58..0000000 --- a/server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[]).push([[0],{173:function(e){e.exports=JSON.parse('{"About":"About","Actions":"Actions","Add":"Add","AddDialog":{"AddPosterLinkInput":"Poster link","AddTorrentSourceNotification":"First add your torrent source","AppendFile":{"Or":"OR","ClickOrDrag":"CLICK / DRAG & DROP (.torrent)"},"CustomTorrentTitle":"Custom title (optional)","CustomTorrentTitleHelperText":"Write custom title to find poster","HashExists":"This torrent is already in database","OriginalTorrentTitle":"Original torrent title","TitleBlank":"Title (blank for orig. torrent title)","TorrentSourceLink":"Torrent source","TorrentSourceOptions":"magnet / hash / .torrent file link","WrongTorrentSource":"Wrong torrent source"},"AddFromLink":"Add Torrent","AddNewTorrent":"Add new torrent","B":"B","bps":"bps","Buffer":"Preload Buffer / Cache","BufferNote":"Set Preload Cache Before Play > 32 MB in settings to change preload size","Cache":"Cache","Cancel":"Cancel","Clear":"Clear","Close":"Close","CloseServer?":"Do you want to turn off server?","CloseServer":"Turn Off","CopyHash":"Copy Hash","CopyLink":"Copy link","Data":"Data","Delete":"Delete","DeleteTorrent?":"Delete Torrent?","DeleteTorrents?":"Delete All Torrents?","DetailedCacheView":{"button":"Detailed Cache View","header":"$t(DetailedCacheView.button)"},"Details":"Details","Donate?":"Want to donate?","Donate":"Donate","DownloadPlaylist":"Download Playlist","DownloadSpeed":"Download speed","Drop":"Drop","DropTorrent":"Reset Torrent","Edit":"Edit","EditTorrent":"Edit torrent","Episode":"Episode","FromLatestFile":"From Latest File","Full":"Full","GB":"GB","Gbps":"Gbps","Host":"Host","Info":"Info","KB":"KB","kbps":"kbps","Kilobytes":"Kilobytes","LatestFilePlayed":"Latest file played:","Links":"Links","MB":"MB","Mbps":"Mbps","Name":"Name","NoTorrentsAdded":"No torrents added","Offline":"Offline","OK":"OK","OpenLink":"Open link","Peers":"Peers","PiecesCount":"Pieces count","PiecesLength":"Pieces length","Preload":"Preload","ProjectSource":"Project page","Releases":"TorrServer Releases","RemoveAll":"Remove All","RemoveViews":"Remove View States","Resolution":"Resolution","Save":"Save","ScrollDown":"scroll down","Season":"Season","Sec":"s","Seconds":"Seconds","SelectSeason":"Select Season","SettingsDialog":{"AcceptPeerCon":"Accept Peer Connections","AddRetrackers":"Add retrackers","AdditionalSettings":"Additional Settings","CacheBeforeReaderDesc":"from cache will be saved before currently played frame","CacheAfterReaderDesc":"from cache will be loaded after currently played frame","CacheSize":"Cache Size","CacheSettings":"Cache Settings","CacheStorageLocation":"Cache Storage Location","ConnectionsLimit":"Connections Limit","ConnectionsLimitHint":"20-25 recommended","DHT":"DHT (Distributed Hash Table)","DhtConnectionLimit":"DHT Connection Limit","Disk":"Disk","DontAddRetrackers":"Don`t add retrackers","DownloadRateLimit":"Download Rate Limit","ForceEncrypt":"Force Encrypt Headers","PeersListenPort":"Peers Listen Port","PeersListenPortHint":"1024 - 65535, 0 - auto","PreloadCache":"Preload Cache Before Play","ProMode":"PRO mode","RAM":"RAM","ReaderReadAHead":"Readahead Cache (5-100%, rec. 95%)","RemoveCacheOnDrop":"Remove Cache from Disk on Drop Torrent","RemoveCacheOnDropDesc":"If disabled, cache removed on delete torrent.","RemoveRetrackers":"Remove retrackers","ReplaceRetrackers":"Replace retrackers","RetrackersMode":"Retrackers Mode","ResetToDefault":"Reset to default","Settings":"Settings","TorrentDisconnectTimeout":"Torrent Disconnect Timeout","TorrentsSavePath":"Torrents Save Path","Upload":"Upload (not recommended to disable)","UploadRateLimit":"Upload Rate Limit","UseDiskDesc":"Better use RAM or external storage on flash-based devices","Tabs":{"Main":"Main","Additional":"Additional","AdditionalDisabled":"(enable PRO mode)"}},"Size":"Size","SpecialThanks":"Special Thanks","Speed":"Speed","Support":"Support","TB":"TB","Tbps":"Tbps","ThanksToEveryone":"Thanks to everyone who tested and helped.","TorrentAdded":"Added","TorrentClosed":"\u0421losed","TorrentContent":"Torrent Content","TorrentDetails":"Torrent Details","TorrentGettingInfo":"Getting Info","TorrentInDb":"In DB","TorrentPreload":"Preload","TorrentSize":"Torrent size","TorrentState":"Torrent State","TorrentStatus":"Torrent Status","TorrentWorking":"Active","TurnOff":"Turn Off","UploadFile":"Upload File","UploadSpeed":"Upload speed","Viewed":"Viewed"}')},174:function(e){e.exports=JSON.parse('{"About":"\u041e \u0441\u0435\u0440\u0432\u0435\u0440\u0435","Actions":"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddDialog":{"AddPosterLinkInput":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u043e\u0441\u0442\u0435\u0440","AddTorrentSourceNotification":"\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a","AppendFile":{"Or":"\u0418\u041b\u0418","ClickOrDrag":"\u041d\u0410\u0416\u041c\u0418\u0422\u0415 / \u041f\u0415\u0420\u0415\u0422\u0410\u0429\u0418\u0422\u0415 \u0424\u0410\u0419\u041b (.torrent)"},"CustomTorrentTitle":"C\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)","CustomTorrentTitleHelperText":"\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0441\u0442\u0435\u0440","HashExists":"\u042d\u0442\u043e\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445","OriginalTorrentTitle":"\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TitleBlank":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043f\u0443\u0441\u0442\u043e\u0435 - \u043e\u0440\u0438\u0433. \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430)","TorrentSourceLink":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentSourceOptions":"magnet-\u0441\u0441\u044b\u043b\u043a\u0430 / \u0445\u0435\u0448 / \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 .torrent \u0444\u0430\u0439\u043b","WrongTorrentSource":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a"},"AddFromLink":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddNewTorrent":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0442\u043e\u0440\u0440\u0435\u043d\u0442","B":"\u0411","bps":"\u0431\u0438\u0442/c","Buffer":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 / \u041a\u0435\u0448","BufferNote":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 > 32 \u041c\u0411 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Cache":"\u041a\u0435\u0448","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","CloseServer?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440?","CloseServer":"\u0412\u044b\u043a\u043b. \u0441\u0435\u0440\u0432\u0435\u0440","CopyHash":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u0435\u0448","CopyLink":"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c","Data":"\u0414\u0430\u043d\u043d\u044b\u0435","Delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","DeleteTorrent?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442?","DeleteTorrents?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u044b?","DetailedCacheView":{"button":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u0435\u0448\u0430","header":"\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u0435\u0448\u0430"},"Details":"\u0418\u043d\u0444\u043e","Donate?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442?","Donate":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430","DownloadPlaylist":"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","DownloadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Drop":"\u0421\u0431\u0440\u043e\u0441","DropTorrent":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Edit":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c","EditTorrent":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Episode":"\u0421\u0435\u0440\u0438\u044f","FromLatestFile":"C \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430","Full":"\u041f\u043e\u043b\u043d\u044b\u0439","GB":"\u0413\u0411","Gbps":"\u0413\u0431\u0438\u0442/c","Host":"\u0425\u043e\u0441\u0442","Info":"\u0418\u043d\u0444\u043e","KB":"\u041a\u0411","kbps":"\u043a\u0431\u0438\u0442/\u0441","Kilobytes":"\u041a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u044b","LatestFilePlayed":"\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:","Links":"\u0421\u0441\u044b\u043b\u043a\u0438","MB":"\u041c\u0411","Mbps":"\u041c\u0431\u0438\u0442/c","Name":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","NoTorrentsAdded":"\u041d\u0435\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u043e\u0432","Offline":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d","OK":"OK","OpenLink":"\u041e\u0442\u043a\u0440\u044b\u0442\u044c","Peers":"\u041f\u0438\u0440\u044b","PiecesCount":"\u041a\u043e\u043b-\u0432\u043e \u0431\u043b\u043e\u043a\u043e\u0432","PiecesLength":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430","Preload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440.","ProjectSource":"\u0421\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430","Releases":"\u0420\u0435\u043b\u0438\u0437\u044b TorrServer","RemoveAll":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435","RemoveViews":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b","Resolution":"\u0420\u0430\u0437\u0440\u0435\u0448.","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","ScrollDown":"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u0437","Season":"\u0421\u0435\u0437\u043e\u043d","Sec":"c","Seconds":"\u0421\u0435\u043a\u0443\u043d\u0434\u044b","SelectSeason":"\u0412\u044b\u0431\u043e\u0440 \u0441\u0435\u0437\u043e\u043d\u0430","SettingsDialog":{"AcceptPeerCon":"\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","AddRetrackers":"\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c","AdditionalSettings":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","CacheBeforeReaderDesc":"\u043e\u0442 \u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheAfterReaderDesc":"\u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0435\u0440\u0435\u0434\u0438 \u043e\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0435\u0448\u0430","CacheSettings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0435\u0448\u0430","CacheStorageLocation":"\u041c\u0435\u0441\u0442\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","ConnectionsLimit":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","ConnectionsLimitHint":"\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f 20-25","DHT":"DHT (Distributed Hash Table)","DhtConnectionLimit":"\u041b\u0438\u043c\u0438\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 DHT","Disk":"\u041f\u0417\u0423 / \u041d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c","DontAddRetrackers":"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c","DownloadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","ForceEncrypt":"\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432","PeersListenPort":"\u041f\u043e\u0440\u0442 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439","PeersListenPortHint":"1024 - 65535, 0 - \u0430\u0432\u0442\u043e","PreloadCache":"\u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","ProMode":"\u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c","RAM":"\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c","ReaderReadAHead":"\u041e\u043f\u0435\u0440\u0435\u0436\u0430\u044e\u0449\u0438\u0439 \u043a\u0435\u0448 (5-100%, \u0440\u0435\u043a. 95%)","RemoveCacheOnDrop":"\u041e\u0447\u0438\u0449\u0430\u0442\u044c \u043a\u0435\u0448 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","RemoveCacheOnDropDesc":"\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u043a\u0435\u0448 \u043e\u0447\u0438\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430.","RemoveRetrackers":"\u0423\u0434\u0430\u043b\u044f\u0442\u044c","ReplaceRetrackers":"\u0417\u0430\u043c\u0435\u043d\u044f\u0442\u044c","RetrackersMode":"\u0420\u0435\u0442\u0440\u0435\u043a\u0435\u0440\u044b","ResetToDefault":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","TorrentDisconnectTimeout":"\u0422\u0430\u0439\u043c-\u0430\u0443\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentsSavePath":"\u041f\u0443\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","Upload":"\u041e\u0442\u0434\u0430\u0447\u0430 (\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c)","UploadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u0434\u0430\u0447\u0438","UseDiskDesc":"\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 flash-\u043f\u0430\u043c\u044f\u0442\u044c\u044e","Tabs":{"Main":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435","Additional":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435","AdditionalDisabled":"(\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c)"}},"Size":"\u0420\u0430\u0437\u043c\u0435\u0440","SpecialThanks":"\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e","Speed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c","Support":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c","TB":"\u0422\u0411","Tbps":"\u0422\u0431\u0438\u0442/\u0441","ThanksToEveryone":"\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u043b!","TorrentAdded":"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d","TorrentClosed":"\u0417\u0430\u043a\u0440\u044b\u0442","TorrentContent":"\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentDetails":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0435","TorrentGettingInfo":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e","TorrentInDb":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442 \u0432 \u0411\u0414","TorrentPreload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430","TorrentSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentState":"\u0414\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentStatus":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentWorking":"\u0410\u043a\u0442\u0438\u0432\u0435\u043d","TurnOff":"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c","UploadFile":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b","UploadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u0434\u0430\u0447\u0438","Viewed":"\u041f\u0440\u043e\u0441\u043c."}')},330:function(e,t){},333:function(e,t){},335:function(e,t){},337:function(e,t){},382:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n(18),i=n.n(r),o=n(475),c=n(188),l=n(10),s=n(470),d=n(64),p=n(386),j=n(453),b=n(471),u=n(472),h=n(473),x=n(474),g=window.location,m=g.protocol,O=g.hostname,f=g.port,C="".concat(m,"//").concat(O).concat(f?":".concat(f):""),v=function(){return"".concat(C,"/torrents")},y=function(){return"".concat(C,"/viewed")},w=function(){return"".concat(C,"/settings")},S=function(){return"".concat(C,"/stream")},k=function(){return"".concat(C,"/echo")},D=n(171),T=n(21),P=n.n(T),M=n(23),B=n(451),R=n(452),L=n(454),A=n(72),z=n.n(A),F=n(100),E=n(74),G=n(126),N=n(86),I=n(172),U=n(173),H=n(174);G.a.use(I.a).use(N.e).init({fallbackLng:"en",interpolation:{escapeValue:!1},resources:{en:{translation:U},ru:{translation:H}}});var W=G.a;function V(e){if(!e)return"";var t=Math.floor(Math.log(e)/Math.log(1024));return"".concat(1*(e/Math.pow(1024,t)).toFixed(2)," ").concat([W.t("B"),W.t("KB"),W.t("MB"),W.t("GB"),W.t("TB")][t])}function Z(e){if(!e)return"";var t=Math.floor(Math.log(8*e)/Math.log(1e3));return"".concat(1*(8*e/Math.pow(1e3,t)).toFixed(0)," ").concat([W.t("bps"),W.t("kbps"),W.t("Mbps"),W.t("Gbps"),W.t("Tbps")][t])}function _(e){return e&&e.connected_seeders?"".concat(e.connected_seeders," \xb7 ").concat(e.active_peers," / ").concat(e.total_peers):null}var K=function(e){var t=e;[["(",")"],["[","]"],["{","}"]].forEach((function(e){var n="\\".concat(e[0]),a=new RegExp(n,"g"),r=Object(E.a)(t.matchAll(a)).length,i="\\".concat(e[1]),o=new RegExp(i,"g");if(r!==Object(E.a)(t.matchAll(o)).length){var c="(\\".concat(e[0],")(?!.*\\1).*"),l=new RegExp(c,"g");t=t.replace(l,"")}}));var n=!!t.match(/\.{3}$/g),a=t.replace(/[\\.| ]+$/g,"").trim();return n?"".concat(a,".."):a},J=function(){var e=Object(F.a)(z.a.mark((function e(){var t,n;return z.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,P.a.post(v(),{action:"list"});case 3:return t=e.sent,n=t.data,e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),new Error(null);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(){return e.apply(this,arguments)}}(),Y=n(32),$=n(1),X=function(e){var t=e.color,n=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"80px",width:"80px",fill:t||n,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",version:"1.1",x:"0px",y:"0px",viewBox:"0 0 100 100",enableBackground:"new 0 0 100 100",xmlSpace:"preserve",children:Object($.jsxs)("g",{children:[Object($.jsx)("path",{d:"M18.293,93.801c0.066,0.376,0.284,0.718,0.597,0.937c0.313,0.219,0.708,0.307,1.085,0.241l70.058-12.353 c0.376-0.066,0.718-0.284,0.937-0.597c0.219-0.313,0.307-0.708,0.24-1.085l-9.502-53.891c-0.139-0.79-0.892-1.317-1.682-1.178 l-19.402,3.421L47.997,14.16c0.241-0.706,0.375-1.456,0.375-2.229c0-0.399-0.035-0.804-0.106-1.209C47.671,7.363,44.757,5,41.455,5 c-0.4,0-0.804,0.035-1.209,0.106h0c-3.359,0.595-5.723,3.509-5.723,6.812c0,0.4,0.035,0.804,0.106,1.209 c0.178,1.005,0.567,1.918,1.109,2.709l-6.875,19.061L9.968,38.228c-0.79,0.139-1.317,0.892-1.177,1.682L18.293,93.801z M40.75,7.966L40.75,7.966c0.239-0.042,0.474-0.062,0.705-0.062c1.909,0,3.612,1.373,3.953,3.324v0 c0.042,0.238,0.062,0.473,0.062,0.704c0,1.908-1.373,3.612-3.323,3.953h0.001c-0.238,0.042-0.473,0.062-0.705,0.062 c-1.908,0-3.612-1.373-3.953-3.323c-0.042-0.238-0.062-0.473-0.062-0.705C37.427,10.01,38.799,8.306,40.75,7.966z M38.059,17.96 c1.012,0.569,2.17,0.89,3.383,0.89c0.399,0,0.804-0.034,1.208-0.106h0.001c1.48-0.263,2.766-0.976,3.743-1.974l10.935,13.108 L32.16,34.315L38.059,17.96z M29.978,37.648c0.136-0.004,0.268-0.029,0.396-0.07l29.75-5.246c0.134-0.006,0.266-0.027,0.395-0.07 l18.582-3.277l8.998,51.031L20.9,91.867l-8.998-51.032L29.978,37.648z"}),Object($.jsx)("path",{d:"M49.984,75.561c0.809,0,1.627-0.065,2.449-0.199l0.001,0c7.425-1.213,12.701-7.627,12.701-14.919 c0-0.809-0.065-1.627-0.199-2.449c-1.213-7.425-7.626-12.701-14.919-12.701c-0.808,0-1.627,0.065-2.45,0.199 c-7.425,1.213-12.701,7.626-12.701,14.918c0,0.808,0.065,1.627,0.199,2.449C36.278,70.284,42.692,75.561,49.984,75.561z M51.967,72.496c-0.668,0.109-1.33,0.161-1.983,0.161c-5.883,0-11.079-4.265-12.053-10.265c-0.109-0.668-0.161-1.33-0.161-1.983 c0-2.108,0.555-4.123,1.534-5.892l19.693,14.176C57.206,70.645,54.782,72.039,51.967,72.496z M48.034,48.357L48.034,48.357 c0.668-0.109,1.329-0.161,1.983-0.161c5.882,0,11.079,4.265,12.053,10.265c0.109,0.667,0.161,1.329,0.161,1.983 c0,2.109-0.556,4.127-1.536,5.897L41.001,52.163C42.791,50.21,45.217,48.814,48.034,48.357z"}),Object($.jsx)("polygon",{points:"47.567,45.492 47.567,45.492 47.568,45.491 "})]})})},q=function(){var e=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"100px",width:"100px",fill:e,viewBox:"0 0 452 452",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:Object($.jsxs)("g",{id:"#000000",children:[Object($.jsx)("path",{opacity:"1.00",d:" M 210.49 18.69 C 244.92 16.12 280.02 22.13 311.46 36.47 C 344.90 51.54 374.16 75.69 395.41 105.58 C 415.62 133.87 428.55 167.34 432.48 201.89 C 438.07 248.86 427.02 297.61 401.45 337.43 C 382.92 366.59 357.02 391.04 326.80 407.80 C 300.81 422.31 271.64 431.08 241.96 433.26 C 207.37 435.97 172.14 429.83 140.54 415.51 C 109.95 401.69 82.82 380.33 62.16 353.86 C 39.25 324.67 24.38 289.21 19.78 252.38 C 14.94 214.51 20.65 175.31 36.47 140.54 C 54.11 101.38 84.24 67.99 121.37 46.39 C 148.44 30.52 179.19 20.98 210.49 18.69 M 213.46 36.60 C 178.91 38.80 145.03 50.71 116.76 70.72 C 84.67 93.21 59.84 125.88 46.91 162.88 C 34.87 196.99 32.96 234.54 41.25 269.73 C 48.89 302.45 65.53 332.98 88.79 357.21 C 113.91 383.56 146.78 402.45 182.25 410.72 C 216.67 418.86 253.37 417.21 286.87 405.85 C 329.85 391.49 367.13 361.01 389.89 321.85 C 406.02 294.41 414.96 262.84 415.73 231.03 C 416.71 196.59 408.11 161.91 390.97 132.00 C 372.31 99.13 343.57 72.09 309.61 55.49 C 279.95 40.89 246.43 34.40 213.46 36.60 Z"}),Object($.jsx)("path",{opacity:"1.00",d:" M 217.02 117.63 C 223.01 117.45 228.99 117.45 234.98 117.63 C 235.16 150.72 234.93 183.81 235.09 216.89 C 268.18 217.03 301.28 216.82 334.38 216.99 C 334.57 222.99 334.57 229.00 334.38 235.01 C 301.28 235.18 268.18 234.97 235.09 235.11 C 234.93 268.19 235.16 301.28 234.98 334.37 C 228.99 334.55 223.00 334.55 217.02 334.37 C 216.84 301.28 217.07 268.19 216.92 235.11 C 183.82 234.97 150.72 235.17 117.62 235.01 C 117.43 229.00 117.43 222.99 117.62 216.99 C 150.72 216.82 183.82 217.03 216.91 216.89 C 217.07 183.81 216.84 150.72 217.02 117.63 Z"})]})})},Q=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"96.96632385253906 377.9800109863281 873.03369140625 310.9999694824219",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 603.05 378.50 C 648.01 378.10 692.99 378.30 737.96 378.24 C 746.80 377.82 755.66 378.04 764.51 378.02 C 764.49 396.01 764.50 414.00 764.50 432.00 C 833.00 432.01 901.50 431.99 970.00 432.00 C 970.00 499.67 970.00 567.33 970.00 635.00 C 941.01 635.01 912.02 634.98 883.04 635.01 C 868.37 635.70 853.70 634.86 839.03 635.00 C 814.19 635.00 789.35 634.99 764.50 635.00 C 764.50 652.99 764.49 670.99 764.51 688.98 C 722.02 688.64 679.51 688.76 637.01 688.76 C 610.36 688.24 583.70 688.61 557.04 688.50 C 535.36 688.64 513.69 688.06 492.00 688.25 C 467.01 688.45 442.03 687.89 417.04 688.00 C 393.35 688.06 369.67 687.54 345.97 687.76 C 331.65 687.28 317.32 687.58 303.00 687.51 C 287.69 686.89 272.35 687.61 257.03 686.99 C 244.25 687.26 231.37 686.92 218.84 684.09 C 183.39 676.56 151.36 655.48 129.16 627.00 C 110.45 603.11 98.57 573.55 97.40 543.09 C 95.46 518.81 100.09 494.17 110.06 471.99 C 126.89 434.21 159.00 403.08 198.12 389.13 C 227.91 377.22 260.63 379.63 292.01 379.76 C 308.00 379.13 324.02 379.87 340.01 379.25 C 355.65 379.17 371.30 379.41 386.95 379.13 C 409.62 378.70 432.32 379.37 455.00 378.74 C 504.35 378.92 553.69 378.31 603.05 378.50 M 348.01 411.51 C 320.98 411.52 293.95 411.45 266.93 411.54 C 256.91 412.17 246.82 411.10 236.84 412.46 C 208.12 415.88 181.14 430.38 161.51 451.48 C 144.71 469.43 133.29 492.57 130.42 517.07 C 124.64 554.31 138.80 593.31 165.32 619.73 C 177.83 632.43 193.39 641.88 210.05 648.05 C 228.40 654.56 248.11 655.87 267.42 655.59 C 319.94 655.19 372.45 655.94 424.97 655.75 C 450.32 655.57 475.67 656.17 501.02 656.00 C 525.32 656.12 549.63 655.73 573.92 656.26 C 626.62 656.05 679.30 656.63 732.00 656.50 C 732.00 574.50 732.00 492.50 732.00 410.51 C 689.66 410.38 647.34 410.94 605.01 410.75 C 587.68 410.55 570.37 411.13 553.05 411.00 C 526.36 411.00 499.67 411.01 472.98 411.00 C 431.33 411.69 389.65 410.81 348.01 411.51 M 764.49 464.27 C 764.51 510.42 764.51 556.58 764.49 602.73 C 822.24 602.77 879.99 602.74 937.74 602.75 C 938.25 556.59 937.90 510.41 937.99 464.25 C 880.16 464.27 822.32 464.23 764.49 464.27 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.49 484.02 C 853.57 483.79 864.63 484.32 875.71 484.25 C 876.25 495.35 875.68 506.46 875.04 517.54 C 864.40 517.59 853.77 516.92 843.13 517.38 C 842.74 516.32 842.40 515.20 842.48 514.06 C 842.50 504.04 842.50 494.03 842.49 484.02 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 287.02 517.49 C 345.02 517.51 403.02 517.49 461.02 517.50 C 499.18 517.57 537.34 517.29 575.49 517.75 C 575.51 528.25 575.51 538.75 575.49 549.25 C 531.01 549.74 486.52 549.41 442.04 549.50 C 390.37 549.51 338.69 549.49 287.02 549.51 C 286.99 538.84 286.99 528.16 287.02 517.49 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.78 549.74 C 853.53 549.91 864.26 549.51 875.01 549.44 C 875.73 560.52 876.27 571.65 875.71 582.75 C 864.63 582.80 853.57 583.17 842.49 582.99 C 842.69 571.91 842.12 560.80 842.78 549.74 Z"})]})},ee=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"13.928732872009277 69.97769927978516 172.15252685546875 60.067893981933594",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 18.20 70.32 C 19.46 70.07 20.73 69.96 22.01 69.98 C 74.36 70.03 126.72 69.97 179.08 70.01 C 182.16 69.72 185.50 71.74 185.82 74.99 C 186.15 79.61 186.20 84.29 185.78 88.91 C 183.66 90.31 179.87 90.73 180.00 93.99 C 179.86 97.27 183.68 97.69 185.79 99.12 C 186.27 107.07 185.91 115.06 185.99 123.03 C 186.29 126.14 184.25 129.52 180.97 129.83 C 175.33 130.27 169.65 129.88 164.00 130.00 C 147.71 129.85 131.39 130.31 115.12 129.78 C 112.92 127.53 114.51 123.74 113.95 120.86 C 114.67 118.55 111.27 116.64 110.24 119.19 C 109.73 122.42 110.24 125.71 109.79 128.95 C 108.65 130.43 106.57 129.83 104.96 130.03 C 76.94 129.95 48.93 130.04 20.91 129.99 C 17.47 130.37 13.95 127.70 14.07 124.10 C 14.02 115.76 13.75 107.39 14.22 99.07 C 16.33 97.68 20.10 97.27 20.00 94.03 C 20.17 90.71 16.28 90.35 14.20 88.85 C 13.80 84.56 13.92 80.24 14.07 75.94 C 14.03 73.43 15.75 70.97 18.20 70.32 M 18.23 75.15 C 17.73 78.78 18.05 82.46 18.02 86.11 C 21.05 87.67 24.20 90.21 23.99 94.00 C 24.20 97.79 21.03 100.31 18.01 101.89 C 18.15 109.55 17.67 117.24 18.22 124.87 C 18.45 125.10 18.90 125.56 19.13 125.78 C 26.06 126.33 33.03 125.84 39.98 126.00 C 39.99 123.36 40.01 120.72 40.09 118.08 C 62.07 117.87 84.05 118.10 106.03 117.96 C 107.62 116.17 109.32 113.83 112.02 114.00 C 114.70 113.85 116.37 116.19 117.96 117.96 C 131.94 118.09 145.93 117.88 159.91 118.08 C 159.98 120.72 160.01 123.36 160.02 126.00 C 166.94 125.83 173.90 126.34 180.80 125.78 C 181.05 125.57 181.54 125.14 181.78 124.93 C 182.32 117.28 181.85 109.57 181.99 101.90 C 178.96 100.31 175.78 97.79 176.01 93.99 C 175.79 90.20 178.94 87.66 181.98 86.11 C 181.94 82.47 182.27 78.80 181.77 75.19 C 181.16 73.66 179.34 74.17 178.06 73.99 C 126.04 74.00 74.01 74.01 21.99 73.99 C 20.69 74.16 18.91 73.67 18.23 75.15 M 42.00 120.00 C 42.00 122.00 42.00 124.00 42.00 126.00 C 43.33 126.00 44.67 126.00 46.00 126.00 C 46.00 124.00 46.00 122.00 46.00 120.00 C 44.67 120.00 43.33 120.00 42.00 120.00 M 48.00 120.00 C 48.00 122.00 48.00 124.00 48.00 126.00 C 49.33 126.00 50.67 126.00 52.00 126.00 C 52.00 124.00 52.00 122.00 52.00 120.00 C 50.67 120.00 49.33 120.00 48.00 120.00 M 54.00 120.00 C 54.00 122.00 54.00 124.00 54.00 126.00 C 55.33 126.00 56.67 126.00 58.00 126.00 C 58.00 124.00 58.00 122.00 58.00 120.00 C 56.67 120.00 55.33 120.00 54.00 120.00 M 60.00 120.00 C 60.00 122.00 60.00 124.00 60.00 126.00 C 61.33 126.00 62.67 126.00 64.00 126.00 C 64.00 124.00 64.00 122.00 64.00 120.00 C 62.67 120.00 61.33 120.00 60.00 120.00 M 66.00 120.00 C 66.00 122.00 66.00 124.00 66.00 126.00 C 67.33 126.00 68.67 126.00 70.00 126.00 C 70.00 124.00 70.00 122.00 70.00 120.00 C 68.67 120.00 67.33 120.00 66.00 120.00 M 72.00 120.00 C 72.00 122.00 72.00 124.00 72.00 126.00 C 73.33 126.00 74.67 126.00 76.00 126.00 C 76.00 124.00 76.00 122.00 76.00 120.00 C 74.67 120.00 73.33 120.00 72.00 120.00 M 78.00 120.00 C 78.00 122.00 78.00 124.00 78.00 126.00 C 79.33 126.00 80.67 126.00 82.00 126.00 C 82.00 124.00 82.00 122.00 82.00 120.00 C 80.67 120.00 79.33 120.00 78.00 120.00 M 84.00 120.00 C 84.00 122.00 84.00 124.00 84.00 126.00 C 85.33 126.00 86.67 126.00 88.00 126.00 C 88.00 124.00 88.00 122.00 88.00 120.00 C 86.67 120.00 85.33 120.00 84.00 120.00 M 90.00 120.00 C 90.00 122.00 90.00 124.00 90.00 126.00 C 91.33 126.00 92.67 126.00 94.00 126.00 C 94.00 124.00 94.00 122.00 94.00 120.00 C 92.67 120.00 91.33 120.00 90.00 120.00 M 96.00 120.00 C 96.00 122.00 96.00 124.00 96.00 126.00 C 97.33 126.00 98.67 126.00 100.00 126.00 C 100.00 124.00 100.00 122.00 100.00 120.00 C 98.67 120.00 97.33 120.00 96.00 120.00 M 102.00 120.00 C 102.00 122.00 102.00 124.00 102.00 126.00 C 103.33 126.00 104.67 126.00 106.00 126.00 C 106.00 124.00 106.00 122.00 106.00 120.00 C 104.67 120.00 103.33 120.00 102.00 120.00 M 118.00 120.00 C 118.00 122.00 118.00 124.00 118.00 126.00 C 119.33 126.00 120.67 126.00 122.00 126.00 C 122.00 124.00 122.00 122.00 122.00 120.00 C 120.67 120.00 119.33 120.00 118.00 120.00 M 124.00 120.00 C 124.00 122.00 124.00 124.00 124.00 126.00 C 125.33 126.00 126.67 126.00 128.00 126.00 C 128.00 124.00 128.00 122.00 128.00 120.00 C 126.67 120.00 125.33 120.00 124.00 120.00 M 130.00 120.00 C 130.00 122.00 130.00 124.00 130.00 126.00 C 131.33 126.00 132.67 126.00 134.00 126.00 C 134.00 124.00 134.00 122.00 134.00 120.00 C 132.67 120.00 131.33 120.00 130.00 120.00 M 136.00 120.00 C 136.00 122.00 136.00 124.00 136.00 126.00 C 137.33 126.00 138.67 126.00 140.00 126.00 C 140.00 124.00 140.00 122.00 140.00 120.00 C 138.67 120.00 137.33 120.00 136.00 120.00 M 142.00 120.00 C 142.00 122.00 142.00 124.00 142.00 126.00 C 143.33 126.00 144.66 126.00 146.00 126.00 C 146.00 124.00 146.00 122.00 146.00 120.00 C 144.67 120.00 143.33 120.00 142.00 120.00 M 148.00 120.00 C 148.00 122.00 148.00 124.00 148.00 126.00 C 149.33 126.00 150.66 126.00 152.00 126.00 C 152.00 124.00 152.00 122.00 152.00 120.00 C 150.67 120.00 149.33 120.00 148.00 120.00 M 154.00 120.00 C 154.00 122.00 154.00 124.00 154.00 126.00 C 155.33 126.00 156.66 126.00 158.00 126.00 C 158.00 124.00 158.00 122.00 158.00 120.00 C 156.67 120.00 155.33 120.00 154.00 120.00 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 30.03 81.93 C 29.85 80.12 30.82 77.95 32.93 78.11 C 37.91 77.93 42.93 77.74 47.89 78.25 C 50.98 79.21 49.68 83.33 50.10 85.77 C 49.59 85.78 48.57 85.80 48.06 85.80 C 48.01 83.89 47.96 81.98 47.90 80.08 C 42.62 79.96 37.35 79.96 32.08 80.08 C 31.95 89.36 31.95 98.64 32.08 107.91 C 37.36 108.05 42.64 108.05 47.92 107.91 C 48.02 104.01 48.01 100.11 48.02 96.21 C 48.51 96.21 49.48 96.21 49.97 96.20 C 49.93 100.09 50.29 104.01 49.76 107.87 C 49.40 110.05 46.77 109.95 45.09 110.01 C 40.74 109.96 36.36 110.29 32.04 109.74 C 29.91 109.31 30.07 106.74 29.99 105.08 C 30.02 97.37 29.93 89.65 30.03 81.93 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 56.08 78.25 C 61.33 77.80 66.67 77.79 71.92 78.25 C 74.45 78.84 73.88 82.03 74.03 83.96 C 73.88 91.66 74.20 99.37 73.89 107.07 C 73.99 110.35 68.80 111.17 67.40 108.44 C 68.91 108.19 70.43 107.96 71.95 107.75 C 72.01 98.53 72.08 89.30 71.91 80.08 C 66.64 79.96 61.36 79.96 56.08 80.08 C 55.95 89.35 55.95 98.63 56.08 107.90 C 58.65 107.98 61.23 108.01 63.80 108.04 C 63.80 108.54 63.78 109.52 63.78 110.02 C 60.75 109.51 55.74 111.45 54.25 107.89 C 53.63 99.96 54.19 91.96 53.97 84.00 C 54.13 82.06 53.53 78.84 56.08 78.25 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 79.38 78.49 C 84.51 77.49 89.88 78.03 95.10 78.12 C 97.17 77.98 98.14 80.11 97.97 81.89 C 98.04 89.96 98.04 98.04 97.97 106.11 C 98.13 107.87 97.20 109.99 95.14 109.88 C 90.11 110.08 85.02 110.27 80.01 109.73 C 77.91 109.26 78.05 106.71 77.99 105.04 C 77.99 97.70 77.99 90.35 77.99 83.01 C 78.12 81.47 77.82 79.41 79.38 78.49 M 80.08 80.08 C 79.95 89.36 79.95 98.64 80.08 107.92 C 85.36 108.04 90.64 108.04 95.92 107.92 C 96.05 98.64 96.05 89.36 95.92 80.08 C 90.64 79.96 85.36 79.96 80.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 103.34 78.52 C 108.47 77.46 113.88 78.05 119.12 78.12 C 121.20 77.99 122.14 80.13 121.97 81.91 C 122.04 89.97 122.04 98.04 121.97 106.10 C 122.14 107.87 121.19 110.00 119.12 109.88 C 114.37 110.13 109.59 110.13 104.85 109.88 C 102.80 109.99 101.86 107.88 102.03 106.13 C 101.92 98.40 102.03 90.66 101.99 82.93 C 102.13 81.44 101.84 79.43 103.34 78.52 M 104.08 80.08 C 103.95 89.36 103.95 98.64 104.08 107.92 C 109.36 108.05 114.64 108.04 119.92 107.92 C 120.06 98.64 120.05 89.36 119.92 80.08 C 114.64 79.96 109.36 79.95 104.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 127.43 78.45 C 131.88 77.51 136.52 78.12 141.04 77.99 C 143.01 77.87 145.98 78.22 145.88 80.86 C 146.19 88.89 145.92 96.94 146.01 104.98 C 145.93 106.67 146.12 109.28 143.96 109.74 C 141.40 110.19 138.79 109.99 136.21 110.02 C 136.21 109.52 136.21 108.53 136.21 108.04 C 138.78 108.01 141.35 107.98 143.92 107.91 C 144.05 98.63 144.06 89.35 143.92 80.08 C 138.64 79.96 133.36 79.96 128.09 80.08 C 128.02 82.64 127.99 85.21 127.96 87.78 C 127.47 87.79 126.48 87.79 125.99 87.79 C 126.38 84.77 124.90 80.72 127.43 78.45 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 151.38 78.48 C 155.82 77.48 160.48 78.14 165.01 77.99 C 167.01 77.85 170.02 78.25 169.89 80.92 C 170.18 88.94 169.92 96.98 170.01 105.01 C 170.13 107.00 169.77 109.99 167.12 109.88 C 162.10 110.07 157.02 110.27 152.02 109.74 C 149.89 109.27 150.05 106.67 149.99 104.99 C 149.99 97.64 149.99 90.30 149.99 82.95 C 150.12 81.43 149.84 79.39 151.38 78.48 M 152.08 80.08 C 151.95 89.36 151.95 98.64 152.08 107.92 C 157.36 108.04 162.64 108.04 167.92 107.92 C 168.05 98.64 168.05 89.36 167.92 80.08 C 162.64 79.96 157.36 79.96 152.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 48.01 88.19 C 48.50 88.19 49.49 88.19 49.99 88.19 C 49.98 90.06 49.98 91.92 49.99 93.78 C 49.49 93.79 48.51 93.79 48.01 93.79 C 48.01 91.92 48.01 90.06 48.01 88.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 126.01 92.19 C 126.51 92.19 127.49 92.19 127.99 92.19 C 127.98 94.06 127.98 95.93 127.98 97.80 C 127.49 97.79 126.50 97.78 126.01 97.78 C 126.01 95.91 126.01 94.05 126.01 92.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 125.98 100.19 C 126.48 100.19 127.47 100.19 127.96 100.19 C 127.99 102.75 128.02 105.32 128.08 107.88 C 129.98 107.95 131.89 108.01 133.81 108.07 C 133.80 108.57 133.78 109.59 133.77 110.10 C 131.39 109.71 128.07 110.79 126.45 108.53 C 125.66 105.83 126.07 102.96 125.98 100.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 24.41 112.66 C 27.59 110.67 32.28 113.20 32.00 117.04 C 32.18 120.52 28.24 123.02 25.11 121.66 C 21.33 120.42 20.93 114.50 24.41 112.66 M 26.15 114.12 C 24.25 114.47 23.50 116.93 24.38 118.50 C 25.45 120.81 29.45 120.37 29.89 117.81 C 30.58 115.59 28.37 113.39 26.15 114.12 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 170.48 112.62 C 173.67 110.70 178.29 113.25 178.00 117.06 C 178.16 120.55 174.19 123.04 171.06 121.64 C 167.28 120.35 166.95 114.41 170.48 112.62 M 172.11 114.13 C 169.72 114.60 169.28 118.30 171.30 119.51 C 173.13 120.90 176.17 119.39 175.97 117.02 C 176.16 114.97 173.98 113.54 172.11 114.13 Z"})]})},te=function(){var e=Object(Y.a)().palette.primary.main,t="#00a572"===e?"#74c39c":"#4a5255";return Object($.jsxs)("svg",{width:"150px",height:"150px",viewBox:"0 0 512 512",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsxs)("g",{id:e,children:[Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 102.41 0.00 L 319.87 0.00 C 320.21 29.68 319.87 59.37 320.04 89.05 C 320.29 97.32 323.88 105.47 329.94 111.12 C 336.01 117.07 344.56 120.18 353.01 120.01 C 382.02 119.87 411.04 120.22 440.05 119.83 C 439.94 236.88 440.04 353.93 440.00 470.98 C 440.01 478.16 440.50 485.68 437.47 492.41 C 432.79 503.85 421.05 511.80 408.71 512.00 L 103.28 512.00 C 90.95 511.79 79.20 503.84 74.53 492.42 C 72.06 486.96 71.87 480.87 71.99 474.97 C 72.01 327.63 71.99 180.30 72.00 32.96 C 71.95 27.61 73.03 22.22 75.52 17.46 C 80.55 7.39 91.19 0.57 102.41 0.00 M 360.00 382.07 C 358.69 383.73 359.01 385.99 358.90 387.97 C 358.95 396.36 358.91 404.75 358.93 413.14 C 352.50 403.51 346.13 393.83 339.77 384.16 C 338.65 382.47 337.13 380.65 334.92 380.63 C 331.97 380.41 329.13 382.87 329.22 385.89 C 328.94 396.58 329.24 407.28 329.08 417.98 C 329.14 420.43 328.85 422.98 329.54 425.38 C 330.75 429.14 337.11 428.63 337.54 424.63 C 338.19 415.09 337.55 405.51 337.83 395.95 C 343.71 404.78 349.41 413.73 355.26 422.58 C 356.92 424.93 358.74 427.96 362.00 428.00 C 365.02 428.51 367.54 425.83 367.40 422.90 C 367.55 411.27 367.39 399.62 367.48 387.99 C 367.40 386.11 367.63 384.06 366.61 382.38 C 365.24 380.16 361.58 380.00 360.00 382.07 M 100.79 382.81 C 98.94 384.82 100.19 388.63 103.01 388.89 C 106.91 389.29 110.85 388.97 114.77 389.07 C 114.77 399.73 114.78 410.39 114.75 421.05 C 114.76 423.37 114.89 426.34 117.28 427.52 C 119.95 429.02 123.67 427.14 123.86 424.04 C 124.22 412.40 123.84 400.72 124.04 389.07 C 128.25 388.87 132.57 389.54 136.71 388.62 C 140.15 387.40 139.25 381.72 135.61 381.56 C 126.10 381.14 116.55 381.57 107.03 381.37 C 104.95 381.53 102.34 381.06 100.79 382.81 M 156.46 381.58 C 150.26 383.15 145.11 388.05 143.12 394.11 C 140.49 401.86 140.79 410.83 144.81 418.06 C 151.07 429.05 167.20 430.79 177.27 424.26 C 183.48 420.06 186.24 412.28 186.28 405.03 C 186.43 398.11 184.59 390.56 179.19 385.85 C 173.03 380.52 164.12 379.62 156.46 381.58 M 197.74 381.67 C 195.24 381.99 194.12 384.61 194.23 386.87 C 194.06 397.92 194.27 408.97 194.15 420.02 C 194.24 422.43 193.92 425.36 195.97 427.11 C 198.62 429.25 203.28 427.47 203.31 423.89 C 203.66 418.45 203.32 412.99 203.49 407.54 C 206.76 407.72 210.68 407.24 213.15 409.89 C 217.60 414.61 220.01 420.80 223.85 425.97 C 225.63 428.66 230.20 428.72 231.83 425.86 C 232.87 424.27 231.80 422.43 231.24 420.89 C 228.63 415.38 225.17 409.99 220.02 406.56 C 223.42 405.53 227.11 404.31 229.29 401.31 C 233.14 395.94 231.83 387.34 226.14 383.76 C 221.99 381.01 216.77 381.52 212.04 381.39 C 207.28 381.52 202.48 381.08 197.74 381.67 M 240.23 386.91 C 240.19 398.28 240.20 409.66 240.22 421.03 C 240.25 423.12 240.14 425.65 241.97 427.09 C 244.58 429.23 249.25 427.52 249.33 423.98 C 249.76 418.50 249.34 413.00 249.49 407.51 C 252.77 407.64 256.62 407.29 259.13 409.85 C 263.88 414.69 266.10 421.38 270.41 426.55 C 272.74 429.20 278.48 428.00 278.28 424.04 C 276.28 417.09 271.87 410.81 266.09 406.46 C 269.75 405.55 273.64 404.05 275.74 400.71 C 278.91 395.49 277.81 387.82 272.73 384.18 C 268.85 381.14 263.64 381.44 259.00 381.41 C 254.02 381.52 249.02 381.13 244.05 381.58 C 241.41 381.77 240.05 384.51 240.23 386.91 M 286.38 386.01 C 286.17 397.35 286.39 408.70 286.27 420.04 C 286.31 422.30 286.17 425.31 288.52 426.53 C 291.20 427.60 294.20 427.07 297.03 427.21 C 304.36 427.04 311.73 427.52 319.04 426.95 C 322.44 426.37 322.43 420.75 319.05 420.15 C 311.25 419.44 303.38 420.13 295.56 419.82 C 295.59 415.47 295.58 411.12 295.58 406.78 C 302.60 406.71 309.65 407.09 316.66 406.54 C 320.07 405.84 319.57 399.91 315.98 399.96 C 309.20 399.54 302.39 399.95 295.59 399.80 C 295.57 396.05 295.57 392.30 295.58 388.55 C 303.03 388.43 310.50 388.74 317.94 388.37 C 321.67 388.25 321.80 381.95 318.11 381.66 C 309.41 381.03 300.65 381.57 291.93 381.42 C 289.16 381.15 286.27 383.00 286.38 386.01 M 375.06 381.95 C 372.19 383.34 372.77 388.27 375.95 388.84 C 379.96 389.33 384.02 388.96 388.05 389.08 C 387.92 400.08 388.05 411.07 387.99 422.07 C 387.75 424.61 389.07 427.71 391.95 427.92 C 394.85 428.51 397.33 425.86 397.14 423.05 C 397.37 411.73 397.16 400.40 397.23 389.08 C 401.42 388.89 405.69 389.52 409.82 388.64 C 413.41 387.46 412.48 381.48 408.64 381.52 C 400.79 381.23 392.93 381.50 385.08 381.39 C 381.74 381.50 378.31 381.05 375.06 381.95 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 160.39 388.45 C 164.79 387.33 170.01 388.38 173.03 391.97 C 176.12 395.52 177.00 400.46 176.87 405.04 C 176.76 409.47 175.56 414.16 172.29 417.34 C 167.50 421.98 158.82 421.68 154.58 416.43 C 150.59 411.44 150.26 404.45 151.51 398.43 C 152.46 393.85 155.68 389.57 160.39 388.45 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 203.47 388.42 C 208.28 388.55 213.18 387.93 217.93 388.93 C 222.82 390.10 223.71 398.14 218.81 399.89 C 213.88 401.57 208.52 400.89 203.40 400.90 C 203.44 396.73 203.45 392.57 203.47 388.42 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 249.45 388.38 C 254.29 388.56 259.22 387.96 264.00 388.94 C 268.52 390.07 269.67 397.04 265.66 399.44 C 260.63 401.83 254.85 400.80 249.47 400.94 C 249.51 396.75 249.48 392.57 249.45 388.38 Z"})]}),Object($.jsx)("g",{id:t,children:Object($.jsx)("path",{fill:t,opacity:"1.00",d:" M 319.87 0.00 L 320.20 0.00 C 360.20 39.89 400.19 79.79 440.05 119.83 C 411.04 120.22 382.02 119.87 353.01 120.01 C 344.56 120.18 336.01 117.07 329.94 111.12 C 323.88 105.47 320.29 97.32 320.04 89.05 C 319.87 59.37 320.21 29.68 319.87 0.00 Z"})}),Object($.jsxs)("g",{id:"#fdfdfd",children:[Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 360.00 382.07 C 361.58 380.00 365.24 380.16 366.61 382.38 C 367.63 384.06 367.40 386.11 367.48 387.99 C 367.39 399.62 367.55 411.27 367.40 422.90 C 367.54 425.83 365.02 428.51 362.00 428.00 C 358.74 427.96 356.92 424.93 355.26 422.58 C 349.41 413.73 343.71 404.78 337.83 395.95 C 337.55 405.51 338.19 415.09 337.54 424.63 C 337.11 428.63 330.75 429.14 329.54 425.38 C 328.85 422.98 329.14 420.43 329.08 417.98 C 329.24 407.28 328.94 396.58 329.22 385.89 C 329.13 382.87 331.97 380.41 334.92 380.63 C 337.13 380.65 338.65 382.47 339.77 384.16 C 346.13 393.83 352.50 403.51 358.93 413.14 C 358.91 404.75 358.95 396.36 358.90 387.97 C 359.01 385.99 358.69 383.73 360.00 382.07 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 100.79 382.81 C 102.34 381.06 104.95 381.53 107.03 381.37 C 116.55 381.57 126.10 381.14 135.61 381.56 C 139.25 381.72 140.15 387.40 136.71 388.62 C 132.57 389.54 128.25 388.87 124.04 389.07 C 123.84 400.72 124.22 412.40 123.86 424.04 C 123.67 427.14 119.95 429.02 117.28 427.52 C 114.89 426.34 114.76 423.37 114.75 421.05 C 114.78 410.39 114.77 399.73 114.77 389.07 C 110.85 388.97 106.91 389.29 103.01 388.89 C 100.19 388.63 98.94 384.82 100.79 382.81 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 156.46 381.58 C 164.12 379.62 173.03 380.52 179.19 385.85 C 184.59 390.56 186.43 398.11 186.28 405.03 C 186.24 412.28 183.48 420.06 177.27 424.26 C 167.20 430.79 151.07 429.05 144.81 418.06 C 140.79 410.83 140.49 401.86 143.12 394.11 C 145.11 388.05 150.26 383.15 156.46 381.58 M 160.39 388.45 C 155.68 389.57 152.46 393.85 151.51 398.43 C 150.26 404.45 150.59 411.44 154.58 416.43 C 158.82 421.68 167.50 421.98 172.29 417.34 C 175.56 414.16 176.76 409.47 176.87 405.04 C 177.00 400.46 176.12 395.52 173.03 391.97 C 170.01 388.38 164.79 387.33 160.39 388.45 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 197.74 381.67 C 202.48 381.08 207.28 381.52 212.04 381.39 C 216.77 381.52 221.99 381.01 226.14 383.76 C 231.83 387.34 233.14 395.94 229.29 401.31 C 227.11 404.31 223.42 405.53 220.02 406.56 C 225.17 409.99 228.63 415.38 231.24 420.89 C 231.80 422.43 232.87 424.27 231.83 425.86 C 230.20 428.72 225.63 428.66 223.85 425.97 C 220.01 420.80 217.60 414.61 213.15 409.89 C 210.68 407.24 206.76 407.72 203.49 407.54 C 203.32 412.99 203.66 418.45 203.31 423.89 C 203.28 427.47 198.62 429.25 195.97 427.11 C 193.92 425.36 194.24 422.43 194.15 420.02 C 194.27 408.97 194.06 397.92 194.23 386.87 C 194.12 384.61 195.24 381.99 197.74 381.67 M 203.47 388.42 C 203.45 392.57 203.44 396.73 203.40 400.90 C 208.52 400.89 213.88 401.57 218.81 399.89 C 223.71 398.14 222.82 390.10 217.93 388.93 C 213.18 387.93 208.28 388.55 203.47 388.42 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 240.23 386.91 C 240.05 384.51 241.41 381.77 244.05 381.58 C 249.02 381.13 254.02 381.52 259.00 381.41 C 263.64 381.44 268.85 381.14 272.73 384.18 C 277.81 387.82 278.91 395.49 275.74 400.71 C 273.64 404.05 269.75 405.55 266.09 406.46 C 271.87 410.81 276.28 417.09 278.28 424.04 C 278.48 428.00 272.74 429.20 270.41 426.55 C 266.10 421.38 263.88 414.69 259.13 409.85 C 256.62 407.29 252.77 407.64 249.49 407.51 C 249.34 413.00 249.76 418.50 249.33 423.98 C 249.25 427.52 244.58 429.23 241.97 427.09 C 240.14 425.65 240.25 423.12 240.22 421.03 C 240.20 409.66 240.19 398.28 240.23 386.91 M 249.45 388.38 C 249.48 392.57 249.51 396.75 249.47 400.94 C 254.85 400.80 260.63 401.83 265.66 399.44 C 269.67 397.04 268.52 390.07 264.00 388.94 C 259.22 387.96 254.29 388.56 249.45 388.38 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 286.38 386.01 C 286.27 383.00 289.16 381.15 291.93 381.42 C 300.65 381.57 309.41 381.03 318.11 381.66 C 321.80 381.95 321.67 388.25 317.94 388.37 C 310.50 388.74 303.03 388.43 295.58 388.55 C 295.57 392.30 295.57 396.05 295.59 399.80 C 302.39 399.95 309.20 399.54 315.98 399.96 C 319.57 399.91 320.07 405.84 316.66 406.54 C 309.65 407.09 302.60 406.71 295.58 406.78 C 295.58 411.12 295.59 415.47 295.56 419.82 C 303.38 420.13 311.25 419.44 319.05 420.15 C 322.43 420.75 322.44 426.37 319.04 426.95 C 311.73 427.52 304.36 427.04 297.03 427.21 C 294.20 427.07 291.20 427.60 288.52 426.53 C 286.17 425.31 286.31 422.30 286.27 420.04 C 286.39 408.70 286.17 397.35 286.38 386.01 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 375.06 381.95 C 378.31 381.05 381.74 381.50 385.08 381.39 C 392.93 381.50 400.79 381.23 408.64 381.52 C 412.48 381.48 413.41 387.46 409.82 388.64 C 405.69 389.52 401.42 388.89 397.23 389.08 C 397.16 400.40 397.37 411.73 397.14 423.05 C 397.33 425.86 394.85 428.51 391.95 427.92 C 389.07 427.71 387.75 424.61 387.99 422.07 C 388.05 411.07 387.92 400.08 388.05 389.08 C 384.02 388.96 379.96 389.33 375.95 388.84 C 372.77 388.27 372.19 383.34 375.06 381.95 Z"})]})]})},ne=n(387),ae=n(442),re=n(24),ie=n.n(re),oe=n(441),ce=n(484),le=function(e){var t=Object(a.useState)({}),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useRef)(!0),c=Object(a.useRef)(null);return Object(a.useEffect)((function(){return function(){o.current=!1}}),[]),Object(a.useEffect)((function(){return e?c.current=setInterval((function(){var t=function(e){return o.current&&i(e)};P.a.post("".concat(C,"/cache"),{action:"get",hash:e}).then((function(e){var n=e.data;return t(n)})).catch((function(){return t({})}))}),100):clearInterval(c.current),function(){return clearInterval(c.current)}}),[e]),r},se=n(428),de=n(430),pe=n(431),je=n(106),be=n.n(je),ue=n(432),he=Object(se.a)({appBar:{position:"relative"},title:{marginLeft:"5px",flex:1}});function xe(e){var t=e.title,n=e.onClose,a=e.onBack,r=he();return Object($.jsx)(de.a,{className:r.appBar,children:Object($.jsxs)(pe.a,{children:[a&&Object($.jsx)(p.a,{edge:"start",color:"inherit",onClick:a,"aria-label":"back",children:Object($.jsx)(ue.a,{})}),Object($.jsx)(d.a,{variant:"h6",className:r.title,children:t}),Object($.jsx)(p.a,{autoFocus:!0,color:"inherit",onClick:n,"aria-label":"close",style:{marginRight:"-10px"},children:Object($.jsx)(be.a,{})})]})})}var ge,me,Oe,fe,Ce,ve,ye,we,Se,ke,De,Te=n(180),Pe=n(84),Me=n.n(Pe),Be=n(195),Re=n(433),Le=n(26),Ae={light:{app:{headerToggleColor:"#4db380",appSecondaryColor:"#cbe8d9",sidebarBGColor:"#575757",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#337a57",buttonBGColor:Object(Le.a)("#337a57",.5),cardPrimaryColor:"#00a572",cardSecondaryColor:"#74c39c"},dialogTorrentDetailsContent:{posterBGColor:"#74c39c",gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",chacheSectionBGColor:"#88cdaa",widgetFontColor:"#fff",titleFontColor:"#000",subNameFontColor:"#7c7b7c",torrentFilesSectionBGColor:"#f1eff3"},detailedView:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",cacheSectionBGColor:"#fff"},addDialog:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",fontColor:"#000",notificationErrorBGColor:"#cda184",notificationSuccessBGColor:"#88cdaa",languageSwitchBGColor:"#74c39c",languageSwitchFontColor:"#e4f6ed",posterBGColor:"#74c39c"},torrentFunctions:{fontColor:"#000"},table:{defaultPrimaryColor:"#009879",defaultSecondaryColor:"#00a383",defaultTertiaryColor:"#03aa89"},settingsDialog:{contentBG:"#f1eff3",footerBG:"#fff"}},dark:{app:{headerToggleColor:"#545a5e",appSecondaryColor:"#545a5e",sidebarBGColor:"#323637",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#323637",buttonBGColor:Object(Le.a)("#323637",.5),cardPrimaryColor:"#545a5e",cardSecondaryColor:Object(Le.a)("#dee3e5",.4)},dialogTorrentDetailsContent:{posterBGColor:Object(Le.a)("#dee3e5",.4),gradientStartColor:"#656f76",gradientEndColor:"#545a5e",chacheSectionBGColor:"#3c4244",widgetFontColor:Object(Le.a)("#fff",.8),titleFontColor:"#f1eff3",subNameFontColor:"#dee3e5",torrentFilesSectionBGColor:Object(Le.a)("#545a5e",.9)},detailedView:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",cacheSectionBGColor:"#dee3e5"},addDialog:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",fontColor:"#fff",notificationErrorBGColor:"#c82e3f",notificationSuccessBGColor:"#323637",languageSwitchBGColor:"#545a5e",languageSwitchFontColor:"#dee3e5",posterBGColor:"#dee3e5"},torrentFunctions:{fontColor:"#f1eff3"},table:{defaultPrimaryColor:"#323637",defaultSecondaryColor:Object(Le.a)("#545a5e",.9),defaultTertiaryColor:"#545a5e"},settingsDialog:{contentBG:"#5a6166",footerBG:"#323637"}}},ze={light:{primary:"#00a572",secondary:"#00a572",labels:Object(Le.a)("#000",.9)},dark:{primary:"#323637",secondary:"#dee3e5",labels:Object(Le.a)("#fff",.9)}},Fe="light",Ee="dark",Ge="auto",Ne={fontFamily:"Open Sans, sans-serif"},Ie=(Object(Be.a)({typography:Ne,palette:{type:Ee,primary:{main:ze.dark.primary},secondary:{main:ze.dark.secondary}}}),Object(Be.a)({typography:Ne,palette:{type:Fe,primary:{main:ze.light.primary},secondary:{main:ze.light.secondary}}})),Ue=n(4),He=n(3),We={dark:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:Object(Le.a)("#949ca0",.25),completeColor:Object(Le.a)(ze.dark.primary,.5),backgroundColor:"#f1eff3",progressColor:ze.dark.secondary,readerColor:"#8f0405",rangeColor:"#cda184"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#5c6469",completeColor:"#5c6469",backgroundColor:"#949ca0",progressColor:"#949ca0",readerColor:"#ccc",rangeColor:"#cda184"}},light:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:"#dbf2e8",completeColor:ze.light.primary,backgroundColor:"#fff",progressColor:"#b3dfc9",readerColor:"#000",rangeColor:"#afa6e3"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#4db380",completeColor:"#4db380",backgroundColor:"#dbf2e8",progressColor:"#dbf2e8",readerColor:"#fff",rangeColor:"#afa6e3"}}},Ve=He.d.div(ge||(ge=Object(Ue.a)(["\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n"]))),Ze=He.d.div(me||(me=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isMini,n=e.themeType;return Object(He.c)(Oe||(Oe=Object(Ue.a)(["\n ","\n\n canvas {\n display: block;\n }\n "])),t&&Object(He.c)(fe||(fe=Object(Ue.a)(["\n display: grid;\n justify-content: center;\n max-height: ","px;\n overflow: auto;\n "])),We[n].mini.cacheMaxHeight))})),_e=function(e){var t,n=e.cache,r=e.isMini,i=Object(ce.a)().t,o=Object(a.useState)({width:0,height:0}),c=Object(l.a)(o,2),s=c[0],d=c[1],p=s.width,j=Object(a.useRef)(null),b=Object(a.useRef)(null),u=function(e){var t=Object(a.useState)([]),n=Object(l.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){for(var t=e.PiecesCount,n=e.Pieces,a=e.Readers,r=[],o=function(e){var t=n[e]||{},i=t.Size,o=t.Length,c={id:e,percentage:i/o*100||0};a.forEach((function(t){e===t.Reader&&(c.isReader=!0),e>=t.Start&&e<=t.End&&(c.isReaderRange=!0)})),r.push(c)},c=0;c0})),i=function(e){return e%a===0?e-1:e+a-e%a-1||0},o=i(n),c=i(r.length),l=Math.max(c,o)-r.length+1,s=l?new Array(l).fill({}):[];return[].concat(Object(E.a)(r),Object(E.a)(s))}({cacheMap:u,preloadPiecesAmount:Math.round(n.Capacity/n.PiecesLength-1),piecesInOneRow:P}));var M=r?t:u,B=Math.ceil((D-T*P)/2),R=Math.ceil(M.length/P)*T;return Object(a.useEffect)((function(){if(D&&R){var e=j.current;e.width=D,e.height=R,b.current=e.getContext("2d")}}),[j,R,D]),Object(a.useEffect)((function(){var e=b.current;e&&(e.clearRect(0,0,D,R),M.forEach((function(t,n){var a=t.percentage,r=t.isReader,i=t.isReaderRange,o=a>0&&a<100,c=100===a,l=n%P,s=Math.floor(n/P),d=f%2===0?0:.5,p=Math.ceil(f/2)+1+d,j=l*C+l*v+B+p,b=s*C+s*v+p;e.lineWidth=f,e.fillStyle=o?function(e,t,n,a){var r=We[n][a],i=r.pieceSize,o=r.completeColor,c=r.progressColor,l=e.createLinearGradient(0,i,0,0);return l.addColorStop(0,o),l.addColorStop(t/100,o),l.addColorStop(t/100,c),l.addColorStop(1,c),l}(e,a,x,h):c?k:y,e.strokeStyle=r?m:o||c?k:i?O:w,e.translate(j,b),e.fillRect(0,0,C,C),e.strokeRect(0,0,C,C),e.setTransform(1,0,0,1,0,0)})))}),[u,R,D,P,B,C,v,M,y,w,f,h,k,m,O,x]),Object($.jsx)(Te.a,{bounds:!0,onResize:function(e){var t=e.bounds;return d(t)},children:function(e){var t=e.measureRef;return Object($.jsxs)("div",{style:{display:"flex",flexDirection:"column"},ref:t,children:[Object($.jsx)(Ze,{themeType:x,isMini:r,children:Object($.jsx)("canvas",{ref:j})}),r&&R>=S&&Object($.jsx)(Ve,{children:i("ScrollDown")})]})}})},Ke=Object(a.memo)(_e,(function(e,t){return Me()(e.cache.Pieces,t.cache.Pieces)&&Me()(e.cache.Readers,t.cache.Readers)})),Je=n(85),Ye=n.n(Je),$e="#bdbdbd",Xe=Object(He.c)(Ce||(Ce=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(He.c)(ve||(ve=Object(Ue.a)(["\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ",";\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "])),t)})),qe=He.d.table(ye||(ye=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(He.c)(we||(we=Object(Ue.a)(["\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ",";\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ",";\n background: ",";\n\n :last-of-type {\n border-bottom: 2px solid ",";\n }\n\n &.viewed-file-row {\n background: ",";\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ","\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n "])),t,"#ddd","#fff",t,"#f3f3f3",Xe)})),Qe=He.d.div(Se||(Se=Object(Ue.a)(["\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n"]))),et=He.d.div(ke||(ke=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isViewed,n=e.theme.table,a=n.defaultPrimaryColor,r=n.defaultSecondaryColor,i=n.defaultTertiaryColor;return Object(He.c)(De||(De=Object(Ue.a)(["\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ",";\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ",";\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ",";\n }\n\n &-name {\n background: ",";\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ",";\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ","\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ",";\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #fff;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n "])),t?$e:a,t?"max-content":"1fr",t?$e:a,t?"#c4c4c4":r,t?"#c9c9c9":i,t&&Xe,t?$e:a)})),tt=n(0).memo;ie.a.addHandler("episode",/(\d{1,4})[- |. ]\u0441\u0435\u0440\u0438\u044f|\u0441\u0435\u0440\u0438\u044f[- |. ](\d{1,4})/i,{type:"integer"}),ie.a.addHandler("season",/sezon[- |. ](\d{1,3})|(\d{1,3})[- |. ]sezon/i,{type:"integer"}),ie.a.addHandler("season",/\u0441\u0435\u0437\u043e\u043d[- |. ](\d{1,3})|(\d{1,3})[- |. ]\u0441\u0435\u0437\u043e\u043d/i,{type:"integer"});var nt,at,rt,it,ot,ct,lt,st,dt,pt,jt,bt,ut,ht,xt,gt,mt,Ot,ft,Ct,vt,yt,wt,St,kt,Dt,Tt,Pt,Mt,Bt,Rt,Lt,At,zt,Ft,Et,Gt,Nt=tt((function(e){var t=e.playableFileList,n=e.viewedFileList,a=e.selectedSeason,r=e.seasonAmount,i=e.hash,o=Object(ce.a)().t,c=function(e){return fetch("".concat(S(),"?link=").concat(i,"&index=").concat(e,"&preload"))},l=function(e,t){return"".concat(S(),"/").concat(encodeURIComponent(e.split("\\").pop().split("/").pop()),"?link=").concat(i,"&index=").concat(t,"&play")},s=!!(null===t||void 0===t?void 0:t.find((function(e){var t=e.path;return ie.a.parse(t).episode}))),d=!!(null===t||void 0===t?void 0:t.find((function(e){var t=e.path;return ie.a.parse(t).season}))),p=!!(null===t||void 0===t?void 0:t.find((function(e){var t=e.path;return ie.a.parse(t).resolution}))),j=t.length>1&&!s;return(null===t||void 0===t?void 0:t.length)?Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(qe,{children:[Object($.jsx)("thead",{children:Object($.jsxs)("tr",{children:[Object($.jsx)("th",{style:{width:"0"},children:o("Viewed")}),Object($.jsx)("th",{children:o("Name")}),d&&1===(null===r||void 0===r?void 0:r.length)&&Object($.jsx)("th",{style:{width:"0"},children:o("Season")}),s&&Object($.jsx)("th",{style:{width:"0"},children:o("Episode")}),p&&Object($.jsx)("th",{style:{width:"0"},children:o("Resolution")}),Object($.jsx)("th",{style:{width:"100px"},children:o("Size")}),Object($.jsx)("th",{style:{width:"400px"},children:o("Actions")})]})}),Object($.jsx)("tbody",{children:t.map((function(e){var t=e.id,i=e.path,b=e.length,u=ie.a.parse(i),h=u.title,x=u.resolution,g=u.episode,m=u.season,O=null===n||void 0===n?void 0:n.includes(t),f=l(i,t);return(m===a||!(null===r||void 0===r?void 0:r.length))&&Object($.jsxs)("tr",{className:O?"viewed-file-row":null,children:[Object($.jsx)("td",{"data-label":"viewed",className:O?"viewed-file-indicator":null}),Object($.jsx)("td",{"data-label":"name",children:j?i:h}),d&&1===(null===r||void 0===r?void 0:r.length)&&Object($.jsx)("td",{"data-label":"season",children:m}),s&&Object($.jsx)("td",{"data-label":"episode",children:g}),p&&Object($.jsx)("td",{"data-label":"resolution",children:x}),Object($.jsx)("td",{"data-label":"size",children:V(b)}),Object($.jsx)("td",{children:Object($.jsxs)("div",{className:"button-cell",children:[Object($.jsx)(ne.a,{onClick:function(){return c(t)},variant:"outlined",color:"primary",size:"small",children:o("Preload")}),Object($.jsx)("a",{style:{textDecoration:"none"},href:f,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:o("OpenLink")})}),Object($.jsx)(Ye.a,{text:f,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:o("CopyLink")})})]})})]},t)}))})]}),Object($.jsx)(Qe,{children:t.map((function(e){var t=e.id,i=e.path,b=e.length,u=ie.a.parse(i),h=u.title,x=u.resolution,g=u.episode,m=u.season,O=null===n||void 0===n?void 0:n.includes(t),f=l(i,t);return(m===a||!(null===r||void 0===r?void 0:r.length))&&Object($.jsxs)(et,{isViewed:O,children:[Object($.jsx)("div",{className:"short-table-name",children:j?i:h}),Object($.jsxs)("div",{className:"short-table-data",children:[O&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Viewed")}),Object($.jsx)("div",{className:"short-table-field-value",children:Object($.jsx)("div",{className:"short-table-viewed-indicator"})})]}),d&&1===(null===r||void 0===r?void 0:r.length)&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Season")}),Object($.jsx)("div",{className:"short-table-field-value",children:m})]}),s&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Episode")}),Object($.jsx)("div",{className:"short-table-field-value",children:g})]}),p&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Resolution")}),Object($.jsx)("div",{className:"short-table-field-value",children:x})]}),Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Size")}),Object($.jsx)("div",{className:"short-table-field-value",children:V(b)})]})]}),Object($.jsxs)("div",{className:"short-table-buttons",children:[Object($.jsx)(ne.a,{onClick:function(){return c(t)},variant:"outlined",color:"primary",size:"small",children:o("Preload")}),Object($.jsx)("a",{style:{textDecoration:"none"},href:f,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:o("OpenLink")})}),Object($.jsx)(Ye.a,{text:f,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:o("CopyLink")})})]})]},t)}))})]}):"No playable files in this torrent"}),(function(e,t){return Me()(e,t)})),It=He.d.div(nt||(nt=Object(Ue.a)(["\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n"]))),Ut=He.d.div(at||(at=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.dialogTorrentDetailsContent.posterBGColor;return Object(He.c)(rt||(rt=Object(Ue.a)(["\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ","\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ","\n }\n "])),t?Object(He.c)(it||(it=Object(Ue.a)(["\n img {\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(He.c)(ot||(ot=Object(Ue.a)(["\n width: 300px;\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n "])),n),t?Object(He.c)(ct||(ct=Object(Ue.a)(["\n height: 200px;\n "]))):Object(He.c)(lt||(lt=Object(Ue.a)(["\n display: none;\n "]))))})),Ht=He.d.section(st||(st=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent,n=t.gradientStartColor,a=t.gradientEndColor;return Object(He.c)(dt||(dt=Object(Ue.a)(["\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),Wt=He.d.section(pt||(pt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.chacheSectionBGColor;return Object(He.c)(jt||(jt=Object(Ue.a)(["\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Vt=He.d.section(bt||(bt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.torrentFilesSectionBGColor;return Object(He.c)(ut||(ut=Object(Ue.a)(["\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Zt=He.d.div(ht||(ht=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.subNameFontColor;return Object(He.c)(xt||(xt=Object(Ue.a)(["\n ","\n "])),(function(e){var n=e.mb;return Object(He.c)(gt||(gt=Object(Ue.a)(["\n ",";\n ",";\n line-height: 1.2;\n color: ",";\n\n @media (max-width: 800px) {\n ",";\n ",";\n font-size: 14px;\n }\n "])),n&&"margin-top: ".concat(n/3,"px"),n&&"margin-bottom: ".concat(n,"px"),t,n&&"margin-top: ".concat(n/4,"px"),n&&"margin-bottom: ".concat(n/2,"px"))}))})),_t=He.d.div(mt||(mt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.color,n=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(He.c)(Ot||(Ot=Object(Ue.a)(["\n ","\n "])),(function(e){var a=e.mb;return Object(He.c)(ft||(ft=Object(Ue.a)(["\n ",";\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ",";\n }\n "])),a&&"margin-bottom: ".concat(a,"px"),t||n,a&&"margin-bottom: ".concat(a/2,"px"))}))})),Kt=He.d.div(Ct||(Ct=Object(Ue.a)(["\n margin-bottom: 20px;\n"]))),Jt=He.d.div(vt||(vt=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ","\n"])),(function(e){return e.detailedView?Object(He.c)(yt||(yt=Object(Ue.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n "]))):Object(He.c)(wt||(wt=Object(Ue.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n "])))})),Yt=He.d.div(St||(St=Object(Ue.a)(["\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n"]))),$t=He.d.div(kt||(kt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(He.c)(Dt||(Dt=Object(Ue.a)(["\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ",";\n "])),t)})),Xt=He.d.div(Tt||(Tt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.bgColor;return Object(He.c)(Pt||(Pt=Object(Ue.a)(["\n grid-area: icon;\n color: ",";\n background: ",";\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n "])),Object(Le.a)("#fff",.8),t)})),qt=He.d.div(Mt||(Mt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.bgColor,n=e.theme.dialogTorrentDetailsContent.widgetFontColor;return Object(He.c)(Bt||(Bt=Object(Ue.a)(["\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ",";\n background: ",";\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n "])),n,t)})),Qt=He.d.div.attrs((function(e){var t=e.value,n=e.fullAmount,a=e.theme.dialogTorrentDetailsContent,r=a.gradientStartColor,i=a.gradientEndColor,o=Math.min(100,100*t/n);return{style:{background:"linear-gradient(to right, ".concat(r," 0%, ").concat(i," ").concat(o,"%, #fff ").concat(o,"%, #fff 100%)")}}}))(Rt||(Rt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.label;return Object(He.c)(Lt||(Lt=Object(Ue.a)(["\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n "])),t)})),en=He.d.div(At||(At=Object(Ue.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),tn=He.d.section(zt||(zt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView,n=t.gradientStartColor,a=t.gradientEndColor;return Object(He.c)(Ft||(Ft=Object(Ue.a)(["\n padding: 40px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),nn=He.d.section(Et||(Et=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView.cacheSectionBGColor;return Object(He.c)(Gt||(Gt=Object(Ue.a)(["\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),an=n(59),rn=n(434),on=n(435),cn=n(436),ln=n(437),sn=n(438),dn=n(439),pn=n(440);function jn(e){var t=e.icon,n=e.title,a=e.value,r=e.iconBg,i=e.valueBg;return Object($.jsxs)(Yt,{children:[Object($.jsx)($t,{children:n}),Object($.jsx)(Xt,{bgColor:r,children:Object($.jsx)(t,{})}),Object($.jsx)(qt,{bgColor:i,children:a})]})}var bn=Fe,un=Ee,hn={light:{downloadSpeed:{iconBGColor:"#118f00",valueBGColor:"#13a300"},uploadSpeed:{iconBGColor:"#0146ad",valueBGColor:"#0058db"},peers:{iconBGColor:"#cdc118",valueBGColor:"#d8cb18"},piecesCount:{iconBGColor:"#b6c95e",valueBGColor:"#c0d076"},piecesLength:{iconBGColor:"#0982c8",valueBGColor:"#098cd7"},status:{iconBGColor:"#aea25b",valueBGColor:"#b4aa6e"},size:{iconBGColor:"#9b01ad",valueBGColor:"#ac03bf"}},dark:{downloadSpeed:{iconBGColor:"#0c6600",valueBGColor:"#0d7000"},uploadSpeed:{iconBGColor:"#003f9e",valueBGColor:"#0047b3"},peers:{iconBGColor:"#a69c11",valueBGColor:"#b4a913"},piecesCount:{iconBGColor:"#8da136",valueBGColor:"#99ae3d"},piecesLength:{iconBGColor:"#07659c",valueBGColor:"#0872af"},status:{iconBGColor:"#938948",valueBGColor:"#9f9450"},size:{iconBGColor:"#81008f",valueBGColor:"#9102a1"}}};function xn(e){var t=Object(a.useContext)(No).isDarkMode;return hn[t?un:bn][e]}var gn,mn,On,fn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("downloadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("DownloadSpeed"),value:Z(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:rn.a})},Cn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("uploadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("UploadSpeed"),value:Z(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:on.a})},vn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("peers"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("Peers"),value:_(t)||"0 \xb7 0 / 0",iconBg:r,valueBg:i,icon:cn.a})},yn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("piecesCount"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("PiecesCount"),value:t,iconBg:r,valueBg:i,icon:ln.a})},wn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("piecesLength"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("PiecesLength"),value:V(t),iconBg:r,valueBg:i,icon:sn.a})},Sn=function(e){var t,n=e.stat,a=Object(ce.a)().t,r=(t={},Object(an.a)(t,1,a("TorrentGettingInfo")),Object(an.a)(t,2,a("TorrentPreload")),Object(an.a)(t,3,a("TorrentWorking")),Object(an.a)(t,4,a("TorrentClosed")),Object(an.a)(t,5,a("TorrentInDb")),t),i=xn("status"),o=i.iconBGColor,c=i.valueBGColor;return Object($.jsx)(jn,{title:a("TorrentStatus"),value:r[n],iconBg:o,valueBg:c,icon:dn.a})},kn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("size"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("TorrentSize"),value:V(t),iconBg:r,valueBg:i,icon:pn.a})};function Dn(e){var t=e.downloadSpeed,n=e.uploadSpeed,a=e.torrent,r=e.torrentSize,i=e.PiecesCount,o=e.PiecesLength,c=e.stat,l=e.cache,s=Object(ce.a)().t;return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(tn,{children:[Object($.jsx)(_t,{mb:20,children:s("Data")}),Object($.jsxs)(Jt,{detailedView:!0,children:[Object($.jsx)(fn,{data:t}),Object($.jsx)(Cn,{data:n}),Object($.jsx)(vn,{data:a}),Object($.jsx)(kn,{data:r}),Object($.jsx)(yn,{data:i}),Object($.jsx)(wn,{data:o}),Object($.jsx)(Sn,{stat:c})]})]}),Object($.jsxs)(nn,{children:[Object($.jsx)(_t,{color:"#000",mb:20,children:s("Cache")}),Object($.jsx)(Ke,{cache:l})]})]})}var Tn=He.d.div(gn||(gn=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n"]))),Pn=He.d.div(mn||(mn=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.mb,n=e.theme.torrentFunctions.fontColor;return Object(He.c)(On||(On=Object(Ue.a)(["\n ",";\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 18px;\n ",";\n }\n "])),t&&"margin-bottom: ".concat(t,"px"),n,t&&"margin-bottom: ".concat(t/1.5,"px"))})),Mn=Object(a.memo)((function(e){var t,n=e.hash,a=e.viewedFileList,r=e.playableFileList,i=e.name,o=e.title,c=e.setViewedFileList,l=Object(ce.a)().t,s=null===a||void 0===a?void 0:a[(null===a||void 0===a?void 0:a.length)-1],d=null===r||void 0===r||null===(t=r.find((function(e){return e.id===s})))||void 0===t?void 0:t.path,p=1===(null===r||void 0===r?void 0:r.length),j=d&&ie.a.parse(d),b="".concat("".concat(C,"/stream"),"/").concat(encodeURIComponent(i||o||"file"),".m3u?link=").concat(n,"&m3u"),u="".concat(b,"&fromlast");return Object($.jsxs)($.Fragment,{children:[!p&&!!(null===a||void 0===a?void 0:a.length)&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pn,{children:l("DownloadPlaylist")}),Object($.jsxs)(Zt,{mb:10,children:[Object($.jsx)("strong",{children:l("LatestFilePlayed")})," ",null===j||void 0===j?void 0:j.title,".",(null===j||void 0===j?void 0:j.season)&&Object($.jsxs)($.Fragment,{children:[" ",l("Season"),": ",null===j||void 0===j?void 0:j.season,". ",l("Episode"),": ",null===j||void 0===j?void 0:j.episode,"."]})]}),Object($.jsxs)(Tn,{children:[Object($.jsx)("a",{style:{textDecoration:"none"},href:b,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:l("Full")})}),Object($.jsx)("a",{style:{textDecoration:"none"},href:u,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:l("FromLatestFile")})})]})]}),Object($.jsx)(Pn,{mb:10,children:l("TorrentState")}),Object($.jsxs)(Tn,{children:[Object($.jsx)(ne.a,{onClick:function(){return P.a.post(y(),{action:"rem",hash:n,file_index:-1}).then((function(){return c()}))},variant:"contained",color:"primary",size:"large",children:l("RemoveViews")}),Object($.jsx)(ne.a,{onClick:function(){return P.a.post(v(),{action:"drop",hash:n})},variant:"contained",color:"primary",size:"large",children:l("DropTorrent")})]}),Object($.jsx)(Pn,{mb:10,children:l("Info")}),Object($.jsxs)(Tn,{children:[(p||!(null===a||void 0===a?void 0:a.length))&&Object($.jsx)("a",{style:{textDecoration:"none"},href:b,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:l("DownloadPlaylist")})}),Object($.jsx)(Je.CopyToClipboard,{text:n,children:Object($.jsx)(ne.a,{variant:"contained",color:"primary",size:"large",children:l("CopyHash")})})]})]})}),(function(){return!0})),Bn=["3g2","3gp","aaf","asf","avchd","avi","drc","flv","iso","m2v","m2ts","m4p","m4v","mkv","mng","mov","mp2","mp4","mpe","mpeg","mpg","mpv","mxf","nsv","ogg","ogv","ts","qt","rm","rmvb","roq","svi","vob","webm","wmv","yuv","aac","aiff","ape","au","flac","gsm","it","m3u","m4a","mid","mod","mp3","mpa","pls","ra","s3m","sid","wav","wma","xm"],Rn=function(){return Object($.jsx)("div",{style:{minHeight:"80vh",display:"grid",placeItems:"center"},children:Object($.jsx)(oe.a,{color:"secondary"})})};function Ln(e){var t,n=e.closeDialog,r=e.torrent,i=Object(ce.a)().t,o=Object(a.useState)(!0),c=Object(l.a)(o,2),s=c[0],d=c[1],p=Object(a.useState)(!1),j=Object(l.a)(p,2),b=j[0],u=j[1],h=Object(a.useState)(),x=Object(l.a)(h,2),g=x[0],m=x[1],O=Object(a.useState)(),f=Object(l.a)(O,2),C=f[0],v=f[1],S=Object(a.useState)(null),k=Object(l.a)(S,2),D=k[0],T=k[1],B=Object(a.useState)(),R=Object(l.a)(B,2),L=R[0],A=R[1],z=r.poster,F=r.hash,E=r.title,G=r.name,N=r.stat,I=r.download_speed,U=r.upload_speed,H=r.torrent_size,W=r.file_stats,Z=le(F),_=function(e){var t=Object(a.useState)(),n=Object(l.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){P.a.post(w(),{action:"get"}).then((function(e){var t=e.data;return i(t)}))}),[e]),r}(Z),J=Z.Capacity,Y=Z.PiecesCount,q=Z.PiecesLength,Q=Z.Filled;Object(a.useEffect)((function(){if(C&&null===D){var e=[];C.forEach((function(t){var n=t.path,a=ie.a.parse(n).season;a&&!e.includes(a)&&e.push(a)})),e.length&&A(e[0]),T(e.sort((function(e,t){return e-t})))}}),[C,D]),Object(a.useEffect)((function(){v(null===W||void 0===W?void 0:W.filter((function(e){var t,n=e.path;return t=n,Bn.includes(function(e){var t=e.split(".").pop();return t===e?"":t.toLowerCase()}(t))})))}),[W]),Object(a.useEffect)((function(){var e=!!Object.entries(Z).length,t=1!==N&&5!==N;e||s||d(!0),e&&s&&t&&d(!1)}),[N,Z,s]),Object(a.useEffect)((function(){P.a.post(y(),{action:"list",hash:F}).then((function(e){var t=e.data;if(t){var n=t.map((function(e){return e.file_index})).sort((function(e,t){return e-t}));m(n)}else m()}))}),[F]);var ee=J/100*(null===_||void 0===_?void 0:_.PreloadCache),te=ee>33554432?ee:33554432,re=function(){var e=[],t=G&&ie.a.parse(G);E!==G?e.push(K(E)):(null===t||void 0===t?void 0:t.title)&&e.push(K(null===t||void 0===t?void 0:t.title)),(null===t||void 0===t?void 0:t.year)&&!e[0].includes(null===t||void 0===t?void 0:t.year)&&e.push(null===t||void 0===t?void 0:t.year),(null===t||void 0===t?void 0:t.resolution)&&!e[0].includes(null===t||void 0===t?void 0:t.resolution)&&e.push(null===t||void 0===t?void 0:t.resolution);var n=e.join(". ");return"."===n[n.length-1]&&"."===n[n.length-2]?"".concat(n,"."):n};return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(xe,Object(M.a)({onClose:n,title:i(b?"DetailedCacheView.header":"TorrentDetails")},b&&{onBack:function(){return u(!1)}})),Object($.jsx)("div",{style:Object(M.a)({minHeight:"80vh",overflow:"auto"},b&&{display:"flex",flexDirection:"column"}),children:s?Object($.jsx)(Rn,{}):b?Object($.jsx)(Dn,{downloadSpeed:I,uploadSpeed:U,torrent:r,torrentSize:H,PiecesCount:Y,PiecesLength:q,stat:N,cache:Z}):Object($.jsxs)(It,{children:[Object($.jsxs)(Ht,{children:[Object($.jsx)(Ut,{poster:z,children:z?Object($.jsx)("img",{alt:"poster",src:z}):Object($.jsx)(X,{})}),Object($.jsxs)("div",{children:[E&&G!==E?re().length>90?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(_t,{children:ie.a.parse(G).title}),Object($.jsx)(Zt,{mb:20,children:re()})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(_t,{children:re()}),Object($.jsx)(Zt,{mb:20,children:null===(t=ie.a.parse(G||""))||void 0===t?void 0:t.title})]}):Object($.jsx)(_t,{mb:20,children:re()}),Object($.jsxs)(Jt,{children:[Object($.jsx)(fn,{data:I}),Object($.jsx)(Cn,{data:U}),Object($.jsx)(vn,{data:r}),Object($.jsx)(kn,{data:H}),Object($.jsx)(Sn,{stat:N})]}),Object($.jsx)(en,{}),Object($.jsx)(Mn,{hash:F,viewedFileList:g,playableFileList:C,name:G,title:E,setViewedFileList:m})]})]}),Object($.jsxs)(Wt,{children:[Object($.jsxs)(Kt,{children:[Object($.jsx)(_t,{mb:20,children:i("Buffer")}),te<=33554432&&Object($.jsx)(Zt,{children:i("BufferNote")}),Object($.jsx)(Qt,{value:Q,style:{marginTop:"5px"},fullAmount:te,label:"".concat(V(te)," / ").concat(V(Q)||"0 ".concat(i("B")))})]}),Object($.jsx)(Ke,{isMini:!0,cache:Z}),Object($.jsx)(ne.a,{style:{marginTop:"30px"},variant:"contained",color:"primary",size:"large",onClick:function(){return u(!0)},children:i("DetailedCacheView.button")})]}),Object($.jsxs)(Vt,{children:[Object($.jsx)(_t,{mb:20,children:i("TorrentContent")}),(null===D||void 0===D?void 0:D.length)>1&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Zt,{mb:7,children:i("SelectSeason")}),Object($.jsx)(ae.a,{style:{marginBottom:"30px"},color:"secondary",children:D.map((function(e){return Object($.jsx)(ne.a,{variant:L===e?"contained":"outlined",onClick:function(){return A(e)},children:e},e)}))}),Object($.jsxs)(_t,{mb:20,children:[i("Season")," ",L]})]}),Object($.jsx)(Nt,{hash:F,playableFileList:C,viewedFileList:g,selectedSeason:L,seasonAmount:D})]})]})})]})}var An=n(481),zn=n(450),Fn=n(455),En=n(456),Gn=n(186),Nn=n.n(Gn),In=function(){var e=Object(ce.a)().i18n;return["en-US"===e.language||"en"===e.language?"en":e.language,function(t){return e.changeLanguage(t)}]};function Un(e){var t=Object(a.useRef)(e);return Object(a.useEffect)((function(){t.current=e}),[e]),t.current}var Hn,Wn,Vn,Zn,_n,Kn,Jn,Yn,$n,Xn,qn,Qn,ea,ta,na,aa,ra,ia,oa,ca,la,sa,da,pa,ja,ba,ua,ha,xa,ga=n(479),ma=n(107),Oa=n.n(ma),fa=He.d.div(Hn||(Hn=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(He.c)(Wn||(Wn=Object(Ue.a)(["\n background: ",";\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n "])),t)})),Ca=He.d.div(Vn||(Vn=Object(Ue.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n"]))),va=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en",n="http://api.themoviedb.org/3/search/multi";return P.a.get(n,{params:{api_key:"45ddf563ac3fb845f2d5c363190d1a33",language:t,include_image_language:"".concat(t,",null,en"),query:e}}).then((function(e){return e.data.results.filter((function(e){return e.poster_path})).map((function(e){return"https://image.tmdb.org/t/p/w300".concat(e.poster_path)}))})).catch((function(){return null}))},ya=function(){var e=Object(F.a)(z.a.mark((function e(t){return z.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.match(/.(jpg|jpeg|png|gif)$/i)){e.next=2;break}return e.abrupt("return",!1);case 2:return e.abrupt("return",!0);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),wa=/^magnet:\?xt=urn:[a-z0-9].*/i,Sa=/^\b[0-9a-f]{32}\b$|^\b[0-9a-f]{40}\b$|^\b[0-9a-f]{64}\b$/i,ka=/^.*\.(torrent)$/i,Da=/^(http(s?)):\/\/.*/i,Ta=He.d.div(Zn||(Zn=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isEditMode,n=e.theme.addDialog,a=n.gradientStartColor,r=n.gradientEndColor,i=n.fontColor;return Object(He.c)(_n||(_n=Object(Ue.a)(["\n height: 550px;\n background: linear-gradient(145deg, ",", ",");\n flex: 1;\n display: grid;\n grid-template-columns: repeat(",", 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ",";\n\n @media (max-width: 540px) {\n ","\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n "])),a,r,t?"1":"2",i,"")})),Pa=He.d.div(Kn||(Kn=Object(Ue.a)(["\n padding: 0 20px 20px 20px;\n"]))),Ma=He.d.div(Jn||(Jn=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isHidden,n=e.notificationMessage,a=e.isError,r=e.theme.addDialog,i=r.notificationErrorBGColor,o=r.notificationSuccessBGColor;return Object(He.c)(Yn||(Yn=Object(Ue.a)(["\n height: 530px;\n\n ",";\n\n ",";\n\n @media (max-width: 500px) {\n height: 170px;\n }\n "])),n&&Object(He.c)($n||($n=Object(Ue.a)(["\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '","';\n display: grid;\n place-items: center;\n background: ",";\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n "])),n,a?i:o),t&&Object(He.c)(Xn||(Xn=Object(Ue.a)(["\n display: none;\n "]))))})),Ba=He.d.div(qn||(qn=Object(Ue.a)(["\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n"]))),Ra=Object(He.c)(Qn||(Qn=Object(Ue.a)(["\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n"]))),La=He.d.div(ea||(ea=Object(Ue.a)(["\n ","\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n\n ",";\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n"])),Ra,(function(e){return e.isDragActive&&"border: 4px dashed green"})),Aa=He.d.div(ta||(ta=Object(Ue.a)(["\n ","\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n"])),Ra),za=He.d.div(na||(na=Object(Ue.a)(["\n position: relative;\n"]))),Fa=He.d.div(aa||(aa=Object(Ue.a)(["\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n"]))),Ea=He.d.div(ra||(ra=Object(Ue.a)(["\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n"]))),Ga=He.d.div(ia||(ia=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.active,n=e.theme.addDialog.gradientStartColor;return Object(He.c)(oa||(oa=Object(Ue.a)(["\n background: ",";\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ",";\n "])),n,t&&"box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)")})),Na=He.d.div(ca||(ca=Object(Ue.a)(["\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n"]))),Ia=He.d.div(la||(la=Object(Ue.a)(["\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n"]))),Ua=He.d.div(sa||(sa=Object(Ue.a)(["\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n"]))),Ha=He.d.div(da||(da=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.addDialog.posterBGColor;return Object(He.c)(pa||(pa=Object(Ue.a)(["\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ","\n "])),t?Object(He.c)(ja||(ja=Object(Ue.a)(["\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(He.c)(ba||(ba=Object(Ue.a)(["\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n "])),n))})),Wa=Object(He.d)(ne.a)(ua||(ua=Object(Ue.a)(["\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ",";\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n"])),(function(e){return!e.showbutton&&"display: none"})),Va=He.d.div(ha||(ha=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.showbutton,n=e.theme.addDialog,a=n.languageSwitchBGColor,r=n.languageSwitchFontColor;return Object(He.c)(xa||(xa=Object(Ue.a)(["\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ",";\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ",";\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ",";\n\n :hover {\n filter: brightness(1.1);\n }\n "])),a,r,!t&&"display: none")})),Za=n(483),_a=n(447),Ka=n(448);function Ja(e){var t=e.setTitle,n=e.setPosterUrl,a=e.setIsPosterUrlCorrect,r=e.setIsUserInteractedWithPoster,i=e.setPosterList,o=e.isTorrentSourceCorrect,c=e.isHashAlreadyExists,l=e.title,s=e.parsedTitle,d=e.posterUrl,j=e.isPosterUrlCorrect,b=e.posterList,u=e.currentLang,h=e.posterSearchLanguage,x=e.setPosterSearchLanguage,g=e.posterSearch,m=e.removePoster,O=e.torrentSource,f=e.originalTorrentTitle,C=e.updateTitleFromSource,v=e.isCustomTitleEnabled,y=e.setIsCustomTitleEnabled,w=e.isEditMode,S=Object(ce.a)().t,k=Object(Y.a)().palette.primary.main,D=function(e){var n=e.target.value;return t(n)};return Object($.jsxs)(Pa,{children:[Object($.jsxs)(Ma,{isHidden:!o||c&&!w,children:[f?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Za.a,{value:f,margin:"dense",label:S("AddDialog.OriginalTorrentTitle"),type:"text",fullWidth:!0,disabled:v,InputProps:{readOnly:!0}}),Object($.jsx)(Za.a,{onChange:D,onFocus:function(){return y(!0)},onBlur:function(e){return!e.target.value&&y(!1)},value:l,margin:"dense",label:S("AddDialog.CustomTorrentTitle"),type:"text",fullWidth:!0,helperText:S("AddDialog.CustomTorrentTitleHelperText"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:Object($.jsx)(p.a,{style:{padding:"1px"},onClick:function(){t(""),y(!v),C(),r(!1)},children:Object($.jsx)(Ka.a,{style:{color:v?k:Object(Le.a)("#ccc",.5)}})})})}})]}):Object($.jsx)(Za.a,{onChange:D,value:l,margin:"dense",label:S("AddDialog.TitleBlank"),type:"text",fullWidth:!0}),Object($.jsx)(Za.a,{onChange:function(e){var t=e.target.value;n(t),ya(t).then(a),r(!!t),i()},value:d,margin:"dense",label:S("AddDialog.AddPosterLinkInput"),type:"url",fullWidth:!0}),Object($.jsxs)(Na,{children:[Object($.jsx)(Ha,{poster:+j,children:j?Object($.jsx)("img",{src:d,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsx)(Ia,{children:null===b||void 0===b?void 0:b.filter((function(e){return e!==d})).slice(0,12).map((function(e){return Object($.jsx)(Ua,{onClick:function(){return function(e){n(e),ya(e).then(a),r(!0)}(e)},children:Object($.jsx)("img",{src:e,alt:"poster"})},e)}))}),"en"!==u&&Object($.jsx)(Va,{onClick:function(){var e="en"===h?"ru":"en";x(e),g(v?l:f?s:l,e,{shouldRefreshMainPoster:!0})},showbutton:+j,color:"primary",variant:"contained",size:"small",children:"en"===h?"EN":"RU"}),Object($.jsx)(Wa,{showbutton:+j,onClick:function(){m(),r(!0)},color:"primary",variant:"contained",size:"small",children:S("Clear")})]})]}),Object($.jsx)(Ma,{isError:O&&(!o||c),notificationMessage:O?o?c&&S("AddDialog.HashExists"):S("AddDialog.WrongTorrentSource"):S("AddDialog.AddTorrentSourceNotification"),isHidden:w||o&&!c})]})}var Ya,$a,Xa,qa,Qa,er,tr,nr,ar,rr,ir=n(196),or=n(449);function cr(e){var t=e.setIsUserInteractedWithPoster,n=e.setSelectedFile,r=e.torrentSource,i=e.setTorrentSource,o=e.selectedFile,c=Object(ce.a)().t,s=Object(a.useState)(!1),d=Object(l.a)(s,2),p=d[0],j=d[1],b=Object(ir.a)({onDrop:function(e){var a=Object(l.a)(e,1)[0];a&&(t(!1),n(a),i(a.name))},accept:".torrent"}),u=b.getRootProps,h=b.getInputProps,x=b.isDragActive;return Object($.jsxs)(Ba,{children:[Object($.jsx)(Ga,{active:p,children:Object($.jsx)(Za.a,{onChange:function(e){var t=e.target.value;return i(t)},value:r,margin:"dense",label:c("AddDialog.TorrentSourceLink"),helperText:c("AddDialog.TorrentSourceOptions"),type:"text",fullWidth:!0,onFocus:function(){return j(!0)},onBlur:function(){return j(!1)},inputProps:{autoComplete:"off"},disabled:!!o})}),o?Object($.jsx)(Aa,{children:Object($.jsxs)(za,{children:[Object($.jsx)(te,{}),Object($.jsx)(Fa,{onClick:function(){n(),i("")},children:Object($.jsx)(or.a,{})})]})}):Object($.jsxs)(La,Object(M.a)(Object(M.a)({isDragActive:x},u()),{},{children:[Object($.jsx)("input",Object(M.a)({},h())),Object($.jsx)("div",{children:c("AddDialog.AppendFile.Or")}),Object($.jsxs)(Ea,{children:[Object($.jsx)(q,{color:"primary"}),Object($.jsx)("div",{children:c("AddDialog.AppendFile.ClickOrDrag")})]})]}))]})}function lr(e){var t=e.handleClose,n=e.hash,r=e.title,i=e.name,o=e.poster,c=Object(ce.a)().t,s=!!n,d=Object(a.useState)(n||""),p=Object(l.a)(d,2),j=p[0],b=p[1],u=Object(a.useState)(r||""),h=Object(l.a)(u,2),x=h[0],g=h[1],m=Object(a.useState)(""),O=Object(l.a)(m,2),f=O[0],y=O[1],w=Object(a.useState)(""),S=Object(l.a)(w,2),k=S[0],D=S[1],T=Object(a.useState)(o||""),M=Object(l.a)(T,2),B=M[0],R=M[1],L=Object(a.useState)(!1),A=Object(l.a)(L,2),z=A[0],F=A[1],E=Object(a.useState)(!1),G=Object(l.a)(E,2),N=G[0],I=G[1],U=Object(a.useState)(!1),H=Object(l.a)(U,2),W=H[0],V=H[1],Z=Object(a.useState)(),_=Object(l.a)(Z,2),K=_[0],Y=_[1],X=Object(a.useState)(s),q=Object(l.a)(X,2),Q=q[0],ee=q[1],te=In(),ae=Object(l.a)(te,1)[0],re=Object(a.useState)(),le=Object(l.a)(re,2),se=le[0],de=le[1],pe=Object(a.useState)("ru"===ae?"ru":"en"),je=Object(l.a)(pe,2),be=je[0],ue=je[1],he=Object(a.useState)(!1),xe=Object(l.a)(he,2),ge=xe[0],me=xe[1],Oe=Object(a.useState)(!1),fe=Object(l.a)(Oe,2),Ce=fe[0],ve=fe[1],ye=Object(a.useState)(!1),we=Object(l.a)(ye,2),Se=we[0],ke=we[1],De=Object(a.useState)(),Te=Object(l.a)(De,2),Pe=Te[0],Me=Te[1],Be=Object(ga.a)("torrents",J,{retry:1,refetchInterval:1e3}).data;Object(a.useEffect)((function(){Oa.a.remote(se||j,(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.infoHash;return Me(n)}))}),[se,j]),Object(a.useEffect)((function(){if(Me){var e=Be.map((function(e){return e.hash}));V(e.includes(Pe))}}),[Pe,Be]),Object(a.useEffect)((function(){ge&&(Be.map((function(e){return e.hash})).includes(Pe)&&t())}),[ge,Be,Pe,t]);var Le=Object(Re.a)("@media (max-width:930px)"),Ae=Object(a.useCallback)((function(){var e,t;e=se||j,t=function(e){var t=e.parsedTitle,n=e.originalName;n&&(ve(!0),g(""),ke(!1),y(n),D(t))},Oa.a.remote(e,(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=n.name,r=n.files;if(!a||e)return t({parsedTitle:null,originalName:null});var i=ie.a.parse(a).title,o=r?ie.a.parse(r[0].name).title:null,c=i;o&&(c=i.length2&&void 0!==arguments[2]?arguments[2]:{},a=n.shouldRefreshMainPoster,r=void 0!==a&&a;if(!e)return Y(),void ze();va(e,t).then((function(e){if(e){if(Y(e),!r&&Q)return;var t=Object(l.a)(e,1)[0];ya(t).then((function(e){e?(F(!0),R(t)):ze()}))}else{if(Y(),Q)return;ze()}}))}}),[Q]),Ee=Object(a.useMemo)((function(){return Nn()(Fe,700)}),[Fe]),Ge=Un(j);Object(a.useEffect)((function(){var e;if(!(null!==(e=j).match(Sa)||null!==e.match(wa)||null!==e.match(ka)||null!==e.match(Da)))return I(!1);I(!0),j!==Ge&&Ae()}),[Ge,se,j,Ae]);var Ne=Un(x);Object(a.useEffect)((function(){(x!==Ne||k)&&(Ce?(Fe(x||k,be),ve(!1)):x?Ee(x,be):(Ee.cancel(),k?Fe(k,be):!Q&&ze()))}),[x,k,Ne,Ee,Fe,be,Ce,Q]);return Object($.jsxs)(An.a,{open:!0,onClose:t,fullScreen:Le,fullWidth:!0,maxWidth:"md",children:[Object($.jsx)(fa,{children:c(s?"EditTorrent":"AddNewTorrent")}),Object($.jsxs)(Ta,{isEditMode:s,children:[!s&&Object($.jsx)(cr,{setIsUserInteractedWithPoster:ee,selectedFile:se,setSelectedFile:de,torrentSource:j,setTorrentSource:b}),Object($.jsx)(Ja,{originalTorrentTitle:f,setTitle:g,setPosterUrl:R,setIsPosterUrlCorrect:F,setIsUserInteractedWithPoster:ee,setPosterList:Y,isTorrentSourceCorrect:N,isHashAlreadyExists:W,title:x,parsedTitle:k,posterUrl:B,isPosterUrlCorrect:z,posterList:K,currentLang:ae,posterSearchLanguage:be,setPosterSearchLanguage:ue,posterSearch:Fe,removePoster:ze,updateTitleFromSource:Ae,torrentSource:j,isCustomTitleEnabled:Se,setIsCustomTitleEnabled:ke,isEditMode:s})]}),Object($.jsxs)(Ca,{children:[Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"outlined",children:c("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",style:{minWidth:"110px"},disabled:!j||W&&!s||!N,onClick:function(){if(me(!0),s)P.a.post(v(),{action:"set",hash:n,title:x||i,poster:B}).finally(t);else if(se){var e=new FormData;e.append("save","true"),e.append("file",se),x&&e.append("title",x),B&&e.append("poster",B),P.a.post("".concat(C,"/torrent/upload"),e).catch(t)}else P.a.post(v(),{action:"add",link:j,title:x,poster:B,save_to_db:!0}).catch(t)},color:"secondary",children:ge?Object($.jsx)(oe.a,{style:{color:"white"},size:20}):c(s?"Save":"Add")})]})]})}var sr,dr,pr,jr,br,ur,hr,xr,gr,mr,Or,fr,Cr,vr=He.d.div(Ya||(Ya=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard.cardPrimaryColor;return Object(He.c)($a||($a=Object(Ue.a)(["\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ",";\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n "])),t)})),yr=He.d.div(Xa||(Xa=Object(Ue.a)(["\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n\n ",";\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n"])),(function(e){var t=e.isPoster,n=e.theme.torrentCard,a=n.cardSecondaryColor,r=n.accentCardColor;return t?Object(He.c)(qa||(qa=Object(Ue.a)(["\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n "]))):Object(He.c)(Qa||(Qa=Object(Ue.a)(["\n display: grid;\n place-items: center;\n background: ",";\n border: 1px solid ",";\n\n svg {\n transform: translateY(-3px);\n }\n "])),a,r)})),wr=He.d.div(er||(er=Object(Ue.a)(["\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n"]))),Sr=He.d.div(tr||(tr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.cardSecondaryColor,a=t.accentCardColor;return Object(He.c)(nr||(nr=Object(Ue.a)(["\n grid-area: description;\n background: ",";\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ",";\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n "])),n,a)})),kr=He.d.button(ar||(ar=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.buttonBGColor,a=t.accentCardColor;return Object(He.c)(rr||(rr=Object(Ue.a)(["\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ",";\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ",";\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n "])),n,a)})),Dr=Object(a.forwardRef)((function(e,t){return Object($.jsx)(zn.a,Object(M.a)({direction:"up",ref:t},e))})),Tr=function(e){var t=e.torrent,n=Object(ce.a)().t,r=Object(a.useState)(!1),i=Object(l.a)(r,2),o=i[0],c=i[1],s=Object(a.useState)(!1),d=Object(l.a)(s,2),p=d[0],b=d[1],u=Object(Y.a)(),h=Object(Re.a)(u.breakpoints.down("md")),x=function(){return c(!1)},g=function(){return b(!1)},m=t.title,O=t.name,f=t.poster,C=t.torrent_size,y=t.download_speed,w=t.hash,S=function(){var e=function(e){var t,n;return(null===(t=ie.a.parse(m||""))||void 0===t?void 0:t[e])||(null===(n=ie.a.parse(O||""))||void 0===n?void 0:n[e])},t=[],n=K(e("title")),a=e("year"),r=e("resolution");return n&&t.push(n),a&&t.push("(".concat(a,")")),r&&t.push("[".concat(r,"]")),{parsedTitle:n=t.join(" ")}}().parsedTitle,k=Object(a.useState)(!1),D=Object(l.a)(k,2),T=D[0],M=D[1];return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(vr,{children:[Object($.jsx)(yr,{isPoster:f,children:f?Object($.jsx)("img",{src:f,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsxs)(wr,{children:[Object($.jsxs)(kr,{onClick:function(){return c(!0)},children:[Object($.jsx)(B.a,{}),Object($.jsx)("span",{children:n("Details")})]}),Object($.jsxs)(kr,{onClick:function(){return M(!0)},children:[Object($.jsx)(R.a,{}),Object($.jsx)("span",{children:n("Edit")})]}),Object($.jsxs)(kr,{onClick:function(){return P.a.post(v(),{action:"drop",hash:w})},children:[Object($.jsx)(j.a,{}),Object($.jsx)("span",{children:n("Drop")})]}),Object($.jsxs)(kr,{onClick:function(){return b(!0)},children:[Object($.jsx)(L.a,{}),Object($.jsx)("span",{children:n("Delete")})]})]}),Object($.jsxs)(Sr,{children:[Object($.jsxs)("div",{className:"description-title-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Name")}),Object($.jsx)("div",{className:"description-torrent-title",children:S})]}),Object($.jsxs)("div",{className:"description-statistics-wrapper",children:[Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Size")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:C>0&&V(C)})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Speed")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:y>0?Z(y):"---"})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Peers")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:_(t)||"---"})]})]})]})]}),Object($.jsx)(An.a,{open:o,onClose:x,fullScreen:h,fullWidth:!0,maxWidth:"xl",TransitionComponent:Dr,children:Object($.jsx)(Ln,{closeDialog:x,torrent:t})}),Object($.jsxs)(An.a,{open:p,onClose:g,children:[Object($.jsx)(Fn.a,{children:n("DeleteTorrent?")}),Object($.jsxs)(En.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:g,color:"secondary",children:n("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){P.a.post(v(),{action:"rem",hash:w}),g()},color:"secondary",autoFocus:!0,children:n("OK")})]})]}),T&&Object($.jsx)(lr,{hash:w,title:m,name:O,poster:f,handleClose:function(){return M(!1)}})]})},Pr=Object(a.memo)(Tr),Mr=He.d.div(sr||(sr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.app.appSecondaryColor;return Object(He.c)(dr||(dr=Object(Ue.a)(["\n height: 100%;\n background: ",";\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n "])),Object(Le.a)(t,.8))})),Br=He.d.div(pr||(pr=Object(Ue.a)(["\n height: 100%;\n display: grid;\n place-items: center;\n"]))),Rr=He.d.div(jr||(jr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(He.c)(br||(br=Object(Ue.a)(["\n background: ",";\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n "])),t)})),Lr=He.d.div(ur||(ur=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isDrawerOpen,n=e.theme.app,a=n.appSecondaryColor,r=n.sidebarBGColor,i=n.sidebarFillColor;return Object(He.c)(hr||(hr=Object(Ue.a)(["\n grid-area: side;\n width: ",";\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ",";\n background: ",";\n color: ",";\n white-space: nowrap;\n\n svg {\n fill: ",";\n }\n "])),t?"400%":"100%",Object(Le.a)(a,.12),r,i,i)})),Ar=He.d.div(xr||(xr=Object(Ue.a)(["\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n"]))),zr=He.d.div(gr||(gr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.app.headerToggleColor;return Object(He.c)(mr||(mr=Object(Ue.a)(["\n cursor: pointer;\n border-radius: 50%;\n background: ",";\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ",";\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n "])),t,Object(Le.a)(t,.7))})),Fr=He.d.div(Or||(Or=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isButton;return Object(He.c)(fr||(fr=Object(Ue.a)(["\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ","\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n "])),t&&Object(He.c)(Cr||(Cr=Object(Ue.a)(["\n background: #88cdaa;\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: #74c39c;\n }\n "]))))}));function Er(){var e=Object(ce.a)().t,t=Object(Y.a)().palette.primary.main;return Object($.jsxs)(Fr,{children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/wrprwmwt.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(t),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("Offline")})]})}function Gr(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(Y.a)().palette.primary.main;return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Fr,{onClick:function(){return i(!0)},isButton:!0,children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/bbnkwdur.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(o),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("NoTorrentsAdded")})]}),r&&Object($.jsx)(lr,{handleClose:function(){return i(!1)}})]})}function Nr(e){var t=e.isOffline,n=e.isLoading,a=e.torrents;return n||t||!a.length?Object($.jsx)(Br,{children:t?Object($.jsx)(Er,{}):n?Object($.jsx)(oe.a,{color:"secondary"}):!a.length&&Object($.jsx)(Gr,{})}):Object($.jsx)(Ar,{children:a.map((function(e){return Object($.jsx)(Pr,{torrent:e},e.hash)}))})}var Ir=n(482),Ur=n(189),Hr=n.n(Ur),Wr=n(458),Vr=n(457),Zr=n(446);function _r(e){var t=e.onClose,n=Object(ce.a)().t;return Object($.jsxs)(An.a,{open:!0,onClose:t,"aria-labelledby":"form-dialog-title",fullWidth:!0,maxWidth:"xs",children:[Object($.jsx)(Fn.a,{id:"form-dialog-title",children:n("Donate")}),Object($.jsx)(Vr.a,{children:Object($.jsxs)(Zr.a,{children:[Object($.jsx)(Wr.a,{children:Object($.jsxs)(ae.a,{variant:"outlined",color:"primary","aria-label":"contained primary button group",children:[Object($.jsx)(ne.a,{onClick:function(){return window.open("https://www.paypal.com/paypalme/yourok","_blank")},children:"PayPal"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://yoomoney.ru/to/410013733697114","_blank")},children:"IO.Money"})]})},"DonateLinks"),Object($.jsx)(Wr.a,{children:Object($.jsx)("div",{dangerouslySetInnerHTML:{__html:''}})},"DonateForm")]})}),Object($.jsx)(En.a,{children:Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"contained",children:"Ok"})})]})}function Kr(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!0),c=Object(l.a)(o,2),s=c[0],d=c[1],j=function(){d(!1),localStorage.setItem("snackbarIsClosed",!0)};return Object($.jsxs)($.Fragment,{children:[r&&Object($.jsx)(_r,{onClose:function(){return i(!1)}}),Object($.jsx)(Ir.a,{anchorOrigin:{vertical:"bottom",horizontal:"center"},open:s,onClose:j,message:e("Donate?"),action:Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(ne.a,{style:{marginRight:"10px"},color:"secondary",size:"small",onClick:function(){i(!0),j()},children:[Object($.jsx)(Hr.a,{style:{marginRight:"10px"},fontSize:"small"}),e("Support")]}),Object($.jsx)(p.a,{size:"small","aria-label":"close",color:"inherit",onClick:j,children:Object($.jsx)(be.a,{fontSize:"small"})})]})})]})}var Jr,Yr=n(469),$r=Object(He.b)(Jr||(Jr=Object(Ue.a)(['\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: "Open Sans", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n }\n\n button {\n font-family: "Open Sans", sans-serif;\n letter-spacing: -0.1px;\n }\n']))),Xr=n(467),qr=n(459),Qr=n(460),ei=n(468),ti=n(190),ni=n.n(ti);function ai(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1];return Object($.jsxs)("div",{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(ni.a,{})}),Object($.jsx)(Qr.a,{primary:r("AddFromLink")})]}),c&&Object($.jsx)(lr,{handleClose:function(){return s(!1)}})]})}var ri,ii,oi,ci,li,si,di,pi,ji,bi,ui,hi,xi,gi,mi,Oi,fi,Ci,vi,yi,wi,Si,ki=n(192),Di=n.n(ki),Ti=n(480),Pi=n(462),Mi=n(477),Bi=n(464),Ri=n(191),Li=n.n(Ri),Ai="#b3dfc9",zi=ze.light.primary,Fi=Object(He.d)(fa)(ri||(ri=Object(Ue.a)(["\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n"]))),Ei=He.d.div(ii||(ii=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.settingsDialog.footerBG;return Object(He.c)(oi||(oi=Object(Ue.a)(["\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ",";\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n "])),t)})),Gi=(He.d.div(ci||(ci=Object(Ue.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),He.d.div(li||(li=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isLoading,n=e.theme.settingsDialog.contentBG;return Object(He.c)(si||(si=Object(Ue.a)(["\n background: ",";\n overflow: auto;\n flex: 1;\n\n ","\n "])),n,t&&Object(He.c)(di||(di=Object(Ue.a)(["\n min-height: 500px;\n display: grid;\n place-items: center;\n "]))))}))),Ni=He.d.div(pi||(pi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.color;return Object(He.c)(ji||(ji=Object(Ue.a)(["\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ",";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n "])),t)})),Ii=He.d.div(bi||(bi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n"]))),Ui=He.d.div(ui||(ui=Object(Ue.a)(["\n padding: 20px;\n"]))),Hi=He.d.div(hi||(hi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.small,n=e.selected;return Object(He.c)(xi||(xi=Object(Ue.a)(["\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ","\n\n ","\n "])),!n&&Object(He.c)(gi||(gi=Object(Ue.a)(["\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n "]))),t?Object(He.c)(mi||(mi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n "]))):Object(He.c)(Oi||(Oi=Object(Ue.a)(["\n display: grid;\n place-items: center;\n gap: 10px;\n "]))))})),Wi=He.d.div(fi||(fi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.selected,n=e.small;return Object(He.c)(Ci||(Ci=Object(Ue.a)(["\n width: ",";\n height: ",";\n border-radius: 50%;\n background: ",";\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ",";\n height: ",";\n }\n "])),n?"60px":"150px",n?"60px":"150px",t?"#323637":"#dee3e5",n?"50px":"90px",n?"50px":"90px")})),Vi=He.d.div(vi||(vi=Object(Ue.a)(["\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n"]))),Zi=He.d.div(yi||(yi=Object(Ue.a)(["\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n"]))),_i=He.d.div.attrs((function(e){var t=e.value;return{style:{background:"linear-gradient(to right, ".concat(Ai," 0%, ").concat(Ai," ").concat(t,"%, ").concat(zi," ").concat(t,"%, ").concat(zi," 100%)")}}}))(wi||(wi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.label,n=e.preloadCachePercentage;return Object(He.c)(Si||(Si=Object(Ue.a)(["\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ","%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n "])),t,n)})),Ki={CacheSize:96,ReaderReadAHead:95,UseDisk:!1,UploadRateLimit:0,TorrentsSavePath:"",ConnectionsLimit:23,DisableDHT:!1,DisablePEX:!1,DisableTCP:!1,DisableUPNP:!1,DisableUTP:!0,DisableUpload:!1,DownloadRateLimit:0,EnableDebug:!1,EnableIPv6:!1,ForceEncrypt:!1,PeersListenPort:0,PreloadCache:0,RemoveCacheOnDrop:!1,RetrackersMode:1,TorrentDisconnectTimeout:30},Ji=n(197),Yi=function(e){return{id:"full-width-tab-".concat(e),"aria-controls":"full-width-tabpanel-".concat(e)}},$i=function(e){var t=e.children,n=e.value,a=e.index,r=Object(Ji.a)(e,["children","value","index"]);return Object($.jsx)("div",Object(M.a)(Object(M.a)({role:"tabpanel",hidden:n!==a,id:"full-width-tabpanel-".concat(a)},r),{},{children:n===a&&Object($.jsx)($.Fragment,{children:t})}))},Xi=n(463),qi=n(461),Qi=n(487),eo=n(485);function to(e){var t=e.isProMode,n=e.title,a=e.value,r=e.setValue,i=e.sliderMin,o=e.sliderMax,c=e.inputMin,l=e.inputMax,s=e.step,d=void 0===s?1:s,p=e.onBlurCallback;return Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:n}),Object($.jsxs)(qi.a,{container:!0,spacing:2,alignItems:"center",children:[Object($.jsx)(qi.a,{item:!0,xs:!0,children:Object($.jsx)(Qi.a,{min:i,max:o,value:a,onChange:function(e,t){return r(t)},step:d,color:"secondary"})}),t&&Object($.jsx)(qi.a,{item:!0,children:Object($.jsx)(eo.a,{value:a,margin:"dense",onChange:function(e){var t=e.target.value;return r(""===t?"":Number(t))},onBlur:function(e){var t=e.target.value;return tl?r(l):void(p&&p(t))},style:{width:"91px",marginTop:"-6px"},inputProps:{step:d,min:c,max:l,type:"number"}})})]})]})}var no=function(e){var t=e.style,n=Object(ce.a)().t;return Object($.jsxs)(Zi,{style:t,children:[n("SettingsDialog.CacheStorageLocation"),Object($.jsx)("small",{children:n("SettingsDialog.UseDiskDesc")})]})};function ao(e){var t=e.settings,n=e.inputForm,a=e.cachePercentage,r=e.preloadCachePercentage,i=e.cacheSize,o=e.isProMode,c=e.setCacheSize,l=e.setCachePercentage,s=e.setPreloadCachePercentage,d=e.updateSettings,p=Object(ce.a)().t,j=t||{},b=j.UseDisk,u=j.TorrentsSavePath,h=j.RemoveCacheOnDrop,x=Math.round(i/100*r);return Object($.jsxs)(Ii,{children:[Object($.jsxs)("div",{children:[Object($.jsx)(Zi,{children:p("SettingsDialog.CacheSettings")}),Object($.jsx)(_i,{value:100-a,label:"".concat(p("Cache")," ").concat(i," ").concat(p("MB")),preloadCachePercentage:r}),Object($.jsxs)(Ni,{color:Ai,children:[Object($.jsxs)("div",{children:[100-a,"% (",Math.round(i/100*(100-a))," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheBeforeReaderDesc")})]}),Object($.jsxs)(Ni,{color:zi,children:[Object($.jsxs)("div",{children:[a,"% (",Math.round(i/100*a)," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheAfterReaderDesc")})]}),Object($.jsx)("br",{}),Object($.jsx)(to,{isProMode:o,title:p("SettingsDialog.CacheSize"),value:i,setValue:c,sliderMin:32,sliderMax:1024,inputMin:32,inputMax:999999,step:4,onBlurCallback:function(e){return c(4*Math.round(e/4))}}),Object($.jsx)(to,{isProMode:o,title:p("SettingsDialog.ReaderReadAHead"),value:a,setValue:l,sliderMin:40,sliderMax:95,inputMin:0,inputMax:100}),Object($.jsx)(to,{isProMode:o,title:"".concat(p("SettingsDialog.PreloadCache")," - ").concat(r,"% (").concat(x," ").concat(p("MB"),")"),value:r,setValue:s,sliderMin:0,sliderMax:100,inputMin:0,inputMax:100})]}),b?Object($.jsxs)("div",{children:[Object($.jsx)(no,{}),Object($.jsxs)("div",{style:{display:"grid",gridAutoFlow:"column"},children:[Object($.jsxs)(Hi,{small:!0,onClick:function(){return d({UseDisk:!1})},children:[Object($.jsx)(Wi,{small:!0,children:Object($.jsx)(ee,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(Hi,{small:!0,selected:!0,children:[Object($.jsx)(Wi,{small:!0,selected:!0,children:Object($.jsx)(Q,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:h,onChange:n,id:"RemoveCacheOnDrop",color:"secondary"}),label:p("SettingsDialog.RemoveCacheOnDrop"),labelPlacement:"start"}),Object($.jsx)("div",{children:Object($.jsx)("small",{children:p("SettingsDialog.RemoveCacheOnDropDesc")})}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"TorrentsSavePath",label:p("SettingsDialog.TorrentsSavePath"),value:u,type:"url",variant:"outlined",fullWidth:!0})]}):Object($.jsxs)(Vi,{children:[Object($.jsx)(no,{style:{placeSelf:"start",gridArea:"label"}}),Object($.jsxs)(Hi,{selected:!0,children:[Object($.jsx)(Wi,{selected:!0,children:Object($.jsx)(ee,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(Hi,{onClick:function(){return d({UseDisk:!0})},children:[Object($.jsx)(Wi,{children:Object($.jsx)(Q,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]})]})}var ro=n(486),io=n(476);function oo(e){var t=e.settings,n=e.inputForm,a=Object(ce.a)().t,r=t||{},i=r.RetrackersMode,o=r.TorrentDisconnectTimeout,c=r.EnableIPv6,l=r.ForceEncrypt,s=r.DisableTCP,d=r.DisableUTP,p=r.DisableUPNP,j=r.DisableDHT,b=r.DisablePEX,u=r.DisableUpload,h=r.DownloadRateLimit,x=r.UploadRateLimit,g=r.ConnectionsLimit,m=r.PeersListenPort;return Object($.jsxs)(Ui,{children:[Object($.jsx)(Zi,{children:a("SettingsDialog.AdditionalSettings")}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:c,onChange:n,id:"EnableIPv6",color:"secondary"}),label:"IPv6",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!s,onChange:n,id:"DisableTCP",color:"secondary"}),label:"TCP (Transmission Control Protocol)",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!d,onChange:n,id:"DisableUTP",color:"secondary"}),label:"\u03bcTP (Micro Transport Protocol)",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!b,onChange:n,id:"DisablePEX",color:"secondary"}),label:"PEX (Peer Exchange)",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:l,onChange:n,id:"ForceEncrypt",color:"secondary"}),label:a("SettingsDialog.ForceEncrypt"),labelPlacement:"start"}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"TorrentDisconnectTimeout",label:a("SettingsDialog.TorrentDisconnectTimeout"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:a("Seconds")})},value:o,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"ConnectionsLimit",label:a("SettingsDialog.ConnectionsLimit"),helperText:a("SettingsDialog.ConnectionsLimitHint"),value:g,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!j,onChange:n,id:"DisableDHT",color:"secondary"}),label:a("SettingsDialog.DHT"),labelPlacement:"start"}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"DownloadRateLimit",label:a("SettingsDialog.DownloadRateLimit"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:a("Kilobytes")})},value:h,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!u,onChange:n,id:"DisableUpload",color:"secondary"}),label:a("SettingsDialog.Upload"),labelPlacement:"start"}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"UploadRateLimit",label:a("SettingsDialog.UploadRateLimit"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:a("Kilobytes")})},value:x,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"PeersListenPort",label:a("SettingsDialog.PeersListenPort"),helperText:a("SettingsDialog.PeersListenPortHint"),value:m,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!p,onChange:n,id:"DisableUPNP",color:"secondary"}),label:"UPnP (Universal Plug and Play)",labelPlacement:"start"}),Object($.jsx)("br",{}),Object($.jsx)(ro.a,{htmlFor:"RetrackersMode",children:a("SettingsDialog.RetrackersMode")}),Object($.jsxs)(io.a,{onChange:n,margin:"normal",type:"number",native:!0,id:"RetrackersMode",value:i,variant:"outlined",children:[Object($.jsx)("option",{value:0,children:a("SettingsDialog.DontAddRetrackers")}),Object($.jsx)("option",{value:1,children:a("SettingsDialog.AddRetrackers")}),Object($.jsx)("option",{value:2,children:a("SettingsDialog.RemoveRetrackers")}),Object($.jsx)("option",{value:3,children:a("SettingsDialog.ReplaceRetrackers")})]}),Object($.jsx)("br",{})]})}function co(e){var t=e.handleClose,n=Object(ce.a)().t,r=Object(Re.a)("@media (max-width:930px)"),i=Object(Y.a)().direction,o=Object(a.useState)(),c=Object(l.a)(o,2),s=c[0],d=c[1],p=Object(a.useState)(0),j=Object(l.a)(p,2),b=j[0],u=j[1],h=Object(a.useState)(32),x=Object(l.a)(h,2),g=x[0],m=x[1],O=Object(a.useState)(40),f=Object(l.a)(O,2),C=f[0],v=f[1],y=Object(a.useState)(0),S=Object(l.a)(y,2),k=S[0],D=S[1],T=Object(a.useState)(JSON.parse(localStorage.getItem("isProMode"))||!1),B=Object(l.a)(T,2),R=B[0],L=B[1];Object(a.useEffect)((function(){P.a.post(w(),{action:"get"}).then((function(e){var t=e.data;d(Object(M.a)(Object(M.a)({},t),{},{CacheSize:t.CacheSize/1048576}))}))}),[]);var A=function(e){var t=e.target,n=t.type,a=t.value,r=t.checked,i=t.id,o=JSON.parse(JSON.stringify(s));"number"===n||"select-one"===n?o[i]=Number(a):"checkbox"===n?o[i]="DisableTCP"===i||"DisableUTP"===i||"DisableUPNP"===i||"DisableDHT"===i||"DisablePEX"===i||"DisableUpload"===i?Boolean(!r):Boolean(r):"url"===n&&(o[i]=a),d(o)},z=s||{},F=z.CacheSize,E=z.ReaderReadAHead,G=z.PreloadCache;Object(a.useEffect)((function(){isNaN(F)||isNaN(E)||isNaN(G)||(m(F),v(E),D(G))}),[F,E,G]);var N=function(e){return d(Object(M.a)(Object(M.a)({},s),e))};return Object($.jsxs)(An.a,{open:!0,onClose:t,fullScreen:r,fullWidth:!0,maxWidth:"md",children:[Object($.jsxs)(Fi,{children:[Object($.jsx)("div",{children:n("SettingsDialog.Settings")}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Ti.a,{checked:R,onChange:function(e){var t=e.target.checked;L(t),localStorage.setItem("isProMode",t),t||u(0)},style:{color:"white"}}),label:n("SettingsDialog.ProMode")})]}),Object($.jsx)(de.a,{position:"static",color:"default",children:Object($.jsxs)(Mi.a,{value:b,onChange:function(e,t){return u(t)},indicatorColor:"secondary",textColor:"secondary",variant:"fullWidth",children:[Object($.jsx)(Bi.a,Object(M.a)({label:n("SettingsDialog.Tabs.Main")},Yi(0))),Object($.jsx)(Bi.a,Object(M.a)({disabled:!R,label:Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:n("SettingsDialog.Tabs.Additional")}),!R&&Object($.jsx)("div",{style:{fontSize:"9px"},children:n("SettingsDialog.Tabs.AdditionalDisabled")})]})},Yi(1)))]})}),Object($.jsx)(Gi,{isLoading:!s,children:s?Object($.jsx)($.Fragment,{children:Object($.jsxs)(Li.a,{axis:"rtl"===i?"x-reverse":"x",index:b,onChangeIndex:function(e){return u(e)},children:[Object($.jsx)($i,{value:b,index:0,dir:i,children:Object($.jsx)(ao,{settings:s,inputForm:A,cachePercentage:C,preloadCachePercentage:k,cacheSize:g,isProMode:R,setCacheSize:m,setCachePercentage:v,setPreloadCachePercentage:D,updateSettings:N})}),Object($.jsx)($i,{value:b,index:1,dir:i,children:Object($.jsx)(oo,{settings:s,inputForm:A})})]})}):Object($.jsx)(oe.a,{color:"secondary"})}),Object($.jsxs)(Ei,{children:[Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"outlined",children:n("Cancel")}),Object($.jsx)(ne.a,{onClick:function(){m(Ki.CacheSize),v(Ki.ReaderReadAHead),D(Ki.PreloadCache),N(Ki)},color:"secondary",variant:"outlined",children:n("SettingsDialog.ResetToDefault")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){t();var e=JSON.parse(JSON.stringify(s));e.CacheSize=1024*g*1024,e.ReaderReadAHead=C,e.PreloadCache=k,P.a.post(w(),{action:"set",sets:e})},color:"secondary",children:n("Save")})]})]})}function lo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1];return Object($.jsxs)("div",{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(Di.a,{})}),Object($.jsx)(Qr.a,{primary:r("SettingsDialog.Settings")})]}),c&&Object($.jsx)(co,{handleClose:function(){return s(!1)}})]})}var so=n(193),po=n.n(so);function jo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1],d=function(){return s(!1)};return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(po.a,{})}),Object($.jsx)(Qr.a,{primary:r("RemoveAll")})]},r("RemoveAll")),Object($.jsxs)(An.a,{open:c,onClose:d,children:[Object($.jsx)(Fn.a,{children:r("DeleteTorrents?")}),Object($.jsxs)(En.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch(v(),{method:"post",body:JSON.stringify({action:"list"}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}}).then((function(e){return e.json()})).then((function(e){e.forEach((function(e){fetch(v(),{method:"post",body:JSON.stringify({action:"rem",hash:e.hash}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}})}))})),d()},color:"secondary",autoFocus:!0,children:r("OK")})]})]})]})}var bo,uo,ho,xo,go,mo,Oo,fo,Co,vo,yo=n(194),wo=n.n(yo),So=n(465),ko=He.d.div(bo||(bo=Object(Ue.a)(["\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n"]))),Do=He.d.section(uo||(uo=Object(Ue.a)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n"]))),To=He.d.section(ho||(ho=Object(Ue.a)(["\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n"]))),Po=He.d.section(xo||(xo=Object(Ue.a)(["\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n"]))),Mo=He.d.div(go||(go=Object(Ue.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n"]))),Bo=He.d.a(mo||(mo=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isLink;return Object(He.c)(Oo||(Oo=Object(Ue.a)(["\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ","\n "])),t?Object(He.c)(fo||(fo=Object(Ue.a)(["\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n "]))):Object(He.c)(Co||(Co=Object(Ue.a)(["\n cursor: default;\n "]))))})),Ro=He.d.div(vo||(vo=Object(Ue.a)(["\n display: grid;\n margin-right: 10px;\n"])));function Lo(e){var t=e.name,n=e.link;return Object($.jsxs)(Bo,{isLink:!!n,href:n,target:"_blank",rel:"noreferrer",children:[n&&Object($.jsx)(Ro,{children:Object($.jsx)(So.a,{})}),Object($.jsx)("div",{children:t})]})}function Ao(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(""),c=Object(l.a)(o,2),s=c[0],d=c[1],p=Object(Re.a)("@media (max-width:930px)");return Object(a.useEffect)((function(){P.a.get(k()).then((function(e){var t=e.data;return d(t)}))}),[]),Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Wr.a,{button:!0,onClick:function(){return i(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(wo.a,{})}),Object($.jsx)(Qr.a,{primary:e("About")})]},"Settings"),Object($.jsx)(An.a,{open:r,onClose:function(){return i(!1)},"aria-labelledby":"form-dialog-title",fullScreen:p,maxWidth:"xl",children:Object($.jsxs)(ko,{children:[Object($.jsxs)(Do,{children:[Object($.jsx)("div",{children:e("About")}),s,Object($.jsx)("img",{src:"/apple-touch-icon.png",alt:"ts-icon"})]}),Object($.jsxs)("div",{style:{overflow:"auto"},children:[Object($.jsx)(To,{children:e("ThanksToEveryone")}),Object($.jsxs)(Po,{children:[Object($.jsx)("span",{children:e("Links")}),Object($.jsxs)("div",{children:[Object($.jsx)(Lo,{name:e("ProjectSource"),link:"https://github.com/YouROK/TorrServer"}),Object($.jsx)(Lo,{name:e("Releases"),link:"https://github.com/YouROK/TorrServer/releases"})]})]}),Object($.jsxs)(Po,{children:[Object($.jsx)("span",{children:e("SpecialThanks")}),Object($.jsxs)("div",{children:[Object($.jsx)(Lo,{name:"Daniel Shleifman",link:"https://github.com/dancheskus"}),Object($.jsx)(Lo,{name:"Matt Joiner",link:"https://github.com/anacrolix"}),Object($.jsx)(Lo,{name:"nikk",link:"https://github.com/tsynik"}),Object($.jsx)(Lo,{name:"tw1cker \u0420\u0443\u0441\u043b\u0430\u043d \u041f\u0430\u0445\u043d\u0435\u0432",link:"https://github.com/Nemiroff"}),Object($.jsx)(Lo,{name:"SpAwN_LMG",link:"https://github.com/spawnlmg"})]})]})]}),Object($.jsx)(Mo,{children:Object($.jsx)(ne.a,{onClick:function(){return i(!1)},color:"primary",variant:"contained",children:e("Close")})})]})})]})}var zo=n(466);function Fo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1],d=function(){return s(!1)};return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(zo.a,{})}),Object($.jsx)(Qr.a,{primary:r("CloseServer")})]},r("CloseServer")),Object($.jsxs)(An.a,{open:c,onClose:d,children:[Object($.jsx)(Fn.a,{children:r("CloseServer?")}),Object($.jsxs)(En.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch("".concat(C,"/shutdown")),d()},color:"secondary",autoFocus:!0,children:r("TurnOff")})]})]})]})}var Eo=function(e){var t=e.isDrawerOpen,n=e.setIsDonationDialogOpen,a=e.isOffline,r=e.isLoading,i=Object(ce.a)().t;return Object($.jsxs)(Lr,{isDrawerOpen:t,children:[Object($.jsxs)(Zr.a,{children:[Object($.jsx)(ai,{isOffline:a,isLoading:r}),Object($.jsx)(jo,{isOffline:a,isLoading:r})]}),Object($.jsx)(Xr.a,{}),Object($.jsxs)(Zr.a,{children:[Object($.jsx)(lo,{isOffline:a,isLoading:r}),Object($.jsx)(Ao,{}),Object($.jsxs)(Wr.a,{button:!0,onClick:function(){return n(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(ei.a,{})}),Object($.jsx)(Qr.a,{primary:i("Donate")})]}),Object($.jsx)(Fo,{isOffline:a,isLoading:r})]})]})},Go=Object(a.memo)(Eo),No=Object(a.createContext)();function Io(){var e,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!1),c=Object(l.a)(o,2),g=c[0],m=c[1],O=Object(a.useState)(""),f=Object(l.a)(O,2),C=f[0],v=f[1],y=function(){var e=localStorage.getItem("themeMode"),t=Object(Re.a)("(prefers-color-scheme: dark)"),n=Object(a.useState)("dark"===e||t),r=Object(l.a)(n,2),i=r[0],o=r[1],c=Object(a.useState)(e||Fe),s=Object(l.a)(c,2),d=s[0],p=s[1];Object(a.useEffect)((function(){d===Fe&&o(!1),d===Ee&&o(!0),d===Ge&&o(t)}),[t,d]);var j=i?Ee:Fe,b=Object(a.useMemo)((function(){return Object(Be.a)({typography:Ne,palette:{type:j,primary:{main:ze[j].primary},secondary:{main:ze[j].secondary}},overrides:{MuiInputBase:{input:{color:ze[j].labels}},MuiFormControlLabel:{labelPlacementStart:{display:"flex",justifyContent:"space-between",marginStart:0,marginTop:6,marginBottom:2}},MuiInputLabel:{root:{color:ze[j].labels,marginBottom:8,"&$focused":{color:ze[j].labels}}}}})}),[j]);return[i,d,function(e){p(e),localStorage.setItem("themeMode",e)},b]}(),w=Object(l.a)(y,4),S=w[0],T=w[1],B=w[2],R=w[3],L=In(),A=Object(l.a)(L,2),z=A[0],F=A[1],E=Object(a.useState)(!1),G=Object(l.a)(E,2),N=G[0],I=G[1],U=Object(ga.a)("torrents",J,{retry:1,refetchInterval:1e3,onError:function(){return I(!0)},onSuccess:function(){return I(!1)}}),H=U.data,W=U.isLoading;return Object(a.useEffect)((function(){P.a.get(k()).then((function(e){var t=e.data;return v(t)}))}),[]),Object($.jsxs)($.Fragment,{children:[Object($.jsx)($r,{}),Object($.jsx)(No.Provider,{value:{isDarkMode:S},children:Object($.jsx)(Yr.a,{theme:R,children:Object($.jsxs)(He.a,{theme:(e=S?Ee:Fe,Object(M.a)(Object(M.a)({},Ae[e]),ze[e])),children:[Object($.jsx)(s.a,{}),Object($.jsx)(D.a,{children:Object($.jsxs)(Mr,{children:[Object($.jsxs)(Rr,{children:[Object($.jsx)(p.a,{edge:"start",color:"inherit",onClick:function(){return i(!r)},style:{marginRight:"6px"},children:r?Object($.jsx)(j.a,{}):Object($.jsx)(b.a,{})}),Object($.jsxs)(d.a,{variant:"h6",noWrap:!0,children:["TorrServer ",C]}),Object($.jsxs)("div",{style:{justifySelf:"end",display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:"10px"},children:[Object($.jsx)(zr,{onClick:function(){T===Fe&&B(Ee),T===Ee&&B(Ge),T===Ge&&B(Fe)},children:T===Fe?Object($.jsx)(u.a,{}):T===Ee?Object($.jsx)(h.a,{}):Object($.jsx)(x.a,{})}),Object($.jsx)(zr,{onClick:function(){return F("en"===z?"ru":"en")},children:"en"===z?"EN":"RU"})]})]}),Object($.jsx)(Go,{isOffline:N,isLoading:W,isDrawerOpen:r,setIsDonationDialogOpen:m}),Object($.jsx)(Nr,{isOffline:N,torrents:H,isLoading:W}),Object($.jsx)(Yr.a,{theme:Ie,children:g&&Object($.jsx)(_r,{onClose:function(){return m(!1)}})}),!JSON.parse(localStorage.getItem("snackbarIsClosed"))&&Object($.jsx)(Kr,{})]})})]})})})]})}var Uo=new o.a;i.a.render(Object($.jsx)(a.StrictMode,{children:Object($.jsx)(c.a,{client:Uo,children:Object($.jsx)(Io,{})})}),document.getElementById("root"))}},[[382,1,2]]]); -//# sourceMappingURL=main.57bd6fc7.chunk.js.map \ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js.map b/server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js.map deleted file mode 100644 index 46c2ce2..0000000 --- a/server/web/pages/template/pages/static/js/main.57bd6fc7.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["utils/Hosts.js","i18n.js","utils/Utils.js","icons/index.jsx","components/DialogTorrentDetailsContent/customHooks.jsx","components/DialogTorrentDetailsContent/DialogHeader.jsx","style/colors.js","style/materialUISetup.js","components/DialogTorrentDetailsContent/TorrentCache/snakeSettings.js","components/DialogTorrentDetailsContent/TorrentCache/style.js","components/DialogTorrentDetailsContent/TorrentCache/index.jsx","components/DialogTorrentDetailsContent/TorrentCache/getShortCacheMap.js","components/DialogTorrentDetailsContent/Table/style.js","components/DialogTorrentDetailsContent/Table/index.jsx","components/DialogTorrentDetailsContent/style.js","components/DialogTorrentDetailsContent/DetailedView/style.js","components/DialogTorrentDetailsContent/StatisticsField.jsx","components/DialogTorrentDetailsContent/widgets/useGetWidgetColors.jsx","components/DialogTorrentDetailsContent/widgets/index.jsx","torrentStates.js","components/DialogTorrentDetailsContent/DetailedView/index.jsx","components/DialogTorrentDetailsContent/TorrentFunctions/style.js","components/DialogTorrentDetailsContent/TorrentFunctions/index.jsx","components/DialogTorrentDetailsContent/helpers.js","components/DialogTorrentDetailsContent/index.jsx","utils/useChangeLanguage.js","utils/usePreviousState.js","style/DialogStyles.js","components/Add/helpers.js","components/Add/style.js","components/Add/RightSideComponent.jsx","components/Add/LeftSideComponent.jsx","components/Add/AddDialog.jsx","components/TorrentCard/style.js","components/TorrentCard/index.jsx","components/App/style.js","components/TorrentList/style.js","components/TorrentList/NoServerConnection.jsx","components/TorrentList/AddFirstTorrent.jsx","components/TorrentList/index.jsx","components/Donate/DonateDialog.jsx","components/Donate/index.jsx","style/GlobalStyle.js","components/Add/index.jsx","components/Settings/style.js","components/Settings/defaultSettings.js","components/Settings/tabComponents.jsx","components/Settings/SliderInput.jsx","components/Settings/PrimarySettingsComponent.jsx","components/Settings/SecondarySettingsComponent.jsx","components/Settings/SettingsDialog.jsx","components/Settings/index.jsx","components/RemoveAll.jsx","components/About/style.js","components/About/LinkComponent.jsx","components/About/index.jsx","components/CloseServer.jsx","components/App/Sidebar.jsx","components/App/index.jsx","style/getStyledComponentsTheme.js","index.jsx"],"names":["window","location","protocol","hostname","port","torrserverHost","torrentsHost","viewedHost","settingsHost","streamHost","echoHost","i18n","use","LanguageDetector","initReactI18next","init","fallbackLng","interpolation","escapeValue","resources","en","translation","translationEN","ru","translationRU","humanizeSize","size","i","Math","floor","log","pow","toFixed","t","humanizeSpeed","speed","getPeerString","torrent","connected_seeders","active_peers","total_peers","removeRedundantCharacters","string","newString","forEach","el","leftBracketRegexFormula","leftBracketRegex","RegExp","leftBracketAmount","matchAll","length","rightBracketRegexFormula","rightBracketRegex","removeFormula","removeRegex","replace","hasThreeDotsAtTheEnd","match","trimmedString","trim","getTorrents","a","axios","post","action","data","Error","NoImageIcon","color","primary","useTheme","palette","main","height","width","fill","xmlns","xmlnsXlink","version","x","y","viewBox","enableBackground","xmlSpace","d","points","AddItemIcon","id","opacity","USBIcon","RAMIcon","TorrentIcon","secondaryColor","useUpdateCache","hash","useState","cache","setCache","componentIsMounted","useRef","timerID","useEffect","current","setInterval","updateCache","newCache","then","catch","clearInterval","useStyles","makeStyles","appBar","position","title","marginLeft","flex","DialogHeader","onClose","onBack","classes","AppBar","className","Toolbar","IconButton","edge","onClick","aria-label","ArrowBack","Typography","variant","autoFocus","style","marginRight","themeColors","light","app","headerToggleColor","appSecondaryColor","sidebarBGColor","sidebarFillColor","torrentCard","accentCardColor","buttonBGColor","rgba","cardPrimaryColor","cardSecondaryColor","dialogTorrentDetailsContent","posterBGColor","gradientStartColor","gradientEndColor","chacheSectionBGColor","widgetFontColor","titleFontColor","subNameFontColor","torrentFilesSectionBGColor","detailedView","cacheSectionBGColor","addDialog","fontColor","notificationErrorBGColor","notificationSuccessBGColor","languageSwitchBGColor","languageSwitchFontColor","torrentFunctions","table","defaultPrimaryColor","defaultSecondaryColor","defaultTertiaryColor","settingsDialog","contentBG","footerBG","dark","mainColors","secondary","labels","THEME_MODES","typography","fontFamily","lightTheme","createMuiTheme","type","snakeSettings","default","borderWidth","pieceSize","gapBetweenPieces","borderColor","completeColor","backgroundColor","progressColor","readerColor","rangeColor","mini","cacheMaxHeight","ScrollNotification","styled","div","SnakeWrapper","isMini","themeType","css","TorrentCache","shotCacheMap","useTranslation","dimensions","setDimensions","canvasRef","ctxRef","cacheMap","setCacheMap","PiecesCount","Pieces","Readers","map","Size","Length","newPiece","percentage","r","Reader","isReader","Start","End","isReaderRange","push","useCreateCacheMap","settingsTarget","theme","useContext","DarkModeContext","isDarkMode","canvasWidth","pieceSizeWithGap","piecesInOneRow","preloadPiecesAmount","cacheMapWithoutEmptyBlocks","filter","getFullAmountOfBlocks","amountOfBlocks","amountOfBlocksToRenderInShortView","scalableAmountOfBlocksToRenderInShortView","extraBlocksAmount","max","extraEmptyBlocksForFillingLine","Array","getShortCacheMap","round","Capacity","PiecesLength","source","startingXPoint","ceil","canvas","getContext","ctx","clearRect","inProgress","isCompleted","currentRow","currentColumn","fixBlurStroke","requiredFix","lineWidth","fillStyle","snakeType","gradient","createLinearGradient","addColorStop","createGradient","strokeStyle","translate","fillRect","strokeRect","setTransform","bounds","onResize","measureRef","display","flexDirection","ref","memo","prev","next","isEqual","viewedPrimaryColor","viewedIndicator","TableStyle","ShortTableWrapper","ShortTable","isViewed","require","ptt","addHandler","Table","playableFileList","viewedFileList","selectedSeason","seasonAmount","preloadBuffer","fileId","fetch","getFileLink","path","encodeURIComponent","split","pop","fileHasEpisodeText","find","parse","episode","fileHasSeasonText","season","fileHasResolutionText","resolution","shouldDisplayFullFileName","includes","link","data-label","Button","textDecoration","href","target","rel","text","DialogContentGrid","Poster","poster","MainSection","section","CacheSection","TorrentFilesSection","SectionSubName","mb","SectionTitle","SectionHeader","WidgetWrapper","WidgetFieldWrapper","WidgetFieldTitle","WidgetFieldIcon","bgColor","WidgetFieldValue","LoadingProgress","attrs","value","fullAmount","min","background","label","Divider","DetailedViewWidgetSection","DetailedViewCacheSection","StatisticsField","Icon","icon","iconBg","valueBg","LIGHT","DARK","colors","downloadSpeed","iconBGColor","valueBGColor","uploadSpeed","peers","piecesCount","piecesLength","status","useGetWidgetColors","widgetName","DownlodSpeedWidget","ArrowDownwardIcon","UploadSpeedWidget","ArrowUpwardIcon","PeersWidget","SwapVerticalCircleIcon","PiecesCountWidget","WidgetsIcon","PiecesLengthWidget","PhotoSizeSelectSmallIcon","StatusWidget","stat","values","BuildIcon","SizeWidget","ViewAgendaIcon","DetailedView","torrentSize","MainSectionButtonGroup","SmallLabel","TorrentFunctions","name","setViewedFileList","latestViewedFileId","latestViewedFile","isOnlyOnePlayableFile","latestViewedFileData","fullPlaylistLink","partialPlaylistLink","file_index","playableExtList","Loader","minHeight","placeItems","CircularProgress","DialogTorrentDetailsContent","closeDialog","isLoading","setIsLoading","isDetailedCacheView","setIsDetailedCacheView","setPlayableFileList","setSeasonAmount","setSelectedSeason","download_speed","upload_speed","torrent_size","torrentFileList","file_stats","settings","setSettings","useGetSettings","Filled","seasons","currentSeason","sort","b","fileName","filename","ext","toLowerCase","getExt","cacheLoaded","Object","entries","torrentLoaded","lst","itm","preloadSize","PreloadCache","bufferSize","getParsedTitle","newNameStringArr","torrentParsedName","year","newNameString","join","overflow","alt","src","marginTop","ButtonGroup","marginBottom","language","lang","changeLanguage","usePreviousState","Header","ButtonWrapper","getMoviePosters","movieName","url","get","params","api_key","process","include_image_language","query","results","poster_path","checkImageURL","magnetRegex","hashRegex","torrentRegex","linkRegex","Content","isEditMode","RightSide","RightSideContainer","isHidden","notificationMessage","isError","LeftSide","LeftSideBottomSectionBasicStyles","LeftSideBottomSectionNoFile","isDragActive","LeftSideBottomSectionFileSelected","TorrentIconWrapper","CancelIconWrapper","IconWrapper","LeftSideTopSection","active","PosterWrapper","PosterSuggestions","PosterSuggestionsItem","ClearPosterButton","showbutton","PosterLanguageSwitch","RightSideComponent","setTitle","setPosterUrl","setIsPosterUrlCorrect","setIsUserInteractedWithPoster","setPosterList","isTorrentSourceCorrect","isHashAlreadyExists","parsedTitle","posterUrl","isPosterUrlCorrect","posterList","currentLang","posterSearchLanguage","setPosterSearchLanguage","posterSearch","removePoster","torrentSource","originalTorrentTitle","updateTitleFromSource","isCustomTitleEnabled","setIsCustomTitleEnabled","handleTitleChange","TextField","margin","fullWidth","disabled","InputProps","readOnly","onChange","onFocus","onBlur","helperText","endAdornment","InputAdornment","padding","HighlightOff","slice","userChangesPosterUrl","newLanguage","shouldRefreshMainPoster","LeftSideComponent","setSelectedFile","setTorrentSource","selectedFile","isTorrentSourceActive","setIsTorrentSourceActive","useDropzone","onDrop","files","file","accept","getRootProps","getInputProps","inputProps","autoComplete","Cancel","AddDialog","handleClose","originalHash","originalTitle","originalName","originalPoster","setOriginalTorrentTitle","setParsedTitle","setIsTorrentSourceCorrect","setIsHashAlreadyExists","isUserInteractedWithPoster","useChangeLanguage","isSaving","setIsSaving","skipDebounce","setSkipDebounce","currentSourceHash","setCurrentSourceHash","torrents","useQuery","retry","refetchInterval","parseTorrent","remote","_","infoHash","allHashes","fullScreen","useMediaQuery","useCallback","parsingSource","callback","err","torrentName","nameOfFileInsideTorrent","newTitle","correctImage","useMemo","urlList","firstPoster","delayedPosterSearch","debounce","prevTorrentSourceState","prevTitleState","cancel","Dialog","open","maxWidth","minWidth","finally","FormData","append","save_to_db","TorrentCard","TorrentCardPoster","isPoster","TorrentCardButtons","TorrentCardDescription","StyledButton","button","Transition","forwardRef","props","Slide","direction","Torrent","isDetailedInfoOpened","setIsDetailedInfoOpened","isDeleteTorrentOpened","setIsDeleteTorrentOpened","breakpoints","down","closeDetailedInfo","closeDeleteTorrentAlert","key","titleStrings","parsedYear","parsedResolution","isEditDialogOpen","setIsEditDialogOpen","UnfoldMore","Edit","Close","Delete","TransitionComponent","DialogTitle","DialogActions","AppWrapper","CenteredGrid","AppHeader","AppSidebarStyle","isDrawerOpen","TorrentListWrapper","HeaderToggle","isButton","NoServerConnection","trigger","stroke","scale","AddFirstTorrent","isDialogOpen","setIsDialogOpen","TorrentList","isOffline","DonateDialog","aria-labelledby","DialogContent","List","ListItem","dangerouslySetInnerHTML","__html","DonateSnackbar","setOpen","snackbarOpen","setSnackbarOpen","disableSnackbar","localStorage","setItem","Snackbar","anchorOrigin","vertical","horizontal","message","fontSize","createGlobalStyle","AddDialogButton","ListItemIcon","ListItemText","cacheBeforeReaderColor","cacheAfterReaderColor","SettingsHeader","FooterSection","PreloadCacheValue","MainSettingsContent","SecondarySettingsContent","StorageButton","small","selected","StorageIconWrapper","CacheStorageSelector","SettingSectionLabel","PreloadCachePercentage","preloadCachePercentage","CacheSize","ReaderReadAHead","UseDisk","UploadRateLimit","TorrentsSavePath","ConnectionsLimit","DisableDHT","DisablePEX","DisableTCP","DisableUPNP","DisableUTP","DisableUpload","DownloadRateLimit","EnableDebug","EnableIPv6","ForceEncrypt","PeersListenPort","RemoveCacheOnDrop","RetrackersMode","TorrentDisconnectTimeout","a11yProps","index","TabPanel","children","other","role","hidden","SliderInput","isProMode","setValue","sliderMin","sliderMax","inputMin","inputMax","step","onBlurCallback","Grid","container","spacing","alignItems","item","xs","Slider","newValue","OutlinedInput","Number","CacheStorageLocationLabel","PrimarySettingsComponent","inputForm","cachePercentage","cacheSize","setCacheSize","setCachePercentage","setPreloadCachePercentage","updateSettings","preloadCacheSize","gridAutoFlow","FormControlLabel","control","Switch","checked","labelPlacement","placeSelf","gridArea","SecondarySettingsComponent","InputLabel","htmlFor","Select","native","SettingsDialog","selectedTab","setSelectedTab","JSON","getItem","setIsProMode","sets","stringify","Boolean","isNaN","newProps","Checkbox","Tabs","indicatorColor","textColor","Tab","axis","onChangeIndex","dir","defaultSettings","SettingsDialogButton","RemoveAll","method","body","headers","Accept","res","json","torr","DialogWrapper","HeaderSection","ThanksSection","Section","LinkWrapper","isLink","LinkIcon","LinkComponent","GitHub","AboutDialog","torrServerVersion","setTorrServerVersion","CloseServer","PowerSettingsNew","Sidebar","setIsDonationDialogOpen","createContext","App","setIsDrawerOpen","isDonationDialogOpen","savedThemeMode","isSystemModeDark","setIsDarkMode","currentThemeMode","setCurrentThemeMode","muiTheme","overrides","MuiInputBase","input","MuiFormControlLabel","labelPlacementStart","justifyContent","marginStart","MuiInputLabel","root","mode","useMaterialUITheme","updateThemeMode","changeLang","setIsOffline","onError","onSuccess","GlobalStyle","Provider","CssBaseline","Menu","noWrap","justifySelf","gridTemplateColumns","gap","Brightness5","Brightness4","BrightnessAuto","queryClient","QueryClient","ReactDOM","render","QueryClientProvider","client","document","getElementById"],"mappings":"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","file":"static/js/main.57bd6fc7.chunk.js","sourcesContent":["const { protocol, hostname, port } = window.location\n\nlet torrserverHost = process.env.REACT_APP_SERVER_HOST || `${protocol}//${hostname}${port ? `:${port}` : ''}`\n\nexport const torrentsHost = () => `${torrserverHost}/torrents`\nexport const viewedHost = () => `${torrserverHost}/viewed`\nexport const cacheHost = () => `${torrserverHost}/cache`\nexport const torrentUploadHost = () => `${torrserverHost}/torrent/upload`\nexport const settingsHost = () => `${torrserverHost}/settings`\nexport const streamHost = () => `${torrserverHost}/stream`\nexport const shutdownHost = () => `${torrserverHost}/shutdown`\nexport const echoHost = () => `${torrserverHost}/echo`\nexport const playlistTorrHost = () => `${torrserverHost}/stream`\n\nexport const getTorrServerHost = () => torrserverHost\nexport const setTorrServerHost = host => {\n torrserverHost = host\n}\n","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport translationEN from 'locales/en/translation.json'\nimport translationRU from 'locales/ru/translation.json'\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en', // default language will be used if none of declared lanuages detected (en, ru)\n interpolation: { escapeValue: false }, // react already safes from xss\n resources: { en: { translation: translationEN }, ru: { translation: translationRU } },\n })\n\nexport default i18n\n","import axios from 'axios'\n\nimport i18n from '../i18n'\nimport { torrentsHost } from './Hosts'\n\nexport function humanizeSize(size) {\n if (!size) return ''\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / Math.pow(1024, i)).toFixed(2) * 1} ${\n [i18n.t('B'), i18n.t('KB'), i18n.t('MB'), i18n.t('GB'), i18n.t('TB')][i]\n }`\n}\n\nexport function humanizeSpeed(speed) {\n if (!speed) return ''\n const i = Math.floor(Math.log(speed * 8) / Math.log(1000))\n return `${((speed * 8) / Math.pow(1000, i)).toFixed(0) * 1} ${\n [i18n.t('bps'), i18n.t('kbps'), i18n.t('Mbps'), i18n.t('Gbps'), i18n.t('Tbps')][i]\n }`\n}\n\nexport function getPeerString(torrent) {\n if (!torrent || !torrent.connected_seeders) return null\n return `${torrent.connected_seeders} · ${torrent.active_peers} / ${torrent.total_peers}`\n}\n\nexport const shortenText = (text, sympolAmount) =>\n text ? text.slice(0, sympolAmount) + (text.length > sympolAmount ? '…' : '') : ''\n\nexport const removeRedundantCharacters = string => {\n let newString = string\n const brackets = [\n ['(', ')'],\n ['[', ']'],\n ['{', '}'],\n ]\n\n brackets.forEach(el => {\n const leftBracketRegexFormula = `\\\\${el[0]}`\n const leftBracketRegex = new RegExp(leftBracketRegexFormula, 'g')\n const leftBracketAmount = [...newString.matchAll(leftBracketRegex)].length\n const rightBracketRegexFormula = `\\\\${el[1]}`\n const rightBracketRegex = new RegExp(rightBracketRegexFormula, 'g')\n const rightBracketAmount = [...newString.matchAll(rightBracketRegex)].length\n\n if (leftBracketAmount !== rightBracketAmount) {\n const removeFormula = `(\\\\${el[0]})(?!.*\\\\1).*`\n const removeRegex = new RegExp(removeFormula, 'g')\n newString = newString.replace(removeRegex, '')\n }\n })\n\n const hasThreeDotsAtTheEnd = !!newString.match(/\\.{3}$/g)\n\n const trimmedString = newString.replace(/[\\\\.| ]+$/g, '').trim()\n\n return hasThreeDotsAtTheEnd ? `${trimmedString}..` : trimmedString\n}\n\nexport const getTorrents = async () => {\n try {\n const { data } = await axios.post(torrentsHost(), { action: 'list' })\n return data\n } catch (error) {\n throw new Error(null)\n }\n}\n","import { useTheme } from '@material-ui/core'\n\nexport const NoImageIcon = ({ color }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport const AddItemIcon = () => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const USBIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const RAMIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport const TorrentIcon = () => {\n const primary = useTheme().palette.primary.main\n const secondaryColor = primary === '#00a572' ? '#74c39c' : '#4a5255'\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { cacheHost, settingsHost } from 'utils/Hosts'\nimport axios from 'axios'\n\nexport const useUpdateCache = hash => {\n const [cache, setCache] = useState({})\n const componentIsMounted = useRef(true)\n const timerID = useRef(null)\n\n useEffect(\n () => () => {\n // this function is required to notify \"updateCache\" when NOT to make state update\n componentIsMounted.current = false\n },\n [],\n )\n\n useEffect(() => {\n if (hash) {\n timerID.current = setInterval(() => {\n const updateCache = newCache => componentIsMounted.current && setCache(newCache)\n\n axios\n .post(cacheHost(), { action: 'get', hash })\n .then(({ data }) => updateCache(data))\n // empty cache if error\n .catch(() => updateCache({}))\n }, 100)\n } else clearInterval(timerID.current)\n\n return () => clearInterval(timerID.current)\n }, [hash])\n\n return cache\n}\n\nexport const useCreateCacheMap = cache => {\n const [cacheMap, setCacheMap] = useState([])\n\n useEffect(() => {\n const { PiecesCount, Pieces, Readers } = cache\n\n const map = []\n\n for (let i = 0; i < PiecesCount; i++) {\n const { Size, Length } = Pieces[i] || {}\n\n const newPiece = { id: i, percentage: (Size / Length) * 100 || 0 }\n\n Readers.forEach(r => {\n if (i === r.Reader) newPiece.isReader = true\n if (i >= r.Start && i <= r.End) newPiece.isReaderRange = true\n })\n\n map.push(newPiece)\n }\n setCacheMap(map)\n }, [cache])\n\n return cacheMap\n}\n\nexport const useGetSettings = cache => {\n const [settings, setSettings] = useState()\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => setSettings(data))\n }, [cache])\n\n return settings\n}\n","import { AppBar, IconButton, makeStyles, Toolbar, Typography } from '@material-ui/core'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { ArrowBack } from '@material-ui/icons'\n\nconst useStyles = makeStyles({\n appBar: { position: 'relative' },\n title: { marginLeft: '5px', flex: 1 },\n})\n\nexport default function DialogHeader({ title, onClose, onBack }) {\n const classes = useStyles()\n\n return (\n \n \n {onBack && (\n \n \n \n )}\n\n \n {title}\n \n\n \n \n \n \n \n )\n}\n","import { rgba } from 'polished'\n\nexport const themeColors = {\n light: {\n app: {\n headerToggleColor: '#4db380',\n appSecondaryColor: '#cbe8d9',\n sidebarBGColor: '#575757',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#337a57',\n buttonBGColor: rgba('#337a57', 0.5),\n cardPrimaryColor: '#00a572',\n cardSecondaryColor: '#74c39c',\n },\n dialogTorrentDetailsContent: {\n posterBGColor: '#74c39c',\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n chacheSectionBGColor: '#88cdaa',\n widgetFontColor: '#fff',\n titleFontColor: '#000',\n subNameFontColor: '#7c7b7c',\n torrentFilesSectionBGColor: '#f1eff3',\n },\n detailedView: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n cacheSectionBGColor: '#fff',\n },\n addDialog: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n fontColor: '#000',\n notificationErrorBGColor: '#cda184',\n notificationSuccessBGColor: '#88cdaa',\n languageSwitchBGColor: '#74c39c',\n languageSwitchFontColor: '#e4f6ed',\n posterBGColor: '#74c39c',\n },\n torrentFunctions: {\n fontColor: '#000',\n },\n table: {\n defaultPrimaryColor: '#009879',\n defaultSecondaryColor: '#00a383',\n defaultTertiaryColor: '#03aa89',\n },\n settingsDialog: {\n contentBG: '#f1eff3',\n footerBG: '#fff',\n },\n },\n dark: {\n app: {\n headerToggleColor: '#545a5e',\n appSecondaryColor: '#545a5e',\n sidebarBGColor: '#323637',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#323637',\n buttonBGColor: rgba('#323637', 0.5),\n cardPrimaryColor: '#545a5e',\n cardSecondaryColor: rgba('#dee3e5', 0.4),\n },\n dialogTorrentDetailsContent: {\n posterBGColor: rgba('#dee3e5', 0.4),\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n chacheSectionBGColor: '#3c4244',\n widgetFontColor: rgba('#fff', 0.8),\n titleFontColor: '#f1eff3',\n subNameFontColor: '#dee3e5',\n torrentFilesSectionBGColor: rgba('#545a5e', 0.9),\n },\n detailedView: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n cacheSectionBGColor: '#dee3e5',\n },\n addDialog: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n fontColor: '#fff',\n notificationErrorBGColor: '#c82e3f',\n notificationSuccessBGColor: '#323637',\n languageSwitchBGColor: '#545a5e',\n languageSwitchFontColor: '#dee3e5',\n posterBGColor: '#dee3e5',\n },\n torrentFunctions: {\n fontColor: '#f1eff3',\n },\n table: {\n defaultPrimaryColor: '#323637',\n defaultSecondaryColor: rgba('#545a5e', 0.9),\n defaultTertiaryColor: '#545a5e',\n },\n settingsDialog: {\n contentBG: '#5a6166',\n footerBG: '#323637',\n },\n },\n}\n\nexport const mainColors = {\n light: {\n primary: '#00a572',\n secondary: '#00a572',\n labels: rgba('#000', 0.9),\n },\n dark: {\n primary: '#323637',\n secondary: '#dee3e5',\n labels: rgba('#fff', 0.9),\n },\n}\n","import { createMuiTheme, useMediaQuery } from '@material-ui/core'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { mainColors } from './colors'\n\nexport const THEME_MODES = { LIGHT: 'light', DARK: 'dark', AUTO: 'auto' }\n\nconst typography = { fontFamily: 'Open Sans, sans-serif' }\n\nexport const darkTheme = createMuiTheme({\n typography,\n palette: {\n type: THEME_MODES.DARK,\n primary: { main: mainColors.dark.primary },\n secondary: { main: mainColors.dark.secondary },\n },\n})\nexport const lightTheme = createMuiTheme({\n typography,\n palette: {\n type: THEME_MODES.LIGHT,\n primary: { main: mainColors.light.primary },\n secondary: { main: mainColors.light.secondary },\n },\n})\n\nexport const useMaterialUITheme = () => {\n const savedThemeMode = localStorage.getItem('themeMode')\n const isSystemModeDark = useMediaQuery('(prefers-color-scheme: dark)')\n const [isDarkMode, setIsDarkMode] = useState(savedThemeMode === 'dark' || isSystemModeDark)\n const [currentThemeMode, setCurrentThemeMode] = useState(savedThemeMode || THEME_MODES.LIGHT)\n\n const updateThemeMode = mode => {\n setCurrentThemeMode(mode)\n localStorage.setItem('themeMode', mode)\n }\n\n useEffect(() => {\n currentThemeMode === THEME_MODES.LIGHT && setIsDarkMode(false)\n currentThemeMode === THEME_MODES.DARK && setIsDarkMode(true)\n currentThemeMode === THEME_MODES.AUTO && setIsDarkMode(isSystemModeDark)\n }, [isSystemModeDark, currentThemeMode])\n\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const muiTheme = useMemo(\n () =>\n createMuiTheme({\n typography,\n palette: {\n type: theme,\n primary: { main: mainColors[theme].primary },\n secondary: { main: mainColors[theme].secondary },\n },\n overrides: {\n MuiInputBase: {\n input: {\n color: mainColors[theme].labels,\n },\n },\n // https://material-ui.com/ru/api/form-control-label/\n MuiFormControlLabel: {\n labelPlacementStart: {\n display: 'flex',\n justifyContent: 'space-between',\n marginStart: 0,\n marginTop: 6,\n marginBottom: 2,\n },\n },\n MuiInputLabel: {\n root: {\n color: mainColors[theme].labels,\n marginBottom: 8,\n '&$focused': {\n color: mainColors[theme].labels,\n },\n },\n },\n },\n }),\n [theme],\n )\n\n return [isDarkMode, currentThemeMode, updateThemeMode, muiTheme]\n}\n","import { rgba } from 'polished'\nimport { mainColors } from 'style/colors'\n\nexport const snakeSettings = {\n dark: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: rgba('#949ca0', 0.25),\n completeColor: rgba(mainColors.dark.primary, 0.5),\n backgroundColor: '#f1eff3',\n progressColor: mainColors.dark.secondary,\n readerColor: '#8f0405',\n rangeColor: '#cda184',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#5c6469',\n completeColor: '#5c6469',\n backgroundColor: '#949ca0',\n progressColor: '#949ca0',\n readerColor: '#ccc',\n rangeColor: '#cda184',\n },\n },\n light: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: '#dbf2e8',\n completeColor: mainColors.light.primary,\n backgroundColor: '#fff',\n progressColor: '#b3dfc9',\n readerColor: '#000',\n rangeColor: '#afa6e3',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#4db380',\n completeColor: '#4db380',\n backgroundColor: '#dbf2e8',\n progressColor: '#dbf2e8',\n readerColor: '#fff',\n rangeColor: '#afa6e3',\n },\n },\n}\n\nexport const createGradient = (ctx, percentage, theme, snakeType) => {\n const { pieceSize, completeColor, progressColor } = snakeSettings[theme][snakeType]\n\n const gradient = ctx.createLinearGradient(0, pieceSize, 0, 0)\n gradient.addColorStop(0, completeColor)\n gradient.addColorStop(percentage / 100, completeColor)\n gradient.addColorStop(percentage / 100, progressColor)\n gradient.addColorStop(1, progressColor)\n\n return gradient\n}\n","import styled, { css } from 'styled-components'\n\nimport { snakeSettings } from './snakeSettings'\n\nexport const ScrollNotification = styled.div`\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n`\n\nexport const SnakeWrapper = styled.div`\n ${({ isMini, themeType }) => css`\n ${isMini &&\n css`\n display: grid;\n justify-content: center;\n max-height: ${snakeSettings[themeType].mini.cacheMaxHeight}px;\n overflow: auto;\n `}\n\n canvas {\n display: block;\n }\n `}\n`\n","import Measure from 'react-measure'\nimport { useState, memo, useRef, useEffect, useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport isEqual from 'lodash/isEqual'\nimport { DarkModeContext } from 'components/App'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nimport { useCreateCacheMap } from '../customHooks'\nimport getShortCacheMap from './getShortCacheMap'\nimport { SnakeWrapper, ScrollNotification } from './style'\nimport { createGradient, snakeSettings } from './snakeSettings'\n\nconst TorrentCache = ({ cache, isMini }) => {\n const { t } = useTranslation()\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n const { width } = dimensions\n const canvasRef = useRef(null)\n const ctxRef = useRef(null)\n const cacheMap = useCreateCacheMap(cache)\n const settingsTarget = isMini ? 'mini' : 'default'\n const { isDarkMode } = useContext(DarkModeContext)\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const {\n readerColor,\n rangeColor,\n borderWidth,\n pieceSize,\n gapBetweenPieces,\n backgroundColor,\n borderColor,\n cacheMaxHeight,\n completeColor,\n } = snakeSettings[theme][settingsTarget]\n\n const canvasWidth = isMini ? width * 0.93 : width\n\n const pieceSizeWithGap = pieceSize + gapBetweenPieces\n const piecesInOneRow = Math.floor(canvasWidth / pieceSizeWithGap)\n\n let shotCacheMap\n if (isMini) {\n const preloadPiecesAmount = Math.round(cache.Capacity / cache.PiecesLength - 1)\n shotCacheMap = getShortCacheMap({ cacheMap, preloadPiecesAmount, piecesInOneRow })\n }\n const source = isMini ? shotCacheMap : cacheMap\n const startingXPoint = Math.ceil((canvasWidth - pieceSizeWithGap * piecesInOneRow) / 2) // needed to center grid\n const height = Math.ceil(source.length / piecesInOneRow) * pieceSizeWithGap\n\n useEffect(() => {\n if (!canvasWidth || !height) return\n\n const canvas = canvasRef.current\n canvas.width = canvasWidth\n canvas.height = height\n ctxRef.current = canvas.getContext('2d')\n }, [canvasRef, height, canvasWidth])\n\n useEffect(() => {\n const ctx = ctxRef.current\n if (!ctx) return\n\n ctx.clearRect(0, 0, canvasWidth, height)\n\n source.forEach(({ percentage, isReader, isReaderRange }, i) => {\n const inProgress = percentage > 0 && percentage < 100\n const isCompleted = percentage === 100\n const currentRow = i % piecesInOneRow\n const currentColumn = Math.floor(i / piecesInOneRow)\n const fixBlurStroke = borderWidth % 2 === 0 ? 0 : 0.5\n const requiredFix = Math.ceil(borderWidth / 2) + 1 + fixBlurStroke\n const x = currentRow * pieceSize + currentRow * gapBetweenPieces + startingXPoint + requiredFix\n const y = currentColumn * pieceSize + currentColumn * gapBetweenPieces + requiredFix\n\n ctx.lineWidth = borderWidth\n ctx.fillStyle = inProgress\n ? createGradient(ctx, percentage, theme, settingsTarget)\n : isCompleted\n ? completeColor\n : backgroundColor\n ctx.strokeStyle = isReader\n ? readerColor\n : inProgress || isCompleted\n ? completeColor\n : isReaderRange\n ? rangeColor\n : borderColor\n\n ctx.translate(x, y)\n ctx.fillRect(0, 0, pieceSize, pieceSize)\n ctx.strokeRect(0, 0, pieceSize, pieceSize)\n ctx.setTransform(1, 0, 0, 1, 0, 0)\n })\n }, [\n cacheMap,\n height,\n canvasWidth,\n piecesInOneRow,\n startingXPoint,\n pieceSize,\n gapBetweenPieces,\n source,\n backgroundColor,\n borderColor,\n borderWidth,\n settingsTarget,\n completeColor,\n readerColor,\n rangeColor,\n theme,\n ])\n\n return (\n setDimensions(bounds)}>\n {({ measureRef }) => (\n
\n \n \n \n\n {isMini && height >= cacheMaxHeight && {t('ScrollDown')}}\n
\n )}\n
\n )\n}\n\nexport default memo(\n TorrentCache,\n (prev, next) => isEqual(prev.cache.Pieces, next.cache.Pieces) && isEqual(prev.cache.Readers, next.cache.Readers),\n)\n","export default ({ cacheMap, preloadPiecesAmount, piecesInOneRow }) => {\n const cacheMapWithoutEmptyBlocks = cacheMap.filter(({ percentage }) => percentage > 0)\n\n const getFullAmountOfBlocks = amountOfBlocks =>\n // this function counts existed amount of blocks with extra \"empty blocks\" to fill the row till the end\n amountOfBlocks % piecesInOneRow === 0\n ? amountOfBlocks - 1\n : amountOfBlocks + piecesInOneRow - (amountOfBlocks % piecesInOneRow) - 1 || 0\n\n const amountOfBlocksToRenderInShortView = getFullAmountOfBlocks(preloadPiecesAmount)\n // preloadPiecesAmount is counted from \"cache.Capacity / cache.PiecesLength\". We always show at least this amount of blocks\n const scalableAmountOfBlocksToRenderInShortView = getFullAmountOfBlocks(cacheMapWithoutEmptyBlocks.length)\n // cacheMap can become bigger than preloadPiecesAmount counted before. In that case we count blocks dynamically\n\n const finalAmountOfBlocksToRenderInShortView = Math.max(\n // this check is needed to decide which is the biggest amount of blocks and take it to render\n scalableAmountOfBlocksToRenderInShortView,\n amountOfBlocksToRenderInShortView,\n )\n\n const extraBlocksAmount = finalAmountOfBlocksToRenderInShortView - cacheMapWithoutEmptyBlocks.length + 1\n // amount of blocks needed to fill the line till the end\n\n const extraEmptyBlocksForFillingLine = extraBlocksAmount ? new Array(extraBlocksAmount).fill({}) : []\n\n return [...cacheMapWithoutEmptyBlocks, ...extraEmptyBlocksForFillingLine]\n}\n","import styled, { css } from 'styled-components'\n\nconst viewedPrimaryColor = '#bdbdbd'\nconst viewedSecondaryColor = '#c4c4c4'\nconst viewedTertiaryColor = '#c9c9c9'\nconst bigTableDividerColor = '#ddd'\nconst bigTableDefaultRowColor = '#fff'\nconst bigTableViewedRowColor = '#f3f3f3'\n\nconst viewedIndicator = css`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ${defaultPrimaryColor};\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n `}\n`\nexport const TableStyle = styled.table`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ${defaultPrimaryColor};\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ${bigTableDividerColor};\n background: ${bigTableDefaultRowColor};\n\n :last-of-type {\n border-bottom: 2px solid ${defaultPrimaryColor};\n }\n\n &.viewed-file-row {\n background: ${bigTableViewedRowColor};\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ${viewedIndicator}\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n `}\n`\n\nexport const ShortTableWrapper = styled.div`\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n`\n\nexport const ShortTable = styled.div`\n ${({\n isViewed,\n theme: {\n table: { defaultPrimaryColor, defaultSecondaryColor, defaultTertiaryColor },\n },\n }) => css`\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ${isViewed ? 'max-content' : '1fr'};\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n }\n\n &-name {\n background: ${isViewed ? viewedSecondaryColor : defaultSecondaryColor};\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ${isViewed ? viewedTertiaryColor : defaultTertiaryColor};\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ${isViewed && viewedIndicator}\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #fff;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n `}\n`\n","import { streamHost } from 'utils/Hosts'\nimport isEqual from 'lodash/isEqual'\nimport { humanizeSize } from 'utils/Utils'\nimport ptt from 'parse-torrent-title'\nimport { Button } from '@material-ui/core'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport { useTranslation } from 'react-i18next'\n\nimport { TableStyle, ShortTableWrapper, ShortTable } from './style'\n\nconst { memo } = require('react')\n\n// russian episode detection support\nptt.addHandler('episode', /(\\d{1,4})[- |. ]серия|серия[- |. ](\\d{1,4})/i, { type: 'integer' })\nptt.addHandler('season', /sezon[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]sezon/i, { type: 'integer' })\nptt.addHandler('season', /сезон[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]сезон/i, { type: 'integer' })\n\nconst Table = memo(\n ({ playableFileList, viewedFileList, selectedSeason, seasonAmount, hash }) => {\n const { t } = useTranslation()\n const preloadBuffer = fileId => fetch(`${streamHost()}?link=${hash}&index=${fileId}&preload`)\n const getFileLink = (path, id) =>\n `${streamHost()}/${encodeURIComponent(path.split('\\\\').pop().split('/').pop())}?link=${hash}&index=${id}&play`\n const fileHasEpisodeText = !!playableFileList?.find(({ path }) => ptt.parse(path).episode)\n const fileHasSeasonText = !!playableFileList?.find(({ path }) => ptt.parse(path).season)\n const fileHasResolutionText = !!playableFileList?.find(({ path }) => ptt.parse(path).resolution)\n\n // if files in list is more then 1 and no season text detected by ptt.parse, show full name\n const shouldDisplayFullFileName = playableFileList.length > 1 && !fileHasEpisodeText\n\n return !playableFileList?.length ? (\n 'No playable files in this torrent'\n ) : (\n <>\n \n \n \n {t('Viewed')}\n {t('Name')}\n {fileHasSeasonText && seasonAmount?.length === 1 && {t('Season')}}\n {fileHasEpisodeText && {t('Episode')}}\n {fileHasResolutionText && {t('Resolution')}}\n {t('Size')}\n {t('Actions')}\n \n \n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n \n {shouldDisplayFullFileName ? path : title}\n {fileHasSeasonText && seasonAmount?.length === 1 && {season}}\n {fileHasEpisodeText && {episode}}\n {fileHasResolutionText && {resolution}}\n {humanizeSize(length)}\n \n
\n \n\n \n \n \n\n \n \n \n
\n \n \n )\n )\n })}\n \n
\n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n
{shouldDisplayFullFileName ? path : title}
\n
\n {isViewed && (\n
\n
{t('Viewed')}
\n
\n
\n
\n
\n )}\n {fileHasSeasonText && seasonAmount?.length === 1 && (\n
\n
{t('Season')}
\n
{season}
\n
\n )}\n {fileHasEpisodeText && (\n
\n
{t('Episode')}
\n
{episode}
\n
\n )}\n {fileHasResolutionText && (\n
\n
{t('Resolution')}
\n
{resolution}
\n
\n )}\n
\n
{t('Size')}
\n
{humanizeSize(length)}
\n
\n
\n
\n \n\n \n \n \n\n \n \n \n
\n \n )\n )\n })}\n \n \n )\n },\n (prev, next) => isEqual(prev, next),\n)\n\nexport default Table\n","import { rgba } from 'polished'\nimport styled, { css } from 'styled-components'\n\nexport const DialogContentGrid = styled.div`\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n`\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n dialogTorrentDetailsContent: { posterBGColor },\n },\n }) => css`\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ${poster\n ? css`\n img {\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n width: 300px;\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n `}\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ${poster\n ? css`\n height: 200px;\n `\n : css`\n display: none;\n `}\n }\n `}\n`\nexport const MainSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const CacheSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { chacheSectionBGColor },\n },\n }) => css`\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ${chacheSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const TorrentFilesSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { torrentFilesSectionBGColor },\n },\n }) => css`\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${torrentFilesSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const SectionSubName = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { subNameFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-top: ${mb / 3}px`};\n ${mb && `margin-bottom: ${mb}px`};\n line-height: 1.2;\n color: ${subNameFontColor};\n\n @media (max-width: 800px) {\n ${mb && `margin-top: ${mb / 4}px`};\n ${mb && `margin-bottom: ${mb / 2}px`};\n font-size: 14px;\n }\n `}\n `}\n`\n\nexport const SectionTitle = styled.div`\n ${({\n color,\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ${color || titleFontColor};\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ${mb && `margin-bottom: ${mb / 2}px`};\n }\n `}\n `}\n`\n\nexport const SectionHeader = styled.div`\n margin-bottom: 20px;\n`\n\nexport const WidgetWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ${({ detailedView }) =>\n detailedView\n ? css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n `\n : css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n `}\n`\n\nexport const WidgetFieldWrapper = styled.div`\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n`\nexport const WidgetFieldTitle = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ${titleFontColor};\n `}\n`\n\nexport const WidgetFieldIcon = styled.div`\n ${({ bgColor }) => css`\n grid-area: icon;\n color: ${rgba('#fff', 0.8)};\n background: ${bgColor};\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n `}\n`\nexport const WidgetFieldValue = styled.div`\n ${({\n bgColor,\n theme: {\n dialogTorrentDetailsContent: { widgetFontColor },\n },\n }) => css`\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ${widgetFontColor};\n background: ${bgColor};\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n `}\n`\n\nexport const LoadingProgress = styled.div.attrs(\n ({\n value,\n fullAmount,\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => {\n const percentage = Math.min(100, (value * 100) / fullAmount)\n\n return {\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${gradientStartColor} 0%, ${gradientEndColor} ${percentage}%, #fff ${percentage}%, #fff 100%)`,\n },\n }\n },\n)`\n ${({ label }) => css`\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n `}\n`\n\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n","import styled, { css } from 'styled-components'\n\nexport const DetailedViewWidgetSection = styled.section`\n ${({\n theme: {\n detailedView: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n padding: 40px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const DetailedViewCacheSection = styled.section`\n ${({\n theme: {\n detailedView: { cacheSectionBGColor },\n },\n }) => css`\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${cacheSectionBGColor};\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n","import { WidgetFieldWrapper, WidgetFieldIcon, WidgetFieldValue, WidgetFieldTitle } from './style'\n\nexport default function StatisticsField({ icon: Icon, title, value, iconBg, valueBg }) {\n return (\n \n {title}\n \n \n \n\n {value}\n \n )\n}\n","import { DarkModeContext } from 'components/App'\nimport { useContext } from 'react'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nconst { LIGHT, DARK } = THEME_MODES\n\nconst colors = {\n light: {\n downloadSpeed: { iconBGColor: '#118f00', valueBGColor: '#13a300' },\n uploadSpeed: { iconBGColor: '#0146ad', valueBGColor: '#0058db' },\n peers: { iconBGColor: '#cdc118', valueBGColor: '#d8cb18' },\n piecesCount: { iconBGColor: '#b6c95e', valueBGColor: '#c0d076' },\n piecesLength: { iconBGColor: '#0982c8', valueBGColor: '#098cd7' },\n status: { iconBGColor: '#aea25b', valueBGColor: '#b4aa6e' },\n size: { iconBGColor: '#9b01ad', valueBGColor: '#ac03bf' },\n },\n dark: {\n downloadSpeed: { iconBGColor: '#0c6600', valueBGColor: '#0d7000' },\n uploadSpeed: { iconBGColor: '#003f9e', valueBGColor: '#0047b3' },\n peers: { iconBGColor: '#a69c11', valueBGColor: '#b4a913' },\n piecesCount: { iconBGColor: '#8da136', valueBGColor: '#99ae3d' },\n piecesLength: { iconBGColor: '#07659c', valueBGColor: '#0872af' },\n status: { iconBGColor: '#938948', valueBGColor: '#9f9450' },\n size: { iconBGColor: '#81008f', valueBGColor: '#9102a1' },\n },\n}\n\nexport default function useGetWidgetColors(widgetName) {\n const { isDarkMode } = useContext(DarkModeContext)\n const widgetColors = colors[isDarkMode ? DARK : LIGHT][widgetName]\n\n return widgetColors\n}\n","import {\n ArrowDownward as ArrowDownwardIcon,\n ArrowUpward as ArrowUpwardIcon,\n SwapVerticalCircle as SwapVerticalCircleIcon,\n ViewAgenda as ViewAgendaIcon,\n Widgets as WidgetsIcon,\n PhotoSizeSelectSmall as PhotoSizeSelectSmallIcon,\n Build as BuildIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed } from 'utils/Utils'\nimport { useTranslation } from 'react-i18next'\nimport { GETTING_INFO, IN_DB, CLOSED, PRELOAD, WORKING } from 'torrentStates'\n\nimport StatisticsField from '../StatisticsField'\nimport useGetWidgetColors from './useGetWidgetColors'\n\nexport const DownlodSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('downloadSpeed')\n\n return (\n \n )\n}\n\nexport const UploadSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('uploadSpeed')\n\n return (\n \n )\n}\n\nexport const PeersWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('peers')\n\n return (\n \n )\n}\n\nexport const PiecesCountWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesCount')\n\n return (\n \n )\n}\n\nexport const PiecesLengthWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesLength')\n\n return (\n \n )\n}\n\nexport const StatusWidget = ({ stat }) => {\n const { t } = useTranslation()\n\n const values = {\n [GETTING_INFO]: t('TorrentGettingInfo'),\n [PRELOAD]: t('TorrentPreload'),\n [WORKING]: t('TorrentWorking'),\n [CLOSED]: t('TorrentClosed'),\n [IN_DB]: t('TorrentInDb'),\n }\n const { iconBGColor, valueBGColor } = useGetWidgetColors('status')\n\n return (\n \n )\n}\n\nexport const SizeWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('size')\n\n return (\n \n )\n}\n","export const [GETTING_INFO, PRELOAD, WORKING, CLOSED, IN_DB] = [1, 2, 3, 4, 5]\n","import { useTranslation } from 'react-i18next'\n\nimport { SectionTitle, WidgetWrapper } from '../style'\nimport { DetailedViewCacheSection, DetailedViewWidgetSection } from './style'\nimport TorrentCache from '../TorrentCache'\nimport {\n SizeWidget,\n PiecesLengthWidget,\n StatusWidget,\n PiecesCountWidget,\n PeersWidget,\n UploadSpeedWidget,\n DownlodSpeedWidget,\n} from '../widgets'\n\nexport default function DetailedView({\n downloadSpeed,\n uploadSpeed,\n torrent,\n torrentSize,\n PiecesCount,\n PiecesLength,\n stat,\n cache,\n}) {\n const { t } = useTranslation()\n\n return (\n <>\n \n {t('Data')}\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n {t('Cache')}\n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const MainSectionButtonGroup = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n`\n\nexport const SmallLabel = styled.div`\n ${({\n mb,\n theme: {\n torrentFunctions: { fontColor },\n },\n }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ${fontColor};\n\n @media (max-width: 800px) {\n font-size: 18px;\n ${mb && `margin-bottom: ${mb / 1.5}px`};\n }\n `}\n`\n","import axios from 'axios'\nimport { memo } from 'react'\nimport { playlistTorrHost, torrentsHost, viewedHost } from 'utils/Hosts'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\nimport { Button } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\n\nimport { SmallLabel, MainSectionButtonGroup } from './style'\nimport { SectionSubName } from '../style'\n\nconst TorrentFunctions = memo(\n ({ hash, viewedFileList, playableFileList, name, title, setViewedFileList }) => {\n const { t } = useTranslation()\n const latestViewedFileId = viewedFileList?.[viewedFileList?.length - 1]\n const latestViewedFile = playableFileList?.find(({ id }) => id === latestViewedFileId)?.path\n const isOnlyOnePlayableFile = playableFileList?.length === 1\n const latestViewedFileData = latestViewedFile && ptt.parse(latestViewedFile)\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const removeTorrentViews = () =>\n axios.post(viewedHost(), { action: 'rem', hash, file_index: -1 }).then(() => setViewedFileList())\n const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(name || title || 'file')}.m3u?link=${hash}&m3u`\n const partialPlaylistLink = `${fullPlaylistLink}&fromlast`\n\n return (\n <>\n {!isOnlyOnePlayableFile && !!viewedFileList?.length && (\n <>\n {t('DownloadPlaylist')}\n \n {t('LatestFilePlayed')} {latestViewedFileData?.title}.\n {latestViewedFileData?.season && (\n <>\n {' '}\n {t('Season')}: {latestViewedFileData?.season}. {t('Episode')}: {latestViewedFileData?.episode}.\n \n )}\n \n\n \n \n \n \n\n \n \n \n \n \n )}\n {t('TorrentState')}\n \n \n \n \n {t('Info')}\n \n {(isOnlyOnePlayableFile || !viewedFileList?.length) && (\n \n \n \n )}\n \n \n \n \n \n )\n },\n () => true,\n)\n\nexport default TorrentFunctions\n","const getExt = filename => {\n const ext = filename.split('.').pop()\n if (ext === filename) return ''\n return ext.toLowerCase()\n}\nconst playableExtList = [\n // video\n '3g2',\n '3gp',\n 'aaf',\n 'asf',\n 'avchd',\n 'avi',\n 'drc',\n 'flv',\n 'iso',\n 'm2v',\n 'm2ts',\n 'm4p',\n 'm4v',\n 'mkv',\n 'mng',\n 'mov',\n 'mp2',\n 'mp4',\n 'mpe',\n 'mpeg',\n 'mpg',\n 'mpv',\n 'mxf',\n 'nsv',\n 'ogg',\n 'ogv',\n 'ts',\n 'qt',\n 'rm',\n 'rmvb',\n 'roq',\n 'svi',\n 'vob',\n 'webm',\n 'wmv',\n 'yuv',\n // audio\n 'aac',\n 'aiff',\n 'ape',\n 'au',\n 'flac',\n 'gsm',\n 'it',\n 'm3u',\n 'm4a',\n 'mid',\n 'mod',\n 'mp3',\n 'mpa',\n 'pls',\n 'ra',\n 's3m',\n 'sid',\n 'wav',\n 'wma',\n 'xm',\n]\n\n// eslint-disable-next-line import/prefer-default-export\nexport const isFilePlayable = fileName => playableExtList.includes(getExt(fileName))\n","import { NoImageIcon } from 'icons'\nimport { humanizeSize, removeRedundantCharacters } from 'utils/Utils'\nimport { useEffect, useState } from 'react'\nimport { Button, ButtonGroup } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport axios from 'axios'\nimport { viewedHost } from 'utils/Hosts'\nimport { GETTING_INFO, IN_DB } from 'torrentStates'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { useTranslation } from 'react-i18next'\n\nimport { useUpdateCache, useGetSettings } from './customHooks'\nimport DialogHeader from './DialogHeader'\nimport TorrentCache from './TorrentCache'\nimport Table from './Table'\nimport DetailedView from './DetailedView'\nimport {\n DialogContentGrid,\n MainSection,\n Poster,\n SectionTitle,\n SectionSubName,\n WidgetWrapper,\n LoadingProgress,\n SectionHeader,\n CacheSection,\n TorrentFilesSection,\n Divider,\n} from './style'\nimport { DownlodSpeedWidget, UploadSpeedWidget, PeersWidget, SizeWidget, StatusWidget } from './widgets'\nimport TorrentFunctions from './TorrentFunctions'\nimport { isFilePlayable } from './helpers'\n\nconst Loader = () => (\n
\n \n
\n)\n\nexport default function DialogTorrentDetailsContent({ closeDialog, torrent }) {\n const { t } = useTranslation()\n const [isLoading, setIsLoading] = useState(true)\n const [isDetailedCacheView, setIsDetailedCacheView] = useState(false)\n const [viewedFileList, setViewedFileList] = useState()\n const [playableFileList, setPlayableFileList] = useState()\n const [seasonAmount, setSeasonAmount] = useState(null)\n const [selectedSeason, setSelectedSeason] = useState()\n\n const {\n poster,\n hash,\n title,\n name,\n stat,\n download_speed: downloadSpeed,\n upload_speed: uploadSpeed,\n torrent_size: torrentSize,\n file_stats: torrentFileList,\n } = torrent\n\n const cache = useUpdateCache(hash)\n const settings = useGetSettings(cache)\n\n const { Capacity, PiecesCount, PiecesLength, Filled } = cache\n\n useEffect(() => {\n if (playableFileList && seasonAmount === null) {\n const seasons = []\n playableFileList.forEach(({ path }) => {\n const currentSeason = ptt.parse(path).season\n if (currentSeason) {\n !seasons.includes(currentSeason) && seasons.push(currentSeason)\n }\n })\n seasons.length && setSelectedSeason(seasons[0])\n setSeasonAmount(seasons.sort((a, b) => a - b))\n }\n }, [playableFileList, seasonAmount])\n\n useEffect(() => {\n setPlayableFileList(torrentFileList?.filter(({ path }) => isFilePlayable(path)))\n }, [torrentFileList])\n\n useEffect(() => {\n const cacheLoaded = !!Object.entries(cache).length\n const torrentLoaded = stat !== GETTING_INFO && stat !== IN_DB\n\n if (!cacheLoaded && !isLoading) setIsLoading(true)\n if (cacheLoaded && isLoading && torrentLoaded) setIsLoading(false)\n }, [stat, cache, isLoading])\n\n useEffect(() => {\n // getting viewed file list\n axios.post(viewedHost(), { action: 'list', hash }).then(({ data }) => {\n if (data) {\n const lst = data.map(itm => itm.file_index).sort((a, b) => a - b)\n setViewedFileList(lst)\n } else setViewedFileList()\n })\n }, [hash])\n\n const preloadPerc = settings?.PreloadCache\n const preloadSize = (Capacity / 100) * preloadPerc\n const bufferSize = preloadSize > 33554432 ? preloadSize : 33554432 // Not less than 32MB\n\n const getParsedTitle = () => {\n const newNameStringArr = []\n\n const torrentParsedName = name && ptt.parse(name)\n\n if (title !== name) {\n newNameStringArr.push(removeRedundantCharacters(title))\n } else if (torrentParsedName?.title) newNameStringArr.push(removeRedundantCharacters(torrentParsedName?.title))\n\n // These 2 checks are needed to get year and resolution from torrent name if title does not have this info\n if (torrentParsedName?.year && !newNameStringArr[0].includes(torrentParsedName?.year))\n newNameStringArr.push(torrentParsedName?.year)\n if (torrentParsedName?.resolution && !newNameStringArr[0].includes(torrentParsedName?.resolution))\n newNameStringArr.push(torrentParsedName?.resolution)\n\n const newNameString = newNameStringArr.join('. ')\n\n // removeRedundantCharacters is returning \"..\" if it was \"...\"\n const lastDotShouldBeAdded =\n newNameString[newNameString.length - 1] === '.' && newNameString[newNameString.length - 2] === '.'\n\n return lastDotShouldBeAdded ? `${newNameString}.` : newNameString\n }\n\n return (\n <>\n setIsDetailedCacheView(false) })}\n />\n\n \n {isLoading ? (\n \n ) : isDetailedCacheView ? (\n \n ) : (\n \n \n {poster ? poster : }\n\n
\n {title && name !== title ? (\n getParsedTitle().length > 90 ? (\n <>\n {ptt.parse(name).title}\n {getParsedTitle()}\n \n ) : (\n <>\n {getParsedTitle()}\n {ptt.parse(name || '')?.title}\n \n )\n ) : (\n {getParsedTitle()}\n )}\n\n \n \n \n \n \n \n \n\n \n\n \n
\n
\n\n \n \n {t('Buffer')}\n {bufferSize <= 33554432 && {t('BufferNote')}}\n \n \n\n \n setIsDetailedCacheView(true)}\n >\n {t('DetailedCacheView.button')}\n \n \n\n \n {t('TorrentContent')}\n\n {seasonAmount?.length > 1 && (\n <>\n {t('SelectSeason')}\n \n {seasonAmount.map(season => (\n setSelectedSeason(season)}\n >\n {season}\n \n ))}\n \n\n \n {t('Season')} {selectedSeason}\n \n \n )}\n\n \n \n
\n )}\n
\n \n )\n}\n","import { useTranslation } from 'react-i18next'\n\nexport default () => {\n const { i18n } = useTranslation()\n const currentLanguage = i18n.language === 'en-US' || i18n.language === 'en' ? 'en' : i18n.language\n\n return [currentLanguage, lang => i18n.changeLanguage(lang)]\n}\n","import { useEffect, useRef } from 'react'\n\nexport default function usePreviousState(value) {\n const ref = useRef(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n","import styled, { css } from 'styled-components'\n\nexport const Header = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n `}\n`\n\nexport const ButtonWrapper = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n`\n","import axios from 'axios'\nimport parseTorrent from 'parse-torrent'\nimport ptt from 'parse-torrent-title'\n\nexport const getMoviePosters = (movieName, language = 'en') => {\n const url = 'http://api.themoviedb.org/3/search/multi'\n\n return axios\n .get(url, {\n params: {\n api_key: process.env.REACT_APP_TMDB_API_KEY,\n language,\n include_image_language: `${language},null,en`,\n query: movieName,\n },\n })\n .then(({ data: { results } }) =>\n results.filter(el => el.poster_path).map(el => `https://image.tmdb.org/t/p/w300${el.poster_path}`),\n )\n .catch(() => null)\n}\n\nexport const checkImageURL = async url => {\n if (!url || !url.match(/.(jpg|jpeg|png|gif)$/i)) return false\n return true\n}\n\nconst magnetRegex = /^magnet:\\?xt=urn:[a-z0-9].*/i\nexport const hashRegex = /^\\b[0-9a-f]{32}\\b$|^\\b[0-9a-f]{40}\\b$|^\\b[0-9a-f]{64}\\b$/i\nconst torrentRegex = /^.*\\.(torrent)$/i\nconst linkRegex = /^(http(s?)):\\/\\/.*/i\n\nexport const checkTorrentSource = source =>\n source.match(hashRegex) !== null ||\n source.match(magnetRegex) !== null ||\n source.match(torrentRegex) !== null ||\n source.match(linkRegex) !== null\n\nexport const parseTorrentTitle = (parsingSource, callback) => {\n parseTorrent.remote(parsingSource, (err, { name, files } = {}) => {\n if (!name || err) return callback({ parsedTitle: null, originalName: null })\n\n const torrentName = ptt.parse(name).title\n const nameOfFileInsideTorrent = files ? ptt.parse(files[0].name).title : null\n\n let newTitle = torrentName\n if (nameOfFileInsideTorrent) {\n // taking shorter title because in most cases it is more accurate\n newTitle = torrentName.length < nameOfFileInsideTorrent.length ? torrentName : nameOfFileInsideTorrent\n }\n\n callback({ parsedTitle: newTitle, originalName: name })\n })\n}\n","import { Button } from '@material-ui/core'\nimport styled, { css } from 'styled-components'\n\nexport const Content = styled.div`\n ${({\n isEditMode,\n theme: {\n addDialog: { gradientStartColor, gradientEndColor, fontColor },\n },\n }) => css`\n height: 550px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n flex: 1;\n display: grid;\n grid-template-columns: repeat(${isEditMode ? '1' : '2'}, 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ${fontColor};\n\n @media (max-width: 540px) {\n ${'' /* Just for bug fixing on small screens */}\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n `}\n`\n\nexport const RightSide = styled.div`\n padding: 0 20px 20px 20px;\n`\n\nexport const RightSideContainer = styled.div`\n ${({\n isHidden,\n notificationMessage,\n isError,\n theme: {\n addDialog: { notificationErrorBGColor, notificationSuccessBGColor },\n },\n }) => css`\n height: 530px;\n\n ${notificationMessage &&\n css`\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '${notificationMessage}';\n display: grid;\n place-items: center;\n background: ${isError ? notificationErrorBGColor : notificationSuccessBGColor};\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n `};\n\n ${isHidden &&\n css`\n display: none;\n `};\n\n @media (max-width: 500px) {\n height: 170px;\n }\n `}\n`\nexport const LeftSide = styled.div`\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n`\n\nexport const LeftSideBottomSectionBasicStyles = css`\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n`\n\nexport const LeftSideBottomSectionNoFile = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n\n ${({ isDragActive }) => isDragActive && `border: 4px dashed green`};\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n`\n\nexport const LeftSideBottomSectionFileSelected = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n`\n\nexport const TorrentIconWrapper = styled.div`\n position: relative;\n`\n\nexport const CancelIconWrapper = styled.div`\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n`\n\nexport const IconWrapper = styled.div`\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n`\n\nexport const LeftSideTopSection = styled.div`\n ${({\n active,\n theme: {\n addDialog: { gradientStartColor },\n },\n }) => css`\n background: ${gradientStartColor};\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ${active && 'box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)'};\n `}\n`\n\nexport const PosterWrapper = styled.div`\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n`\n\nexport const PosterSuggestions = styled.div`\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n`\n\nexport const PosterSuggestionsItem = styled.div`\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n`\n\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n addDialog: { posterBGColor },\n },\n }) => css`\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ${poster\n ? css`\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n `}\n `}\n`\n\nexport const ClearPosterButton = styled(Button)`\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ${({ showbutton }) => !showbutton && 'display: none'};\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n`\n\nexport const PosterLanguageSwitch = styled.div`\n ${({\n showbutton,\n theme: {\n addDialog: { languageSwitchBGColor, languageSwitchFontColor },\n },\n }) => css`\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ${languageSwitchBGColor};\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ${languageSwitchFontColor};\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ${!showbutton && 'display: none'};\n\n :hover {\n filter: brightness(1.1);\n }\n `}\n`\n","import { useTranslation } from 'react-i18next'\nimport { rgba } from 'polished'\nimport { NoImageIcon } from 'icons'\nimport { IconButton, InputAdornment, TextField, useTheme } from '@material-ui/core'\nimport { HighlightOff as HighlightOffIcon } from '@material-ui/icons'\n\nimport {\n ClearPosterButton,\n PosterLanguageSwitch,\n RightSide,\n Poster,\n PosterSuggestions,\n PosterSuggestionsItem,\n PosterWrapper,\n RightSideContainer,\n} from './style'\nimport { checkImageURL } from './helpers'\n\nexport default function RightSideComponent({\n setTitle,\n setPosterUrl,\n setIsPosterUrlCorrect,\n setIsUserInteractedWithPoster,\n setPosterList,\n isTorrentSourceCorrect,\n isHashAlreadyExists,\n title,\n parsedTitle,\n posterUrl,\n isPosterUrlCorrect,\n posterList,\n currentLang,\n posterSearchLanguage,\n setPosterSearchLanguage,\n posterSearch,\n removePoster,\n torrentSource,\n originalTorrentTitle,\n updateTitleFromSource,\n isCustomTitleEnabled,\n setIsCustomTitleEnabled,\n isEditMode,\n}) {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n const handleTitleChange = ({ target: { value } }) => setTitle(value)\n const handlePosterUrlChange = ({ target: { value } }) => {\n setPosterUrl(value)\n checkImageURL(value).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(!!value)\n setPosterList()\n }\n const userChangesPosterUrl = url => {\n setPosterUrl(url)\n checkImageURL(url).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(true)\n }\n\n return (\n \n \n {originalTorrentTitle ? (\n <>\n \n setIsCustomTitleEnabled(true)}\n onBlur={({ target: { value } }) => !value && setIsCustomTitleEnabled(false)}\n value={title}\n margin='dense'\n label={t('AddDialog.CustomTorrentTitle')}\n type='text'\n fullWidth\n helperText={t('AddDialog.CustomTorrentTitleHelperText')}\n InputProps={{\n endAdornment: (\n \n {\n setTitle('')\n setIsCustomTitleEnabled(!isCustomTitleEnabled)\n updateTitleFromSource()\n setIsUserInteractedWithPoster(false)\n }}\n >\n \n \n \n ),\n }}\n />\n \n ) : (\n \n )}\n \n\n \n \n {isPosterUrlCorrect ? poster : }\n \n\n \n {posterList\n ?.filter(url => url !== posterUrl)\n .slice(0, 12)\n .map(url => (\n userChangesPosterUrl(url)} key={url}>\n poster\n \n ))}\n \n\n {currentLang !== 'en' && (\n {\n const newLanguage = posterSearchLanguage === 'en' ? 'ru' : 'en'\n setPosterSearchLanguage(newLanguage)\n posterSearch(isCustomTitleEnabled ? title : originalTorrentTitle ? parsedTitle : title, newLanguage, {\n shouldRefreshMainPoster: true,\n })\n }}\n showbutton={+isPosterUrlCorrect}\n color='primary'\n variant='contained'\n size='small'\n >\n {posterSearchLanguage === 'en' ? 'EN' : 'RU'}\n \n )}\n\n {\n removePoster()\n setIsUserInteractedWithPoster(true)\n }}\n color='primary'\n variant='contained'\n size='small'\n >\n {t('Clear')}\n \n \n \n\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { useDropzone } from 'react-dropzone'\nimport { AddItemIcon, TorrentIcon } from 'icons'\nimport TextField from '@material-ui/core/TextField'\nimport { Cancel as CancelIcon } from '@material-ui/icons'\nimport { useState } from 'react'\n\nimport {\n CancelIconWrapper,\n IconWrapper,\n LeftSide,\n LeftSideBottomSectionFileSelected,\n LeftSideBottomSectionNoFile,\n LeftSideTopSection,\n TorrentIconWrapper,\n} from './style'\n\nexport default function LeftSideComponent({\n setIsUserInteractedWithPoster,\n setSelectedFile,\n torrentSource,\n setTorrentSource,\n selectedFile,\n}) {\n const { t } = useTranslation()\n\n const handleCapture = files => {\n const [file] = files\n if (!file) return\n\n setIsUserInteractedWithPoster(false)\n setSelectedFile(file)\n setTorrentSource(file.name)\n }\n\n const clearSelectedFile = () => {\n setSelectedFile()\n setTorrentSource('')\n }\n\n const [isTorrentSourceActive, setIsTorrentSourceActive] = useState(false)\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop: handleCapture, accept: '.torrent' })\n\n const handleTorrentSourceChange = ({ target: { value } }) => setTorrentSource(value)\n\n return (\n \n \n setIsTorrentSourceActive(true)}\n onBlur={() => setIsTorrentSourceActive(false)}\n inputProps={{ autoComplete: 'off' }}\n disabled={!!selectedFile}\n />\n \n\n {selectedFile ? (\n \n \n \n\n \n \n \n \n \n ) : (\n \n \n
{t('AddDialog.AppendFile.Or')}
\n\n \n \n
{t('AddDialog.AppendFile.ClickOrDrag')}
\n
\n
\n )}\n
\n )\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport { torrentsHost, torrentUploadHost } from 'utils/Hosts'\nimport axios from 'axios'\nimport { useTranslation } from 'react-i18next'\nimport debounce from 'lodash/debounce'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { useMediaQuery } from '@material-ui/core'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport usePreviousState from 'utils/usePreviousState'\nimport { useQuery } from 'react-query'\nimport { getTorrents } from 'utils/Utils'\nimport parseTorrent from 'parse-torrent'\nimport { ButtonWrapper, Header } from 'style/DialogStyles'\n\nimport { checkImageURL, getMoviePosters, checkTorrentSource, parseTorrentTitle } from './helpers'\nimport { Content } from './style'\nimport RightSideComponent from './RightSideComponent'\nimport LeftSideComponent from './LeftSideComponent'\n\nexport default function AddDialog({\n handleClose,\n hash: originalHash,\n title: originalTitle,\n name: originalName,\n poster: originalPoster,\n}) {\n const { t } = useTranslation()\n const isEditMode = !!originalHash\n const [torrentSource, setTorrentSource] = useState(originalHash || '')\n const [title, setTitle] = useState(originalTitle || '')\n const [originalTorrentTitle, setOriginalTorrentTitle] = useState('')\n const [parsedTitle, setParsedTitle] = useState('')\n const [posterUrl, setPosterUrl] = useState(originalPoster || '')\n const [isPosterUrlCorrect, setIsPosterUrlCorrect] = useState(false)\n const [isTorrentSourceCorrect, setIsTorrentSourceCorrect] = useState(false)\n const [isHashAlreadyExists, setIsHashAlreadyExists] = useState(false)\n const [posterList, setPosterList] = useState()\n const [isUserInteractedWithPoster, setIsUserInteractedWithPoster] = useState(isEditMode)\n const [currentLang] = useChangeLanguage()\n const [selectedFile, setSelectedFile] = useState()\n const [posterSearchLanguage, setPosterSearchLanguage] = useState(currentLang === 'ru' ? 'ru' : 'en')\n const [isSaving, setIsSaving] = useState(false)\n const [skipDebounce, setSkipDebounce] = useState(false)\n const [isCustomTitleEnabled, setIsCustomTitleEnabled] = useState(false)\n const [currentSourceHash, setCurrentSourceHash] = useState()\n\n const { data: torrents } = useQuery('torrents', getTorrents, { retry: 1, refetchInterval: 1000 })\n\n useEffect(() => {\n // getting hash from added torrent source\n parseTorrent.remote(selectedFile || torrentSource, (_, { infoHash } = {}) => setCurrentSourceHash(infoHash))\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n // checking if torrent already exists in DB\n if (!setCurrentSourceHash) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n setIsHashAlreadyExists(allHashes.includes(currentSourceHash))\n }, [currentSourceHash, torrents])\n\n useEffect(() => {\n // closing dialog when torrent successfully added in DB\n if (!isSaving) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n allHashes.includes(currentSourceHash) && handleClose()\n }, [isSaving, torrents, currentSourceHash, handleClose])\n\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n\n const updateTitleFromSource = useCallback(() => {\n parseTorrentTitle(selectedFile || torrentSource, ({ parsedTitle, originalName }) => {\n if (!originalName) return\n\n setSkipDebounce(true)\n setTitle('')\n setIsCustomTitleEnabled(false)\n setOriginalTorrentTitle(originalName)\n setParsedTitle(parsedTitle)\n })\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n if (!selectedFile && !torrentSource) {\n setTitle('')\n setOriginalTorrentTitle('')\n setParsedTitle('')\n setIsCustomTitleEnabled(false)\n setPosterList()\n removePoster()\n setIsUserInteractedWithPoster(false)\n }\n }, [selectedFile, torrentSource])\n\n const removePoster = () => {\n setIsPosterUrlCorrect(false)\n setPosterUrl('')\n }\n\n useEffect(() => {\n if (originalHash) {\n checkImageURL(posterUrl).then(correctImage => {\n correctImage ? setIsPosterUrlCorrect(true) : removePoster()\n })\n }\n // This is needed only on mount. Do not remove line below\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const posterSearch = useMemo(\n () =>\n (movieName, language, { shouldRefreshMainPoster = false } = {}) => {\n if (!movieName) {\n setPosterList()\n removePoster()\n return\n }\n\n getMoviePosters(movieName, language).then(urlList => {\n if (urlList) {\n setPosterList(urlList)\n if (!shouldRefreshMainPoster && isUserInteractedWithPoster) return\n\n const [firstPoster] = urlList\n checkImageURL(firstPoster).then(correctImage => {\n if (correctImage) {\n setIsPosterUrlCorrect(true)\n setPosterUrl(firstPoster)\n } else removePoster()\n })\n } else {\n setPosterList()\n if (isUserInteractedWithPoster) return\n\n removePoster()\n }\n })\n },\n [isUserInteractedWithPoster],\n )\n\n const delayedPosterSearch = useMemo(() => debounce(posterSearch, 700), [posterSearch])\n\n const prevTorrentSourceState = usePreviousState(torrentSource)\n\n useEffect(() => {\n const isCorrectSource = checkTorrentSource(torrentSource)\n if (!isCorrectSource) return setIsTorrentSourceCorrect(false)\n\n setIsTorrentSourceCorrect(true)\n\n // if torrentSource is updated then we are getting title from the source\n const torrentSourceChanged = torrentSource !== prevTorrentSourceState\n if (!torrentSourceChanged) return\n\n updateTitleFromSource()\n }, [prevTorrentSourceState, selectedFile, torrentSource, updateTitleFromSource])\n\n const prevTitleState = usePreviousState(title)\n\n useEffect(() => {\n // if title exists and title was changed then search poster.\n const titleChanged = title !== prevTitleState\n if (!titleChanged && !parsedTitle) return\n\n if (skipDebounce) {\n posterSearch(title || parsedTitle, posterSearchLanguage)\n setSkipDebounce(false)\n } else if (!title) {\n delayedPosterSearch.cancel()\n\n if (parsedTitle) {\n posterSearch(parsedTitle, posterSearchLanguage)\n } else {\n !isUserInteractedWithPoster && removePoster()\n }\n } else {\n delayedPosterSearch(title, posterSearchLanguage)\n }\n }, [\n title,\n parsedTitle,\n prevTitleState,\n delayedPosterSearch,\n posterSearch,\n posterSearchLanguage,\n skipDebounce,\n isUserInteractedWithPoster,\n ])\n\n const handleSave = () => {\n setIsSaving(true)\n\n if (isEditMode) {\n axios\n .post(torrentsHost(), {\n action: 'set',\n hash: originalHash,\n title: title || originalName,\n poster: posterUrl,\n })\n .finally(handleClose)\n } else if (selectedFile) {\n // file save\n const data = new FormData()\n data.append('save', 'true')\n data.append('file', selectedFile)\n title && data.append('title', title)\n posterUrl && data.append('poster', posterUrl)\n axios.post(torrentUploadHost(), data).catch(handleClose)\n } else {\n // link save\n axios\n .post(torrentsHost(), { action: 'add', link: torrentSource, title, poster: posterUrl, save_to_db: true })\n .catch(handleClose)\n }\n }\n\n return (\n \n
{t(isEditMode ? 'EditTorrent' : 'AddNewTorrent')}
\n\n \n {!isEditMode && (\n \n )}\n\n \n \n\n \n \n\n \n {isSaving ? : t(isEditMode ? 'Save' : 'Add')}\n \n \n
\n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const TorrentCard = styled.div`\n ${({\n theme: {\n torrentCard: { cardPrimaryColor },\n },\n }) => css`\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ${cardPrimaryColor};\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n `}\n`\n\nexport const TorrentCardPoster = styled.div`\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n\n ${({\n isPoster,\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) =>\n isPoster\n ? css`\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${cardSecondaryColor};\n border: 1px solid ${accentCardColor};\n\n svg {\n transform: translateY(-3px);\n }\n `};\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n`\n\nexport const TorrentCardButtons = styled.div`\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n`\nexport const TorrentCardDescription = styled.div`\n ${({\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) => css`\n grid-area: description;\n background: ${cardSecondaryColor};\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ${accentCardColor};\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n `}\n`\n\nexport const StyledButton = styled.button`\n ${({\n theme: {\n torrentCard: { buttonBGColor, accentCardColor },\n },\n }) => css`\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ${buttonBGColor};\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ${accentCardColor};\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n `}\n`\n","import { forwardRef, memo, useState } from 'react'\nimport {\n UnfoldMore as UnfoldMoreIcon,\n Edit as EditIcon,\n Close as CloseIcon,\n Delete as DeleteIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed, removeRedundantCharacters } from 'utils/Utils'\nimport { torrentsHost } from 'utils/Hosts'\nimport { NoImageIcon } from 'icons'\nimport DialogTorrentDetailsContent from 'components/DialogTorrentDetailsContent'\nimport Dialog from '@material-ui/core/Dialog'\nimport Slide from '@material-ui/core/Slide'\nimport { Button, DialogActions, DialogTitle, useMediaQuery, useTheme } from '@material-ui/core'\nimport axios from 'axios'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\nimport AddDialog from 'components/Add/AddDialog'\n\nimport { StyledButton, TorrentCard, TorrentCardButtons, TorrentCardDescription, TorrentCardPoster } from './style'\n\nconst Transition = forwardRef((props, ref) => )\n\nconst Torrent = ({ torrent }) => {\n const { t } = useTranslation()\n const [isDetailedInfoOpened, setIsDetailedInfoOpened] = useState(false)\n const [isDeleteTorrentOpened, setIsDeleteTorrentOpened] = useState(false)\n\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('md'))\n\n const openDetailedInfo = () => setIsDetailedInfoOpened(true)\n const closeDetailedInfo = () => setIsDetailedInfoOpened(false)\n const openDeleteTorrentAlert = () => setIsDeleteTorrentOpened(true)\n const closeDeleteTorrentAlert = () => setIsDeleteTorrentOpened(false)\n\n const { title, name, poster, torrent_size: torrentSize, download_speed: downloadSpeed, hash } = torrent\n\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const deleteTorrent = () => axios.post(torrentsHost(), { action: 'rem', hash })\n\n const getParsedTitle = () => {\n const parse = key => ptt.parse(title || '')?.[key] || ptt.parse(name || '')?.[key]\n\n const titleStrings = []\n\n let parsedTitle = removeRedundantCharacters(parse('title'))\n const parsedYear = parse('year')\n const parsedResolution = parse('resolution')\n if (parsedTitle) titleStrings.push(parsedTitle)\n if (parsedYear) titleStrings.push(`(${parsedYear})`)\n if (parsedResolution) titleStrings.push(`[${parsedResolution}]`)\n parsedTitle = titleStrings.join(' ')\n return { parsedTitle }\n }\n const { parsedTitle } = getParsedTitle()\n\n const [isEditDialogOpen, setIsEditDialogOpen] = useState(false)\n const handleClickOpenEditDialog = () => setIsEditDialogOpen(true)\n const handleCloseEditDialog = () => setIsEditDialogOpen(false)\n\n return (\n <>\n \n \n {poster ? poster : }\n \n\n \n \n \n {t('Details')}\n \n\n \n \n {t('Edit')}\n \n\n dropTorrent(torrent)}>\n \n {t('Drop')}\n \n\n \n \n {t('Delete')}\n \n \n\n \n
\n
{t('Name')}
\n
{parsedTitle}
\n
\n\n
\n
\n
{t('Size')}
\n
{torrentSize > 0 && humanizeSize(torrentSize)}
\n
\n\n
\n
{t('Speed')}
\n
\n {downloadSpeed > 0 ? humanizeSpeed(downloadSpeed) : '---'}\n
\n
\n\n
\n
{t('Peers')}
\n
{getPeerString(torrent) || '---'}
\n
\n
\n
\n
\n\n \n \n \n\n \n {t('DeleteTorrent?')}\n \n \n\n {\n deleteTorrent(torrent)\n closeDeleteTorrentAlert()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n\n {isEditDialogOpen && (\n \n )}\n \n )\n}\n\nexport default memo(Torrent)\n","import { rgba } from 'polished'\nimport styled, { css } from 'styled-components'\n\nexport const AppWrapper = styled.div`\n ${({\n theme: {\n app: { appSecondaryColor },\n },\n }) => css`\n height: 100%;\n background: ${rgba(appSecondaryColor, 0.8)};\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n `}\n`\n\nexport const CenteredGrid = styled.div`\n height: 100%;\n display: grid;\n place-items: center;\n`\n\nexport const AppHeader = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n `}\n`\nexport const AppSidebarStyle = styled.div`\n ${({\n isDrawerOpen,\n theme: {\n app: { appSecondaryColor, sidebarBGColor, sidebarFillColor },\n },\n }) => css`\n grid-area: side;\n width: ${isDrawerOpen ? '400%' : '100%'};\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ${rgba(appSecondaryColor, 0.12)};\n background: ${sidebarBGColor};\n color: ${sidebarFillColor};\n white-space: nowrap;\n\n svg {\n fill: ${sidebarFillColor};\n }\n `}\n`\nexport const TorrentListWrapper = styled.div`\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n`\n\nexport const HeaderToggle = styled.div`\n ${({\n theme: {\n app: { headerToggleColor },\n },\n }) => css`\n cursor: pointer;\n border-radius: 50%;\n background: ${headerToggleColor};\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ${rgba(headerToggleColor, 0.7)};\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n `}\n`\n","import styled, { css } from 'styled-components'\n\nexport default styled.div`\n ${({ isButton }) => css`\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ${isButton &&\n css`\n background: #88cdaa;\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: #74c39c;\n }\n `}\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n `}\n`\n","import { useTheme } from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\nimport IconWrapper from './style'\n\nexport default function NoServerConnection() {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n
{t('Offline')}
\n
\n )\n}\n","import { useTheme } from '@material-ui/core'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport AddDialog from '../Add/AddDialog'\nimport IconWrapper from './style'\n\nexport default function AddFirstTorrent() {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n const primary = useTheme().palette.primary.main\n\n return (\n <>\n handleClickOpen(true)} isButton>\n \n
{t('NoTorrentsAdded')}
\n
\n\n {isDialogOpen && }\n \n )\n}\n","import TorrentCard from 'components/TorrentCard'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { TorrentListWrapper, CenteredGrid } from 'components/App/style'\n\nimport NoServerConnection from './NoServerConnection'\nimport AddFirstTorrent from './AddFirstTorrent'\n\nexport default function TorrentList({ isOffline, isLoading, torrents }) {\n if (isLoading || isOffline || !torrents.length) {\n return (\n \n {isOffline ? (\n \n ) : isLoading ? (\n \n ) : (\n !torrents.length && \n )}\n \n )\n }\n\n return (\n \n {torrents.map(torrent => (\n \n ))}\n \n )\n}\n","import ListItem from '@material-ui/core/ListItem'\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport List from '@material-ui/core/List'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport { useTranslation } from 'react-i18next'\n\nconst donateFrame =\n ''\n\nexport default function DonateDialog({ onClose }) {\n const { t } = useTranslation()\n\n return (\n \n {t('Donate')}\n \n \n \n \n \n \n \n \n \n {/* eslint-disable-next-line react/no-danger */}\n
\n \n \n \n\n \n \n \n
\n )\n}\n","import { useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Snackbar from '@material-ui/core/Snackbar'\nimport IconButton from '@material-ui/core/IconButton'\nimport CreditCardIcon from '@material-ui/icons/CreditCard'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { useTranslation } from 'react-i18next'\n\nimport DonateDialog from './DonateDialog'\n\nexport default function DonateSnackbar() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [snackbarOpen, setSnackbarOpen] = useState(true)\n\n const disableSnackbar = () => {\n setSnackbarOpen(false)\n localStorage.setItem('snackbarIsClosed', true)\n }\n\n return (\n <>\n {open && setOpen(false)} />}\n\n \n {\n setOpen(true)\n disableSnackbar()\n }}\n >\n \n {t('Support')}\n \n\n \n \n \n \n }\n />\n \n )\n}\n","import { createGlobalStyle } from 'styled-components'\n\nexport default createGlobalStyle`\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: \"Open Sans\", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n }\n\n button {\n font-family: \"Open Sans\", sans-serif;\n letter-spacing: -0.1px;\n }\n`\n","import { useState } from 'react'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport LibraryAddIcon from '@material-ui/icons/LibraryAdd'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport ListItem from '@material-ui/core/ListItem'\nimport { useTranslation } from 'react-i18next'\n\nimport AddDialog from './AddDialog'\n\nexport default function AddDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n \n \n \n \n \n\n {isDialogOpen && }\n
\n )\n}\n","import styled, { css } from 'styled-components'\nimport { mainColors } from 'style/colors'\nimport { Header } from 'style/DialogStyles'\n\nexport const cacheBeforeReaderColor = '#b3dfc9'\nexport const cacheAfterReaderColor = mainColors.light.primary\n\nexport const SettingsHeader = styled(Header)`\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n`\n\nexport const FooterSection = styled.div`\n ${({\n theme: {\n settingsDialog: { footerBG },\n },\n }) => css`\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ${footerBG};\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n `}\n`\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n\nexport const Content = styled.div`\n ${({\n isLoading,\n theme: {\n settingsDialog: { contentBG },\n },\n }) => css`\n background: ${contentBG};\n overflow: auto;\n flex: 1;\n\n ${isLoading &&\n css`\n min-height: 500px;\n display: grid;\n place-items: center;\n `}\n `}\n`\n\nexport const PreloadCacheValue = styled.div`\n ${({ color }) => css`\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ${color};\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n `}\n`\n\nexport const MainSettingsContent = styled.div`\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n`\nexport const SecondarySettingsContent = styled.div`\n padding: 20px;\n`\n\nexport const StorageButton = styled.div`\n ${({ small, selected }) => css`\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ${!selected &&\n css`\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n `}\n\n ${small\n ? css`\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n `\n : css`\n display: grid;\n place-items: center;\n gap: 10px;\n `}\n `}\n`\n\nexport const StorageIconWrapper = styled.div`\n ${({ selected, small }) => css`\n width: ${small ? '60px' : '150px'};\n height: ${small ? '60px' : '150px'};\n border-radius: 50%;\n background: ${selected ? '#323637' : '#dee3e5'};\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ${small ? '50px' : '90px'};\n height: ${small ? '50px' : '90px'};\n }\n `}\n`\n\nexport const CacheStorageSelector = styled.div`\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n`\n\nexport const SettingSectionLabel = styled.div`\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n`\n\nexport const PreloadCachePercentage = styled.div.attrs(({ value }) => ({\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${cacheBeforeReaderColor} 0%, ${cacheBeforeReaderColor} ${value}%, ${cacheAfterReaderColor} ${value}%, ${cacheAfterReaderColor} 100%)`,\n },\n}))`\n ${({ label, preloadCachePercentage }) => css`\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ${preloadCachePercentage}%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n `}\n`\n","export default {\n CacheSize: 96,\n ReaderReadAHead: 95,\n UseDisk: false,\n UploadRateLimit: 0,\n TorrentsSavePath: '',\n ConnectionsLimit: 23,\n DisableDHT: false,\n DisablePEX: false,\n DisableTCP: false,\n DisableUPNP: false,\n DisableUTP: true,\n DisableUpload: false,\n DownloadRateLimit: 0,\n EnableDebug: false,\n EnableIPv6: false,\n ForceEncrypt: false,\n PeersListenPort: 0,\n PreloadCache: 0,\n RemoveCacheOnDrop: false,\n RetrackersMode: 1,\n TorrentDisconnectTimeout: 30,\n}\n","export const a11yProps = index => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nexport const TabPanel = ({ children, value, index, ...other }) => (\n \n)\n","import { Grid, OutlinedInput, Slider } from '@material-ui/core'\n\nexport default function SliderInput({\n isProMode,\n title,\n value,\n setValue,\n sliderMin,\n sliderMax,\n inputMin,\n inputMax,\n step = 1,\n onBlurCallback,\n}) {\n const onBlur = ({ target: { value } }) => {\n if (value < inputMin) return setValue(inputMin)\n if (value > inputMax) return setValue(inputMax)\n\n onBlurCallback && onBlurCallback(value)\n }\n\n const onInputChange = ({ target: { value } }) => setValue(value === '' ? '' : Number(value))\n const onSliderChange = (_, newValue) => setValue(newValue)\n\n return (\n <>\n
{title}
\n\n \n \n \n \n\n {isProMode && (\n \n \n \n )}\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { USBIcon, RAMIcon } from 'icons'\nimport { FormControlLabel, Switch } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\n\nimport {\n PreloadCacheValue,\n MainSettingsContent,\n StorageButton,\n StorageIconWrapper,\n CacheStorageSelector,\n SettingSectionLabel,\n PreloadCachePercentage,\n cacheBeforeReaderColor,\n cacheAfterReaderColor,\n} from './style'\nimport SliderInput from './SliderInput'\n\nconst CacheStorageLocationLabel = ({ style }) => {\n const { t } = useTranslation()\n\n return (\n \n {t('SettingsDialog.CacheStorageLocation')}\n {t('SettingsDialog.UseDiskDesc')}\n \n )\n}\n\nexport default function PrimarySettingsComponent({\n settings,\n inputForm,\n cachePercentage,\n preloadCachePercentage,\n cacheSize,\n isProMode,\n setCacheSize,\n setCachePercentage,\n setPreloadCachePercentage,\n updateSettings,\n}) {\n const { t } = useTranslation()\n const { UseDisk, TorrentsSavePath, RemoveCacheOnDrop } = settings || {}\n const preloadCacheSize = Math.round((cacheSize / 100) * preloadCachePercentage)\n\n return (\n \n
\n {t('SettingsDialog.CacheSettings')}\n\n \n\n \n
\n {100 - cachePercentage}% ({Math.round((cacheSize / 100) * (100 - cachePercentage))} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheBeforeReaderDesc')}
\n
\n\n \n
\n {cachePercentage}% ({Math.round((cacheSize / 100) * cachePercentage)} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheAfterReaderDesc')}
\n
\n\n
\n\n setCacheSize(Math.round(value / 4) * 4)}\n />\n\n \n\n \n
\n\n {UseDisk ? (\n
\n \n\n
\n updateSettings({ UseDisk: false })}>\n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n \n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n\n \n }\n label={t('SettingsDialog.RemoveCacheOnDrop')}\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RemoveCacheOnDropDesc')}\n
\n
\n \n
\n ) : (\n \n \n\n \n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n updateSettings({ UseDisk: true })}>\n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n )}\n
\n )\n}\n","import { useTranslation } from 'react-i18next'\nimport TextField from '@material-ui/core/TextField'\nimport { FormControlLabel, InputAdornment, InputLabel, Select, Switch } from '@material-ui/core'\n\nimport { SecondarySettingsContent, SettingSectionLabel } from './style'\n\nexport default function SecondarySettingsComponent({ settings, inputForm }) {\n const { t } = useTranslation()\n\n const {\n RetrackersMode,\n TorrentDisconnectTimeout,\n EnableIPv6,\n ForceEncrypt,\n DisableTCP,\n DisableUTP,\n DisableUPNP,\n DisableDHT,\n DisablePEX,\n DisableUpload,\n DownloadRateLimit,\n UploadRateLimit,\n ConnectionsLimit,\n PeersListenPort,\n } = settings || {}\n\n return (\n \n {t('SettingsDialog.AdditionalSettings')}\n\n }\n label='IPv6'\n labelPlacement='start'\n />\n }\n label='TCP (Transmission Control Protocol)'\n labelPlacement='start'\n />\n }\n label='μTP (Micro Transport Protocol)'\n labelPlacement='start'\n />\n }\n label='PEX (Peer Exchange)'\n labelPlacement='start'\n />\n }\n label={t('SettingsDialog.ForceEncrypt')}\n labelPlacement='start'\n />\n {t('Seconds')},\n }}\n value={TorrentDisconnectTimeout}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n
\n }\n label={t('SettingsDialog.DHT')}\n labelPlacement='start'\n />\n
\n {t('Kilobytes')},\n }}\n value={DownloadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n }\n label={t('SettingsDialog.Upload')}\n labelPlacement='start'\n />\n {t('Kilobytes')},\n }}\n value={UploadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n }\n label='UPnP (Universal Plug and Play)'\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RetrackersMode')}\n \n \n \n \n \n \n
\n
\n )\n}\n","import axios from 'axios'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport { FormControlLabel, useMediaQuery, useTheme } from '@material-ui/core'\nimport { settingsHost } from 'utils/Hosts'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport AppBar from '@material-ui/core/AppBar'\nimport Tabs from '@material-ui/core/Tabs'\nimport Tab from '@material-ui/core/Tab'\nimport SwipeableViews from 'react-swipeable-views'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nimport { SettingsHeader, FooterSection, Content } from './style'\nimport defaultSettings from './defaultSettings'\nimport { a11yProps, TabPanel } from './tabComponents'\nimport PrimarySettingsComponent from './PrimarySettingsComponent'\nimport SecondarySettingsComponent from './SecondarySettingsComponent'\n\nexport default function SettingsDialog({ handleClose }) {\n const { t } = useTranslation()\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n const { direction } = useTheme()\n\n const [settings, setSettings] = useState()\n const [selectedTab, setSelectedTab] = useState(0)\n const [cacheSize, setCacheSize] = useState(32)\n const [cachePercentage, setCachePercentage] = useState(40)\n const [preloadCachePercentage, setPreloadCachePercentage] = useState(0)\n const [isProMode, setIsProMode] = useState(JSON.parse(localStorage.getItem('isProMode')) || false)\n\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => {\n setSettings({ ...data, CacheSize: data.CacheSize / (1024 * 1024) })\n })\n }, [])\n\n const handleSave = () => {\n handleClose()\n const sets = JSON.parse(JSON.stringify(settings))\n sets.CacheSize = cacheSize * 1024 * 1024\n sets.ReaderReadAHead = cachePercentage\n sets.PreloadCache = preloadCachePercentage\n axios.post(settingsHost(), { action: 'set', sets })\n }\n\n const inputForm = ({ target: { type, value, checked, id } }) => {\n const sets = JSON.parse(JSON.stringify(settings))\n\n if (type === 'number' || type === 'select-one') {\n sets[id] = Number(value)\n } else if (type === 'checkbox') {\n if (\n id === 'DisableTCP' ||\n id === 'DisableUTP' ||\n id === 'DisableUPNP' ||\n id === 'DisableDHT' ||\n id === 'DisablePEX' ||\n id === 'DisableUpload'\n )\n sets[id] = Boolean(!checked)\n else sets[id] = Boolean(checked)\n } else if (type === 'url') {\n sets[id] = value\n }\n setSettings(sets)\n }\n\n const { CacheSize, ReaderReadAHead, PreloadCache } = settings || {}\n\n useEffect(() => {\n if (isNaN(CacheSize) || isNaN(ReaderReadAHead) || isNaN(PreloadCache)) return\n\n setCacheSize(CacheSize)\n setCachePercentage(ReaderReadAHead)\n setPreloadCachePercentage(PreloadCache)\n }, [CacheSize, ReaderReadAHead, PreloadCache])\n\n const updateSettings = newProps => setSettings({ ...settings, ...newProps })\n const handleChange = (_, newValue) => setSelectedTab(newValue)\n const handleChangeIndex = index => setSelectedTab(index)\n\n return (\n \n \n
{t('SettingsDialog.Settings')}
\n {\n setIsProMode(checked)\n localStorage.setItem('isProMode', checked)\n if (!checked) setSelectedTab(0)\n }}\n style={{ color: 'white' }}\n />\n }\n label={t('SettingsDialog.ProMode')}\n />\n
\n\n \n \n \n\n \n
{t('SettingsDialog.Tabs.Additional')}
\n {!isProMode &&
{t('SettingsDialog.Tabs.AdditionalDisabled')}
}\n \n }\n {...a11yProps(1)}\n />\n \n
\n\n \n {settings ? (\n <>\n \n \n \n \n\n \n \n \n \n \n ) : (\n \n )}\n \n\n \n \n\n {\n setCacheSize(defaultSettings.CacheSize)\n setCachePercentage(defaultSettings.ReaderReadAHead)\n setPreloadCachePercentage(defaultSettings.PreloadCache)\n updateSettings(defaultSettings)\n }}\n color='secondary'\n variant='outlined'\n >\n {t('SettingsDialog.ResetToDefault')}\n \n\n \n \n
\n )\n}\n","import ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useState } from 'react'\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport { useTranslation } from 'react-i18next'\n\nimport SettingsDialog from './SettingsDialog'\n\nexport default function SettingsDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n \n \n \n \n \n\n {isDialogOpen && }\n
\n )\n}\n","import { Button, Dialog, DialogActions, DialogTitle } from '@material-ui/core'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DeleteIcon from '@material-ui/icons/Delete'\nimport { useState } from 'react'\nimport { torrentsHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\n\nconst fnRemoveAll = () => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'list' }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n .then(res => res.json())\n .then(json => {\n json.forEach(torr => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'rem', hash: torr.hash }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n })\n })\n}\n\nexport default function RemoveAll({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n return (\n <>\n \n \n \n \n\n \n \n\n \n {t('DeleteTorrents?')}\n \n \n\n {\n fnRemoveAll()\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const DialogWrapper = styled.div`\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n`\n\nexport const HeaderSection = styled.section`\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n`\n\nexport const ThanksSection = styled.section`\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n`\n\nexport const Section = styled.section`\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n`\n\nexport const FooterSection = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n`\n\nexport const LinkWrapper = styled.a`\n ${({ isLink }) => css`\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ${isLink\n ? css`\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n `\n : css`\n cursor: default;\n `}\n `}\n`\n\nexport const LinkIcon = styled.div`\n display: grid;\n margin-right: 10px;\n`\n","import { GitHub as GitHubIcon } from '@material-ui/icons'\n\nimport { LinkWrapper, LinkIcon } from './style'\n\nexport default function LinkComponent({ name, link }) {\n return (\n \n {link && (\n \n \n \n )}\n\n
{name}
\n
\n )\n}\n","import axios from 'axios'\nimport { useEffect, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport InfoIcon from '@material-ui/icons/Info'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useTranslation } from 'react-i18next'\nimport { useMediaQuery } from '@material-ui/core'\nimport { echoHost } from 'utils/Hosts'\n\nimport LinkComponent from './LinkComponent'\nimport { DialogWrapper, HeaderSection, ThanksSection, Section, FooterSection } from './style'\n\nexport default function AboutDialog() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n return (\n <>\n setOpen(true)}>\n \n \n \n \n \n\n setOpen(false)}\n aria-labelledby='form-dialog-title'\n fullScreen={fullScreen}\n maxWidth='xl'\n >\n \n \n
{t('About')}
\n {torrServerVersion}\n ts-icon\n
\n\n
\n {t('ThanksToEveryone')}\n\n
\n {t('Links')}\n\n
\n \n \n
\n
\n\n
\n {t('SpecialThanks')}\n\n
\n \n \n \n \n \n
\n
\n
\n\n \n \n \n
\n \n \n )\n}\n","import { useState } from 'react'\nimport { Button, Dialog, DialogActions, DialogTitle, ListItem, ListItemIcon, ListItemText } from '@material-ui/core'\nimport { PowerSettingsNew as PowerSettingsNewIcon } from '@material-ui/icons'\nimport { shutdownHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\n\nexport default function CloseServer({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n return (\n <>\n \n \n \n \n\n \n \n\n \n {t('CloseServer?')}\n \n \n\n {\n fetch(shutdownHost())\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('TurnOff')}\n \n \n \n \n )\n}\n","import Divider from '@material-ui/core/Divider'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { CreditCard as CreditCardIcon } from '@material-ui/icons'\nimport List from '@material-ui/core/List'\nimport { useTranslation } from 'react-i18next'\nimport AddDialogButton from 'components/Add'\nimport SettingsDialog from 'components/Settings'\nimport RemoveAll from 'components/RemoveAll'\nimport AboutDialog from 'components/About'\nimport CloseServer from 'components/CloseServer'\nimport { memo } from 'react'\n\nimport { AppSidebarStyle } from './style'\n\nconst Sidebar = ({ isDrawerOpen, setIsDonationDialogOpen, isOffline, isLoading }) => {\n const { t } = useTranslation()\n\n return (\n \n \n \n\n \n \n\n \n\n \n \n\n \n\n setIsDonationDialogOpen(true)}>\n \n \n \n\n \n \n\n \n \n \n )\n}\n\nexport default memo(Sidebar)\n","import CssBaseline from '@material-ui/core/CssBaseline'\nimport { createContext, useEffect, useState } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport IconButton from '@material-ui/core/IconButton'\nimport {\n Menu as MenuIcon,\n Close as CloseIcon,\n Brightness4 as Brightness4Icon,\n Brightness5 as Brightness5Icon,\n BrightnessAuto as BrightnessAutoIcon,\n} from '@material-ui/icons'\nimport { echoHost } from 'utils/Hosts'\nimport Div100vh from 'react-div-100vh'\nimport axios from 'axios'\nimport TorrentList from 'components/TorrentList'\nimport DonateSnackbar from 'components/Donate'\nimport DonateDialog from 'components/Donate/DonateDialog'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { ThemeProvider as MuiThemeProvider } from '@material-ui/core/styles'\nimport { ThemeProvider as StyledComponentsThemeProvider } from 'styled-components'\nimport { useQuery } from 'react-query'\nimport { getTorrents } from 'utils/Utils'\nimport GlobalStyle from 'style/GlobalStyle'\n\nimport { AppWrapper, AppHeader, HeaderToggle } from './style'\nimport Sidebar from './Sidebar'\nimport { lightTheme, THEME_MODES, useMaterialUITheme } from '../../style/materialUISetup'\nimport getStyledComponentsTheme from '../../style/getStyledComponentsTheme'\n\nexport const DarkModeContext = createContext()\n\nexport default function App() {\n const [isDrawerOpen, setIsDrawerOpen] = useState(false)\n const [isDonationDialogOpen, setIsDonationDialogOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n\n const [isDarkMode, currentThemeMode, updateThemeMode, muiTheme] = useMaterialUITheme()\n const [currentLang, changeLang] = useChangeLanguage()\n const [isOffline, setIsOffline] = useState(false)\n const { data: torrents, isLoading } = useQuery('torrents', getTorrents, {\n retry: 1,\n refetchInterval: 1000,\n onError: () => setIsOffline(true),\n onSuccess: () => setIsOffline(false),\n })\n\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n return (\n <>\n \n\n \n \n \n \n\n {/* Div100vh - iOS WebKit fix */}\n \n \n \n setIsDrawerOpen(!isDrawerOpen)}\n style={{ marginRight: '6px' }}\n >\n {isDrawerOpen ? : }\n \n\n \n TorrServer {torrServerVersion}\n \n\n \n {\n if (currentThemeMode === THEME_MODES.LIGHT) updateThemeMode(THEME_MODES.DARK)\n if (currentThemeMode === THEME_MODES.DARK) updateThemeMode(THEME_MODES.AUTO)\n if (currentThemeMode === THEME_MODES.AUTO) updateThemeMode(THEME_MODES.LIGHT)\n }}\n >\n {currentThemeMode === THEME_MODES.LIGHT ? (\n \n ) : currentThemeMode === THEME_MODES.DARK ? (\n \n ) : (\n \n )}\n \n\n (currentLang === 'en' ? changeLang('ru') : changeLang('en'))}>\n {currentLang === 'en' ? 'EN' : 'RU'}\n \n \n \n\n \n\n \n\n \n {isDonationDialogOpen && setIsDonationDialogOpen(false)} />}\n \n\n {!JSON.parse(localStorage.getItem('snackbarIsClosed')) && }\n \n \n \n \n \n \n )\n}\n","import { mainColors, themeColors } from './colors'\n\nexport default type => ({ ...themeColors[type], ...mainColors[type] })\n","import { StrictMode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { QueryClientProvider, QueryClient } from 'react-query'\n\nimport App from './components/App'\nimport 'i18n'\n\nconst queryClient = new QueryClient()\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'),\n)\n"],"sourceRoot":""} \ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js b/server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js new file mode 100644 index 0000000..a75491e --- /dev/null +++ b/server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js @@ -0,0 +1,2 @@ +(this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[]).push([[0],{173:function(e){e.exports=JSON.parse('{"About":"About","Actions":"Actions","Add":"Add","AddDialog":{"AddPosterLinkInput":"Poster link","AddTorrentSourceNotification":"First add your torrent source","AppendFile":{"Or":"OR","ClickOrDrag":"CLICK / DRAG & DROP (.torrent)"},"CustomTorrentTitle":"Custom title (optional)","CustomTorrentTitleHelperText":"Write custom title to find poster","HashExists":"This torrent is already in database","OriginalTorrentTitle":"Original torrent title","TitleBlank":"Title (blank for orig. torrent title)","TorrentSourceLink":"Torrent source","TorrentSourceOptions":"magnet / hash / .torrent file link","WrongTorrentSource":"Wrong torrent source"},"AddFromLink":"Add Torrent","AddNewTorrent":"Add new torrent","B":"B","bps":"bps","Buffer":"Preload Buffer / Cache","BufferNote":"Set Preload Cache Before Play > 32 MB in settings to change preload size","Cache":"Cache","Cancel":"Cancel","Clear":"Clear","Close":"Close","CloseServer?":"Do you want to turn off server?","CloseServer":"Turn Off","CopyHash":"Copy Hash","CopyLink":"Copy link","Data":"Data","Delete":"Delete","DeleteTorrent?":"Delete Torrent?","DeleteTorrents?":"Delete All Torrents?","DetailedCacheView":{"button":"Detailed Cache View","header":"$t(DetailedCacheView.button)"},"Details":"Details","Donate?":"Want to donate?","Donate":"Donate","DownloadPlaylist":"Download Playlist","DownloadSpeed":"Download speed","Drop":"Drop","DropTorrent":"Reset Torrent","Edit":"Edit","EditTorrent":"Edit torrent","Episode":"Episode","FromLatestFile":"From Latest File","Full":"Full","GB":"GB","Gbps":"Gbps","Host":"Host","Info":"Info","KB":"KB","kbps":"kbps","Kilobytes":"Kilobytes","LatestFilePlayed":"Latest file played:","Links":"Links","MB":"MB","Mbps":"Mbps","Name":"Name","NoTorrentsAdded":"No torrents added","Offline":"Offline","OK":"OK","OpenLink":"Open link","Peers":"Peers","PiecesCount":"Pieces count","PiecesLength":"Pieces length","Preload":"Preload","ProjectSource":"Project page","Releases":"TorrServer Releases","RemoveAll":"Remove All","RemoveViews":"Remove View States","Resolution":"Resolution","Save":"Save","ScrollDown":"scroll down","Season":"Season","Sec":"s","Seconds":"Seconds","SelectSeason":"Select Season","SettingsDialog":{"AcceptPeerCon":"Accept Peer Connections","AddRetrackers":"Add retrackers","AdditionalSettings":"Additional Settings","CacheBeforeReaderDesc":"from cache will be saved before currently played frame","CacheAfterReaderDesc":"from cache will be loaded after currently played frame","CacheSize":"Cache Size","CacheSettings":"Cache Settings","CacheStorageLocation":"Cache Storage Location","ConnectionsLimit":"Connections Limit","ConnectionsLimitHint":"20-25 recommended","DHT":"DHT (Distributed Hash Table)","DhtConnectionLimit":"DHT Connection Limit","Disk":"Disk","DontAddRetrackers":"Don`t add retrackers","DownloadRateLimit":"Download Rate Limit","ForceEncrypt":"Force Encrypt Headers","PeersListenPort":"Peers Listen Port","PeersListenPortHint":"1024 - 65535, 0 - auto","PreloadCache":"Preload Cache Before Play","ProMode":"PRO mode","RAM":"RAM","ReaderReadAHead":"Readahead Cache (5-100%, rec. 95%)","RemoveCacheOnDrop":"Remove Cache from Disk on Drop Torrent","RemoveCacheOnDropDesc":"If disabled, cache removed on delete torrent.","RemoveRetrackers":"Remove retrackers","ReplaceRetrackers":"Replace retrackers","RetrackersMode":"Retrackers Mode","ResetToDefault":"Reset to default","Settings":"Settings","TorrentDisconnectTimeout":"Torrent Disconnect Timeout","TorrentsSavePath":"Torrents Save Path","Upload":"Upload (not recommended to disable)","UploadRateLimit":"Upload Rate Limit","UseDiskDesc":"Better use RAM or external storage on flash-based devices","Tabs":{"Main":"Main","Additional":"Additional","AdditionalDisabled":"(enable PRO mode)"}},"Size":"Size","SpecialThanks":"Special Thanks","Speed":"Speed","Support":"Support","TB":"TB","Tbps":"Tbps","ThanksToEveryone":"Thanks to everyone who tested and helped.","TorrentAdded":"Added","TorrentClosed":"\u0421losed","TorrentContent":"Torrent Content","TorrentDetails":"Torrent Details","TorrentGettingInfo":"Getting Info","TorrentInDb":"In DB","TorrentPreload":"Preload","TorrentSize":"Torrent size","TorrentState":"Torrent State","TorrentStatus":"Torrent Status","TorrentWorking":"Active","TurnOff":"Turn Off","UploadFile":"Upload File","UploadSpeed":"Upload speed","Viewed":"Viewed"}')},174:function(e){e.exports=JSON.parse('{"About":"\u041e \u0441\u0435\u0440\u0432\u0435\u0440\u0435","Actions":"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddDialog":{"AddPosterLinkInput":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u043e\u0441\u0442\u0435\u0440","AddTorrentSourceNotification":"\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a","AppendFile":{"Or":"\u0418\u041b\u0418","ClickOrDrag":"\u041d\u0410\u0416\u041c\u0418\u0422\u0415 / \u041f\u0415\u0420\u0415\u0422\u0410\u0429\u0418\u0422\u0415 \u0424\u0410\u0419\u041b (.torrent)"},"CustomTorrentTitle":"C\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)","CustomTorrentTitleHelperText":"\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0441\u0442\u0435\u0440","HashExists":"\u042d\u0442\u043e\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445","OriginalTorrentTitle":"\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TitleBlank":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043f\u0443\u0441\u0442\u043e\u0435 - \u043e\u0440\u0438\u0433. \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430)","TorrentSourceLink":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentSourceOptions":"magnet-\u0441\u0441\u044b\u043b\u043a\u0430 / \u0445\u0435\u0448 / \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 .torrent \u0444\u0430\u0439\u043b","WrongTorrentSource":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a"},"AddFromLink":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddNewTorrent":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0442\u043e\u0440\u0440\u0435\u043d\u0442","B":"\u0411","bps":"\u0431\u0438\u0442/c","Buffer":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 / \u041a\u0435\u0448","BufferNote":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 > 32 \u041c\u0411 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Cache":"\u041a\u0435\u0448","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","CloseServer?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440?","CloseServer":"\u0412\u044b\u043a\u043b. \u0441\u0435\u0440\u0432\u0435\u0440","CopyHash":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u0435\u0448","CopyLink":"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c","Data":"\u0414\u0430\u043d\u043d\u044b\u0435","Delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","DeleteTorrent?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442?","DeleteTorrents?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u044b?","DetailedCacheView":{"button":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u0435\u0448\u0430","header":"\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u0435\u0448\u0430"},"Details":"\u0418\u043d\u0444\u043e","Donate?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442?","Donate":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430","DownloadPlaylist":"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","DownloadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Drop":"\u0421\u0431\u0440\u043e\u0441","DropTorrent":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Edit":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c","EditTorrent":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Episode":"\u0421\u0435\u0440\u0438\u044f","FromLatestFile":"C \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430","Full":"\u041f\u043e\u043b\u043d\u044b\u0439","GB":"\u0413\u0411","Gbps":"\u0413\u0431\u0438\u0442/c","Host":"\u0425\u043e\u0441\u0442","Info":"\u0418\u043d\u0444\u043e","KB":"\u041a\u0411","kbps":"\u043a\u0431\u0438\u0442/\u0441","Kilobytes":"\u041a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u044b","LatestFilePlayed":"\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:","Links":"\u0421\u0441\u044b\u043b\u043a\u0438","MB":"\u041c\u0411","Mbps":"\u041c\u0431\u0438\u0442/c","Name":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","NoTorrentsAdded":"\u041d\u0435\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u043e\u0432","Offline":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d","OK":"OK","OpenLink":"\u041e\u0442\u043a\u0440\u044b\u0442\u044c","Peers":"\u041f\u0438\u0440\u044b","PiecesCount":"\u041a\u043e\u043b-\u0432\u043e \u0431\u043b\u043e\u043a\u043e\u0432","PiecesLength":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430","Preload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440.","ProjectSource":"\u0421\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430","Releases":"\u0420\u0435\u043b\u0438\u0437\u044b TorrServer","RemoveAll":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435","RemoveViews":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b","Resolution":"\u0420\u0430\u0437\u0440\u0435\u0448.","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","ScrollDown":"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u0437","Season":"\u0421\u0435\u0437\u043e\u043d","Sec":"c","Seconds":"\u0421\u0435\u043a\u0443\u043d\u0434\u044b","SelectSeason":"\u0412\u044b\u0431\u043e\u0440 \u0441\u0435\u0437\u043e\u043d\u0430","SettingsDialog":{"AcceptPeerCon":"\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","AddRetrackers":"\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c","AdditionalSettings":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","CacheBeforeReaderDesc":"\u043e\u0442 \u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheAfterReaderDesc":"\u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0435\u0440\u0435\u0434\u0438 \u043e\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0435\u0448\u0430","CacheSettings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0435\u0448\u0430","CacheStorageLocation":"\u041c\u0435\u0441\u0442\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","ConnectionsLimit":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","ConnectionsLimitHint":"\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f 20-25","DHT":"DHT (Distributed Hash Table)","DhtConnectionLimit":"\u041b\u0438\u043c\u0438\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 DHT","Disk":"\u041f\u0417\u0423 / \u041d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c","DontAddRetrackers":"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c","DownloadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","ForceEncrypt":"\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432","PeersListenPort":"\u041f\u043e\u0440\u0442 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439","PeersListenPortHint":"1024 - 65535, 0 - \u0430\u0432\u0442\u043e","PreloadCache":"\u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","ProMode":"\u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c","RAM":"\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c","ReaderReadAHead":"\u041e\u043f\u0435\u0440\u0435\u0436\u0430\u044e\u0449\u0438\u0439 \u043a\u0435\u0448 (5-100%, \u0440\u0435\u043a. 95%)","RemoveCacheOnDrop":"\u041e\u0447\u0438\u0449\u0430\u0442\u044c \u043a\u0435\u0448 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","RemoveCacheOnDropDesc":"\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u043a\u0435\u0448 \u043e\u0447\u0438\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430.","RemoveRetrackers":"\u0423\u0434\u0430\u043b\u044f\u0442\u044c","ReplaceRetrackers":"\u0417\u0430\u043c\u0435\u043d\u044f\u0442\u044c","RetrackersMode":"\u0420\u0435\u0442\u0440\u0435\u043a\u0435\u0440\u044b","ResetToDefault":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","TorrentDisconnectTimeout":"\u0422\u0430\u0439\u043c-\u0430\u0443\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentsSavePath":"\u041f\u0443\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","Upload":"\u041e\u0442\u0434\u0430\u0447\u0430 (\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c)","UploadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u0434\u0430\u0447\u0438","UseDiskDesc":"\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 flash-\u043f\u0430\u043c\u044f\u0442\u044c\u044e","Tabs":{"Main":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435","Additional":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435","AdditionalDisabled":"(\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c)"}},"Size":"\u0420\u0430\u0437\u043c\u0435\u0440","SpecialThanks":"\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e","Speed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c","Support":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c","TB":"\u0422\u0411","Tbps":"\u0422\u0431\u0438\u0442/\u0441","ThanksToEveryone":"\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u043b!","TorrentAdded":"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d","TorrentClosed":"\u0417\u0430\u043a\u0440\u044b\u0442","TorrentContent":"\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentDetails":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0435","TorrentGettingInfo":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e","TorrentInDb":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442 \u0432 \u0411\u0414","TorrentPreload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430","TorrentSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentState":"\u0414\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentStatus":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentWorking":"\u0410\u043a\u0442\u0438\u0432\u0435\u043d","TurnOff":"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c","UploadFile":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b","UploadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u0434\u0430\u0447\u0438","Viewed":"\u041f\u0440\u043e\u0441\u043c."}')},330:function(e,t){},333:function(e,t){},335:function(e,t){},337:function(e,t){},382:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n(18),i=n.n(r),o=n(475),c=n(188),l=n(10),s=n(470),d=n(64),p=n(386),j=n(453),b=n(471),u=n(472),h=n(473),x=n(474),g=window.location,m=g.protocol,O=g.hostname,f=g.port,C="".concat(m,"//").concat(O).concat(f?":".concat(f):""),v=function(){return"".concat(C,"/torrents")},y=function(){return"".concat(C,"/viewed")},w=function(){return"".concat(C,"/settings")},S=function(){return"".concat(C,"/stream")},k=function(){return"".concat(C,"/echo")},D=n(171),T=n(21),P=n.n(T),M=n(23),B=n(451),R=n(452),L=n(454),A=n(72),z=n.n(A),F=n(100),E=n(74),G=n(126),N=n(86),I=n(172),H=n(173),U=n(174);G.a.use(I.a).use(N.e).init({fallbackLng:"en",interpolation:{escapeValue:!1},resources:{en:{translation:H},ru:{translation:U}}});var W=G.a;function V(e){if(!e)return"";var t=Math.floor(Math.log(e)/Math.log(1024));return"".concat(1*(e/Math.pow(1024,t)).toFixed(2)," ").concat([W.t("B"),W.t("KB"),W.t("MB"),W.t("GB"),W.t("TB")][t])}function Z(e){if(!e)return"";var t=Math.floor(Math.log(8*e)/Math.log(1e3));return"".concat(1*(8*e/Math.pow(1e3,t)).toFixed(0)," ").concat([W.t("bps"),W.t("kbps"),W.t("Mbps"),W.t("Gbps"),W.t("Tbps")][t])}function _(e){return e&&e.connected_seeders?"".concat(e.connected_seeders," \xb7 ").concat(e.active_peers," / ").concat(e.total_peers):null}var K=function(e){var t=e;[["(",")"],["[","]"],["{","}"]].forEach((function(e){var n="\\".concat(e[0]),a=new RegExp(n,"g"),r=Object(E.a)(t.matchAll(a)).length,i="\\".concat(e[1]),o=new RegExp(i,"g");if(r!==Object(E.a)(t.matchAll(o)).length){var c="(\\".concat(e[0],")(?!.*\\1).*"),l=new RegExp(c,"g");t=t.replace(l,"")}}));var n=!!t.match(/\.{3}$/g),a=t.replace(/[\\.| ]+$/g,"").trim();return n?"".concat(a,".."):a},J=function(){var e=Object(F.a)(z.a.mark((function e(){var t,n;return z.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,P.a.post(v(),{action:"list"});case 3:return t=e.sent,n=t.data,e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),new Error(null);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(){return e.apply(this,arguments)}}(),Y=n(32),$=n(1),X=function(e){var t=e.color,n=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"80px",width:"80px",fill:t||n,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",version:"1.1",x:"0px",y:"0px",viewBox:"0 0 100 100",enableBackground:"new 0 0 100 100",xmlSpace:"preserve",children:Object($.jsxs)("g",{children:[Object($.jsx)("path",{d:"M18.293,93.801c0.066,0.376,0.284,0.718,0.597,0.937c0.313,0.219,0.708,0.307,1.085,0.241l70.058-12.353 c0.376-0.066,0.718-0.284,0.937-0.597c0.219-0.313,0.307-0.708,0.24-1.085l-9.502-53.891c-0.139-0.79-0.892-1.317-1.682-1.178 l-19.402,3.421L47.997,14.16c0.241-0.706,0.375-1.456,0.375-2.229c0-0.399-0.035-0.804-0.106-1.209C47.671,7.363,44.757,5,41.455,5 c-0.4,0-0.804,0.035-1.209,0.106h0c-3.359,0.595-5.723,3.509-5.723,6.812c0,0.4,0.035,0.804,0.106,1.209 c0.178,1.005,0.567,1.918,1.109,2.709l-6.875,19.061L9.968,38.228c-0.79,0.139-1.317,0.892-1.177,1.682L18.293,93.801z M40.75,7.966L40.75,7.966c0.239-0.042,0.474-0.062,0.705-0.062c1.909,0,3.612,1.373,3.953,3.324v0 c0.042,0.238,0.062,0.473,0.062,0.704c0,1.908-1.373,3.612-3.323,3.953h0.001c-0.238,0.042-0.473,0.062-0.705,0.062 c-1.908,0-3.612-1.373-3.953-3.323c-0.042-0.238-0.062-0.473-0.062-0.705C37.427,10.01,38.799,8.306,40.75,7.966z M38.059,17.96 c1.012,0.569,2.17,0.89,3.383,0.89c0.399,0,0.804-0.034,1.208-0.106h0.001c1.48-0.263,2.766-0.976,3.743-1.974l10.935,13.108 L32.16,34.315L38.059,17.96z M29.978,37.648c0.136-0.004,0.268-0.029,0.396-0.07l29.75-5.246c0.134-0.006,0.266-0.027,0.395-0.07 l18.582-3.277l8.998,51.031L20.9,91.867l-8.998-51.032L29.978,37.648z"}),Object($.jsx)("path",{d:"M49.984,75.561c0.809,0,1.627-0.065,2.449-0.199l0.001,0c7.425-1.213,12.701-7.627,12.701-14.919 c0-0.809-0.065-1.627-0.199-2.449c-1.213-7.425-7.626-12.701-14.919-12.701c-0.808,0-1.627,0.065-2.45,0.199 c-7.425,1.213-12.701,7.626-12.701,14.918c0,0.808,0.065,1.627,0.199,2.449C36.278,70.284,42.692,75.561,49.984,75.561z M51.967,72.496c-0.668,0.109-1.33,0.161-1.983,0.161c-5.883,0-11.079-4.265-12.053-10.265c-0.109-0.668-0.161-1.33-0.161-1.983 c0-2.108,0.555-4.123,1.534-5.892l19.693,14.176C57.206,70.645,54.782,72.039,51.967,72.496z M48.034,48.357L48.034,48.357 c0.668-0.109,1.329-0.161,1.983-0.161c5.882,0,11.079,4.265,12.053,10.265c0.109,0.667,0.161,1.329,0.161,1.983 c0,2.109-0.556,4.127-1.536,5.897L41.001,52.163C42.791,50.21,45.217,48.814,48.034,48.357z"}),Object($.jsx)("polygon",{points:"47.567,45.492 47.567,45.492 47.568,45.491 "})]})})},q=function(){var e=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"100px",width:"100px",fill:e,viewBox:"0 0 452 452",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:Object($.jsxs)("g",{id:"#000000",children:[Object($.jsx)("path",{opacity:"1.00",d:" M 210.49 18.69 C 244.92 16.12 280.02 22.13 311.46 36.47 C 344.90 51.54 374.16 75.69 395.41 105.58 C 415.62 133.87 428.55 167.34 432.48 201.89 C 438.07 248.86 427.02 297.61 401.45 337.43 C 382.92 366.59 357.02 391.04 326.80 407.80 C 300.81 422.31 271.64 431.08 241.96 433.26 C 207.37 435.97 172.14 429.83 140.54 415.51 C 109.95 401.69 82.82 380.33 62.16 353.86 C 39.25 324.67 24.38 289.21 19.78 252.38 C 14.94 214.51 20.65 175.31 36.47 140.54 C 54.11 101.38 84.24 67.99 121.37 46.39 C 148.44 30.52 179.19 20.98 210.49 18.69 M 213.46 36.60 C 178.91 38.80 145.03 50.71 116.76 70.72 C 84.67 93.21 59.84 125.88 46.91 162.88 C 34.87 196.99 32.96 234.54 41.25 269.73 C 48.89 302.45 65.53 332.98 88.79 357.21 C 113.91 383.56 146.78 402.45 182.25 410.72 C 216.67 418.86 253.37 417.21 286.87 405.85 C 329.85 391.49 367.13 361.01 389.89 321.85 C 406.02 294.41 414.96 262.84 415.73 231.03 C 416.71 196.59 408.11 161.91 390.97 132.00 C 372.31 99.13 343.57 72.09 309.61 55.49 C 279.95 40.89 246.43 34.40 213.46 36.60 Z"}),Object($.jsx)("path",{opacity:"1.00",d:" M 217.02 117.63 C 223.01 117.45 228.99 117.45 234.98 117.63 C 235.16 150.72 234.93 183.81 235.09 216.89 C 268.18 217.03 301.28 216.82 334.38 216.99 C 334.57 222.99 334.57 229.00 334.38 235.01 C 301.28 235.18 268.18 234.97 235.09 235.11 C 234.93 268.19 235.16 301.28 234.98 334.37 C 228.99 334.55 223.00 334.55 217.02 334.37 C 216.84 301.28 217.07 268.19 216.92 235.11 C 183.82 234.97 150.72 235.17 117.62 235.01 C 117.43 229.00 117.43 222.99 117.62 216.99 C 150.72 216.82 183.82 217.03 216.91 216.89 C 217.07 183.81 216.84 150.72 217.02 117.63 Z"})]})})},Q=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"96.96632385253906 377.9800109863281 873.03369140625 310.9999694824219",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 603.05 378.50 C 648.01 378.10 692.99 378.30 737.96 378.24 C 746.80 377.82 755.66 378.04 764.51 378.02 C 764.49 396.01 764.50 414.00 764.50 432.00 C 833.00 432.01 901.50 431.99 970.00 432.00 C 970.00 499.67 970.00 567.33 970.00 635.00 C 941.01 635.01 912.02 634.98 883.04 635.01 C 868.37 635.70 853.70 634.86 839.03 635.00 C 814.19 635.00 789.35 634.99 764.50 635.00 C 764.50 652.99 764.49 670.99 764.51 688.98 C 722.02 688.64 679.51 688.76 637.01 688.76 C 610.36 688.24 583.70 688.61 557.04 688.50 C 535.36 688.64 513.69 688.06 492.00 688.25 C 467.01 688.45 442.03 687.89 417.04 688.00 C 393.35 688.06 369.67 687.54 345.97 687.76 C 331.65 687.28 317.32 687.58 303.00 687.51 C 287.69 686.89 272.35 687.61 257.03 686.99 C 244.25 687.26 231.37 686.92 218.84 684.09 C 183.39 676.56 151.36 655.48 129.16 627.00 C 110.45 603.11 98.57 573.55 97.40 543.09 C 95.46 518.81 100.09 494.17 110.06 471.99 C 126.89 434.21 159.00 403.08 198.12 389.13 C 227.91 377.22 260.63 379.63 292.01 379.76 C 308.00 379.13 324.02 379.87 340.01 379.25 C 355.65 379.17 371.30 379.41 386.95 379.13 C 409.62 378.70 432.32 379.37 455.00 378.74 C 504.35 378.92 553.69 378.31 603.05 378.50 M 348.01 411.51 C 320.98 411.52 293.95 411.45 266.93 411.54 C 256.91 412.17 246.82 411.10 236.84 412.46 C 208.12 415.88 181.14 430.38 161.51 451.48 C 144.71 469.43 133.29 492.57 130.42 517.07 C 124.64 554.31 138.80 593.31 165.32 619.73 C 177.83 632.43 193.39 641.88 210.05 648.05 C 228.40 654.56 248.11 655.87 267.42 655.59 C 319.94 655.19 372.45 655.94 424.97 655.75 C 450.32 655.57 475.67 656.17 501.02 656.00 C 525.32 656.12 549.63 655.73 573.92 656.26 C 626.62 656.05 679.30 656.63 732.00 656.50 C 732.00 574.50 732.00 492.50 732.00 410.51 C 689.66 410.38 647.34 410.94 605.01 410.75 C 587.68 410.55 570.37 411.13 553.05 411.00 C 526.36 411.00 499.67 411.01 472.98 411.00 C 431.33 411.69 389.65 410.81 348.01 411.51 M 764.49 464.27 C 764.51 510.42 764.51 556.58 764.49 602.73 C 822.24 602.77 879.99 602.74 937.74 602.75 C 938.25 556.59 937.90 510.41 937.99 464.25 C 880.16 464.27 822.32 464.23 764.49 464.27 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.49 484.02 C 853.57 483.79 864.63 484.32 875.71 484.25 C 876.25 495.35 875.68 506.46 875.04 517.54 C 864.40 517.59 853.77 516.92 843.13 517.38 C 842.74 516.32 842.40 515.20 842.48 514.06 C 842.50 504.04 842.50 494.03 842.49 484.02 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 287.02 517.49 C 345.02 517.51 403.02 517.49 461.02 517.50 C 499.18 517.57 537.34 517.29 575.49 517.75 C 575.51 528.25 575.51 538.75 575.49 549.25 C 531.01 549.74 486.52 549.41 442.04 549.50 C 390.37 549.51 338.69 549.49 287.02 549.51 C 286.99 538.84 286.99 528.16 287.02 517.49 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.78 549.74 C 853.53 549.91 864.26 549.51 875.01 549.44 C 875.73 560.52 876.27 571.65 875.71 582.75 C 864.63 582.80 853.57 583.17 842.49 582.99 C 842.69 571.91 842.12 560.80 842.78 549.74 Z"})]})},ee=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"13.928732872009277 69.97769927978516 172.15252685546875 60.067893981933594",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 18.20 70.32 C 19.46 70.07 20.73 69.96 22.01 69.98 C 74.36 70.03 126.72 69.97 179.08 70.01 C 182.16 69.72 185.50 71.74 185.82 74.99 C 186.15 79.61 186.20 84.29 185.78 88.91 C 183.66 90.31 179.87 90.73 180.00 93.99 C 179.86 97.27 183.68 97.69 185.79 99.12 C 186.27 107.07 185.91 115.06 185.99 123.03 C 186.29 126.14 184.25 129.52 180.97 129.83 C 175.33 130.27 169.65 129.88 164.00 130.00 C 147.71 129.85 131.39 130.31 115.12 129.78 C 112.92 127.53 114.51 123.74 113.95 120.86 C 114.67 118.55 111.27 116.64 110.24 119.19 C 109.73 122.42 110.24 125.71 109.79 128.95 C 108.65 130.43 106.57 129.83 104.96 130.03 C 76.94 129.95 48.93 130.04 20.91 129.99 C 17.47 130.37 13.95 127.70 14.07 124.10 C 14.02 115.76 13.75 107.39 14.22 99.07 C 16.33 97.68 20.10 97.27 20.00 94.03 C 20.17 90.71 16.28 90.35 14.20 88.85 C 13.80 84.56 13.92 80.24 14.07 75.94 C 14.03 73.43 15.75 70.97 18.20 70.32 M 18.23 75.15 C 17.73 78.78 18.05 82.46 18.02 86.11 C 21.05 87.67 24.20 90.21 23.99 94.00 C 24.20 97.79 21.03 100.31 18.01 101.89 C 18.15 109.55 17.67 117.24 18.22 124.87 C 18.45 125.10 18.90 125.56 19.13 125.78 C 26.06 126.33 33.03 125.84 39.98 126.00 C 39.99 123.36 40.01 120.72 40.09 118.08 C 62.07 117.87 84.05 118.10 106.03 117.96 C 107.62 116.17 109.32 113.83 112.02 114.00 C 114.70 113.85 116.37 116.19 117.96 117.96 C 131.94 118.09 145.93 117.88 159.91 118.08 C 159.98 120.72 160.01 123.36 160.02 126.00 C 166.94 125.83 173.90 126.34 180.80 125.78 C 181.05 125.57 181.54 125.14 181.78 124.93 C 182.32 117.28 181.85 109.57 181.99 101.90 C 178.96 100.31 175.78 97.79 176.01 93.99 C 175.79 90.20 178.94 87.66 181.98 86.11 C 181.94 82.47 182.27 78.80 181.77 75.19 C 181.16 73.66 179.34 74.17 178.06 73.99 C 126.04 74.00 74.01 74.01 21.99 73.99 C 20.69 74.16 18.91 73.67 18.23 75.15 M 42.00 120.00 C 42.00 122.00 42.00 124.00 42.00 126.00 C 43.33 126.00 44.67 126.00 46.00 126.00 C 46.00 124.00 46.00 122.00 46.00 120.00 C 44.67 120.00 43.33 120.00 42.00 120.00 M 48.00 120.00 C 48.00 122.00 48.00 124.00 48.00 126.00 C 49.33 126.00 50.67 126.00 52.00 126.00 C 52.00 124.00 52.00 122.00 52.00 120.00 C 50.67 120.00 49.33 120.00 48.00 120.00 M 54.00 120.00 C 54.00 122.00 54.00 124.00 54.00 126.00 C 55.33 126.00 56.67 126.00 58.00 126.00 C 58.00 124.00 58.00 122.00 58.00 120.00 C 56.67 120.00 55.33 120.00 54.00 120.00 M 60.00 120.00 C 60.00 122.00 60.00 124.00 60.00 126.00 C 61.33 126.00 62.67 126.00 64.00 126.00 C 64.00 124.00 64.00 122.00 64.00 120.00 C 62.67 120.00 61.33 120.00 60.00 120.00 M 66.00 120.00 C 66.00 122.00 66.00 124.00 66.00 126.00 C 67.33 126.00 68.67 126.00 70.00 126.00 C 70.00 124.00 70.00 122.00 70.00 120.00 C 68.67 120.00 67.33 120.00 66.00 120.00 M 72.00 120.00 C 72.00 122.00 72.00 124.00 72.00 126.00 C 73.33 126.00 74.67 126.00 76.00 126.00 C 76.00 124.00 76.00 122.00 76.00 120.00 C 74.67 120.00 73.33 120.00 72.00 120.00 M 78.00 120.00 C 78.00 122.00 78.00 124.00 78.00 126.00 C 79.33 126.00 80.67 126.00 82.00 126.00 C 82.00 124.00 82.00 122.00 82.00 120.00 C 80.67 120.00 79.33 120.00 78.00 120.00 M 84.00 120.00 C 84.00 122.00 84.00 124.00 84.00 126.00 C 85.33 126.00 86.67 126.00 88.00 126.00 C 88.00 124.00 88.00 122.00 88.00 120.00 C 86.67 120.00 85.33 120.00 84.00 120.00 M 90.00 120.00 C 90.00 122.00 90.00 124.00 90.00 126.00 C 91.33 126.00 92.67 126.00 94.00 126.00 C 94.00 124.00 94.00 122.00 94.00 120.00 C 92.67 120.00 91.33 120.00 90.00 120.00 M 96.00 120.00 C 96.00 122.00 96.00 124.00 96.00 126.00 C 97.33 126.00 98.67 126.00 100.00 126.00 C 100.00 124.00 100.00 122.00 100.00 120.00 C 98.67 120.00 97.33 120.00 96.00 120.00 M 102.00 120.00 C 102.00 122.00 102.00 124.00 102.00 126.00 C 103.33 126.00 104.67 126.00 106.00 126.00 C 106.00 124.00 106.00 122.00 106.00 120.00 C 104.67 120.00 103.33 120.00 102.00 120.00 M 118.00 120.00 C 118.00 122.00 118.00 124.00 118.00 126.00 C 119.33 126.00 120.67 126.00 122.00 126.00 C 122.00 124.00 122.00 122.00 122.00 120.00 C 120.67 120.00 119.33 120.00 118.00 120.00 M 124.00 120.00 C 124.00 122.00 124.00 124.00 124.00 126.00 C 125.33 126.00 126.67 126.00 128.00 126.00 C 128.00 124.00 128.00 122.00 128.00 120.00 C 126.67 120.00 125.33 120.00 124.00 120.00 M 130.00 120.00 C 130.00 122.00 130.00 124.00 130.00 126.00 C 131.33 126.00 132.67 126.00 134.00 126.00 C 134.00 124.00 134.00 122.00 134.00 120.00 C 132.67 120.00 131.33 120.00 130.00 120.00 M 136.00 120.00 C 136.00 122.00 136.00 124.00 136.00 126.00 C 137.33 126.00 138.67 126.00 140.00 126.00 C 140.00 124.00 140.00 122.00 140.00 120.00 C 138.67 120.00 137.33 120.00 136.00 120.00 M 142.00 120.00 C 142.00 122.00 142.00 124.00 142.00 126.00 C 143.33 126.00 144.66 126.00 146.00 126.00 C 146.00 124.00 146.00 122.00 146.00 120.00 C 144.67 120.00 143.33 120.00 142.00 120.00 M 148.00 120.00 C 148.00 122.00 148.00 124.00 148.00 126.00 C 149.33 126.00 150.66 126.00 152.00 126.00 C 152.00 124.00 152.00 122.00 152.00 120.00 C 150.67 120.00 149.33 120.00 148.00 120.00 M 154.00 120.00 C 154.00 122.00 154.00 124.00 154.00 126.00 C 155.33 126.00 156.66 126.00 158.00 126.00 C 158.00 124.00 158.00 122.00 158.00 120.00 C 156.67 120.00 155.33 120.00 154.00 120.00 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 30.03 81.93 C 29.85 80.12 30.82 77.95 32.93 78.11 C 37.91 77.93 42.93 77.74 47.89 78.25 C 50.98 79.21 49.68 83.33 50.10 85.77 C 49.59 85.78 48.57 85.80 48.06 85.80 C 48.01 83.89 47.96 81.98 47.90 80.08 C 42.62 79.96 37.35 79.96 32.08 80.08 C 31.95 89.36 31.95 98.64 32.08 107.91 C 37.36 108.05 42.64 108.05 47.92 107.91 C 48.02 104.01 48.01 100.11 48.02 96.21 C 48.51 96.21 49.48 96.21 49.97 96.20 C 49.93 100.09 50.29 104.01 49.76 107.87 C 49.40 110.05 46.77 109.95 45.09 110.01 C 40.74 109.96 36.36 110.29 32.04 109.74 C 29.91 109.31 30.07 106.74 29.99 105.08 C 30.02 97.37 29.93 89.65 30.03 81.93 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 56.08 78.25 C 61.33 77.80 66.67 77.79 71.92 78.25 C 74.45 78.84 73.88 82.03 74.03 83.96 C 73.88 91.66 74.20 99.37 73.89 107.07 C 73.99 110.35 68.80 111.17 67.40 108.44 C 68.91 108.19 70.43 107.96 71.95 107.75 C 72.01 98.53 72.08 89.30 71.91 80.08 C 66.64 79.96 61.36 79.96 56.08 80.08 C 55.95 89.35 55.95 98.63 56.08 107.90 C 58.65 107.98 61.23 108.01 63.80 108.04 C 63.80 108.54 63.78 109.52 63.78 110.02 C 60.75 109.51 55.74 111.45 54.25 107.89 C 53.63 99.96 54.19 91.96 53.97 84.00 C 54.13 82.06 53.53 78.84 56.08 78.25 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 79.38 78.49 C 84.51 77.49 89.88 78.03 95.10 78.12 C 97.17 77.98 98.14 80.11 97.97 81.89 C 98.04 89.96 98.04 98.04 97.97 106.11 C 98.13 107.87 97.20 109.99 95.14 109.88 C 90.11 110.08 85.02 110.27 80.01 109.73 C 77.91 109.26 78.05 106.71 77.99 105.04 C 77.99 97.70 77.99 90.35 77.99 83.01 C 78.12 81.47 77.82 79.41 79.38 78.49 M 80.08 80.08 C 79.95 89.36 79.95 98.64 80.08 107.92 C 85.36 108.04 90.64 108.04 95.92 107.92 C 96.05 98.64 96.05 89.36 95.92 80.08 C 90.64 79.96 85.36 79.96 80.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 103.34 78.52 C 108.47 77.46 113.88 78.05 119.12 78.12 C 121.20 77.99 122.14 80.13 121.97 81.91 C 122.04 89.97 122.04 98.04 121.97 106.10 C 122.14 107.87 121.19 110.00 119.12 109.88 C 114.37 110.13 109.59 110.13 104.85 109.88 C 102.80 109.99 101.86 107.88 102.03 106.13 C 101.92 98.40 102.03 90.66 101.99 82.93 C 102.13 81.44 101.84 79.43 103.34 78.52 M 104.08 80.08 C 103.95 89.36 103.95 98.64 104.08 107.92 C 109.36 108.05 114.64 108.04 119.92 107.92 C 120.06 98.64 120.05 89.36 119.92 80.08 C 114.64 79.96 109.36 79.95 104.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 127.43 78.45 C 131.88 77.51 136.52 78.12 141.04 77.99 C 143.01 77.87 145.98 78.22 145.88 80.86 C 146.19 88.89 145.92 96.94 146.01 104.98 C 145.93 106.67 146.12 109.28 143.96 109.74 C 141.40 110.19 138.79 109.99 136.21 110.02 C 136.21 109.52 136.21 108.53 136.21 108.04 C 138.78 108.01 141.35 107.98 143.92 107.91 C 144.05 98.63 144.06 89.35 143.92 80.08 C 138.64 79.96 133.36 79.96 128.09 80.08 C 128.02 82.64 127.99 85.21 127.96 87.78 C 127.47 87.79 126.48 87.79 125.99 87.79 C 126.38 84.77 124.90 80.72 127.43 78.45 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 151.38 78.48 C 155.82 77.48 160.48 78.14 165.01 77.99 C 167.01 77.85 170.02 78.25 169.89 80.92 C 170.18 88.94 169.92 96.98 170.01 105.01 C 170.13 107.00 169.77 109.99 167.12 109.88 C 162.10 110.07 157.02 110.27 152.02 109.74 C 149.89 109.27 150.05 106.67 149.99 104.99 C 149.99 97.64 149.99 90.30 149.99 82.95 C 150.12 81.43 149.84 79.39 151.38 78.48 M 152.08 80.08 C 151.95 89.36 151.95 98.64 152.08 107.92 C 157.36 108.04 162.64 108.04 167.92 107.92 C 168.05 98.64 168.05 89.36 167.92 80.08 C 162.64 79.96 157.36 79.96 152.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 48.01 88.19 C 48.50 88.19 49.49 88.19 49.99 88.19 C 49.98 90.06 49.98 91.92 49.99 93.78 C 49.49 93.79 48.51 93.79 48.01 93.79 C 48.01 91.92 48.01 90.06 48.01 88.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 126.01 92.19 C 126.51 92.19 127.49 92.19 127.99 92.19 C 127.98 94.06 127.98 95.93 127.98 97.80 C 127.49 97.79 126.50 97.78 126.01 97.78 C 126.01 95.91 126.01 94.05 126.01 92.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 125.98 100.19 C 126.48 100.19 127.47 100.19 127.96 100.19 C 127.99 102.75 128.02 105.32 128.08 107.88 C 129.98 107.95 131.89 108.01 133.81 108.07 C 133.80 108.57 133.78 109.59 133.77 110.10 C 131.39 109.71 128.07 110.79 126.45 108.53 C 125.66 105.83 126.07 102.96 125.98 100.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 24.41 112.66 C 27.59 110.67 32.28 113.20 32.00 117.04 C 32.18 120.52 28.24 123.02 25.11 121.66 C 21.33 120.42 20.93 114.50 24.41 112.66 M 26.15 114.12 C 24.25 114.47 23.50 116.93 24.38 118.50 C 25.45 120.81 29.45 120.37 29.89 117.81 C 30.58 115.59 28.37 113.39 26.15 114.12 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 170.48 112.62 C 173.67 110.70 178.29 113.25 178.00 117.06 C 178.16 120.55 174.19 123.04 171.06 121.64 C 167.28 120.35 166.95 114.41 170.48 112.62 M 172.11 114.13 C 169.72 114.60 169.28 118.30 171.30 119.51 C 173.13 120.90 176.17 119.39 175.97 117.02 C 176.16 114.97 173.98 113.54 172.11 114.13 Z"})]})},te=function(){var e=Object(Y.a)().palette.primary.main,t="#00a572"===e?"#74c39c":"#4a5255";return Object($.jsxs)("svg",{width:"150px",height:"150px",viewBox:"0 0 512 512",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsxs)("g",{id:e,children:[Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 102.41 0.00 L 319.87 0.00 C 320.21 29.68 319.87 59.37 320.04 89.05 C 320.29 97.32 323.88 105.47 329.94 111.12 C 336.01 117.07 344.56 120.18 353.01 120.01 C 382.02 119.87 411.04 120.22 440.05 119.83 C 439.94 236.88 440.04 353.93 440.00 470.98 C 440.01 478.16 440.50 485.68 437.47 492.41 C 432.79 503.85 421.05 511.80 408.71 512.00 L 103.28 512.00 C 90.95 511.79 79.20 503.84 74.53 492.42 C 72.06 486.96 71.87 480.87 71.99 474.97 C 72.01 327.63 71.99 180.30 72.00 32.96 C 71.95 27.61 73.03 22.22 75.52 17.46 C 80.55 7.39 91.19 0.57 102.41 0.00 M 360.00 382.07 C 358.69 383.73 359.01 385.99 358.90 387.97 C 358.95 396.36 358.91 404.75 358.93 413.14 C 352.50 403.51 346.13 393.83 339.77 384.16 C 338.65 382.47 337.13 380.65 334.92 380.63 C 331.97 380.41 329.13 382.87 329.22 385.89 C 328.94 396.58 329.24 407.28 329.08 417.98 C 329.14 420.43 328.85 422.98 329.54 425.38 C 330.75 429.14 337.11 428.63 337.54 424.63 C 338.19 415.09 337.55 405.51 337.83 395.95 C 343.71 404.78 349.41 413.73 355.26 422.58 C 356.92 424.93 358.74 427.96 362.00 428.00 C 365.02 428.51 367.54 425.83 367.40 422.90 C 367.55 411.27 367.39 399.62 367.48 387.99 C 367.40 386.11 367.63 384.06 366.61 382.38 C 365.24 380.16 361.58 380.00 360.00 382.07 M 100.79 382.81 C 98.94 384.82 100.19 388.63 103.01 388.89 C 106.91 389.29 110.85 388.97 114.77 389.07 C 114.77 399.73 114.78 410.39 114.75 421.05 C 114.76 423.37 114.89 426.34 117.28 427.52 C 119.95 429.02 123.67 427.14 123.86 424.04 C 124.22 412.40 123.84 400.72 124.04 389.07 C 128.25 388.87 132.57 389.54 136.71 388.62 C 140.15 387.40 139.25 381.72 135.61 381.56 C 126.10 381.14 116.55 381.57 107.03 381.37 C 104.95 381.53 102.34 381.06 100.79 382.81 M 156.46 381.58 C 150.26 383.15 145.11 388.05 143.12 394.11 C 140.49 401.86 140.79 410.83 144.81 418.06 C 151.07 429.05 167.20 430.79 177.27 424.26 C 183.48 420.06 186.24 412.28 186.28 405.03 C 186.43 398.11 184.59 390.56 179.19 385.85 C 173.03 380.52 164.12 379.62 156.46 381.58 M 197.74 381.67 C 195.24 381.99 194.12 384.61 194.23 386.87 C 194.06 397.92 194.27 408.97 194.15 420.02 C 194.24 422.43 193.92 425.36 195.97 427.11 C 198.62 429.25 203.28 427.47 203.31 423.89 C 203.66 418.45 203.32 412.99 203.49 407.54 C 206.76 407.72 210.68 407.24 213.15 409.89 C 217.60 414.61 220.01 420.80 223.85 425.97 C 225.63 428.66 230.20 428.72 231.83 425.86 C 232.87 424.27 231.80 422.43 231.24 420.89 C 228.63 415.38 225.17 409.99 220.02 406.56 C 223.42 405.53 227.11 404.31 229.29 401.31 C 233.14 395.94 231.83 387.34 226.14 383.76 C 221.99 381.01 216.77 381.52 212.04 381.39 C 207.28 381.52 202.48 381.08 197.74 381.67 M 240.23 386.91 C 240.19 398.28 240.20 409.66 240.22 421.03 C 240.25 423.12 240.14 425.65 241.97 427.09 C 244.58 429.23 249.25 427.52 249.33 423.98 C 249.76 418.50 249.34 413.00 249.49 407.51 C 252.77 407.64 256.62 407.29 259.13 409.85 C 263.88 414.69 266.10 421.38 270.41 426.55 C 272.74 429.20 278.48 428.00 278.28 424.04 C 276.28 417.09 271.87 410.81 266.09 406.46 C 269.75 405.55 273.64 404.05 275.74 400.71 C 278.91 395.49 277.81 387.82 272.73 384.18 C 268.85 381.14 263.64 381.44 259.00 381.41 C 254.02 381.52 249.02 381.13 244.05 381.58 C 241.41 381.77 240.05 384.51 240.23 386.91 M 286.38 386.01 C 286.17 397.35 286.39 408.70 286.27 420.04 C 286.31 422.30 286.17 425.31 288.52 426.53 C 291.20 427.60 294.20 427.07 297.03 427.21 C 304.36 427.04 311.73 427.52 319.04 426.95 C 322.44 426.37 322.43 420.75 319.05 420.15 C 311.25 419.44 303.38 420.13 295.56 419.82 C 295.59 415.47 295.58 411.12 295.58 406.78 C 302.60 406.71 309.65 407.09 316.66 406.54 C 320.07 405.84 319.57 399.91 315.98 399.96 C 309.20 399.54 302.39 399.95 295.59 399.80 C 295.57 396.05 295.57 392.30 295.58 388.55 C 303.03 388.43 310.50 388.74 317.94 388.37 C 321.67 388.25 321.80 381.95 318.11 381.66 C 309.41 381.03 300.65 381.57 291.93 381.42 C 289.16 381.15 286.27 383.00 286.38 386.01 M 375.06 381.95 C 372.19 383.34 372.77 388.27 375.95 388.84 C 379.96 389.33 384.02 388.96 388.05 389.08 C 387.92 400.08 388.05 411.07 387.99 422.07 C 387.75 424.61 389.07 427.71 391.95 427.92 C 394.85 428.51 397.33 425.86 397.14 423.05 C 397.37 411.73 397.16 400.40 397.23 389.08 C 401.42 388.89 405.69 389.52 409.82 388.64 C 413.41 387.46 412.48 381.48 408.64 381.52 C 400.79 381.23 392.93 381.50 385.08 381.39 C 381.74 381.50 378.31 381.05 375.06 381.95 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 160.39 388.45 C 164.79 387.33 170.01 388.38 173.03 391.97 C 176.12 395.52 177.00 400.46 176.87 405.04 C 176.76 409.47 175.56 414.16 172.29 417.34 C 167.50 421.98 158.82 421.68 154.58 416.43 C 150.59 411.44 150.26 404.45 151.51 398.43 C 152.46 393.85 155.68 389.57 160.39 388.45 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 203.47 388.42 C 208.28 388.55 213.18 387.93 217.93 388.93 C 222.82 390.10 223.71 398.14 218.81 399.89 C 213.88 401.57 208.52 400.89 203.40 400.90 C 203.44 396.73 203.45 392.57 203.47 388.42 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 249.45 388.38 C 254.29 388.56 259.22 387.96 264.00 388.94 C 268.52 390.07 269.67 397.04 265.66 399.44 C 260.63 401.83 254.85 400.80 249.47 400.94 C 249.51 396.75 249.48 392.57 249.45 388.38 Z"})]}),Object($.jsx)("g",{id:t,children:Object($.jsx)("path",{fill:t,opacity:"1.00",d:" M 319.87 0.00 L 320.20 0.00 C 360.20 39.89 400.19 79.79 440.05 119.83 C 411.04 120.22 382.02 119.87 353.01 120.01 C 344.56 120.18 336.01 117.07 329.94 111.12 C 323.88 105.47 320.29 97.32 320.04 89.05 C 319.87 59.37 320.21 29.68 319.87 0.00 Z"})}),Object($.jsxs)("g",{id:"#fdfdfd",children:[Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 360.00 382.07 C 361.58 380.00 365.24 380.16 366.61 382.38 C 367.63 384.06 367.40 386.11 367.48 387.99 C 367.39 399.62 367.55 411.27 367.40 422.90 C 367.54 425.83 365.02 428.51 362.00 428.00 C 358.74 427.96 356.92 424.93 355.26 422.58 C 349.41 413.73 343.71 404.78 337.83 395.95 C 337.55 405.51 338.19 415.09 337.54 424.63 C 337.11 428.63 330.75 429.14 329.54 425.38 C 328.85 422.98 329.14 420.43 329.08 417.98 C 329.24 407.28 328.94 396.58 329.22 385.89 C 329.13 382.87 331.97 380.41 334.92 380.63 C 337.13 380.65 338.65 382.47 339.77 384.16 C 346.13 393.83 352.50 403.51 358.93 413.14 C 358.91 404.75 358.95 396.36 358.90 387.97 C 359.01 385.99 358.69 383.73 360.00 382.07 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 100.79 382.81 C 102.34 381.06 104.95 381.53 107.03 381.37 C 116.55 381.57 126.10 381.14 135.61 381.56 C 139.25 381.72 140.15 387.40 136.71 388.62 C 132.57 389.54 128.25 388.87 124.04 389.07 C 123.84 400.72 124.22 412.40 123.86 424.04 C 123.67 427.14 119.95 429.02 117.28 427.52 C 114.89 426.34 114.76 423.37 114.75 421.05 C 114.78 410.39 114.77 399.73 114.77 389.07 C 110.85 388.97 106.91 389.29 103.01 388.89 C 100.19 388.63 98.94 384.82 100.79 382.81 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 156.46 381.58 C 164.12 379.62 173.03 380.52 179.19 385.85 C 184.59 390.56 186.43 398.11 186.28 405.03 C 186.24 412.28 183.48 420.06 177.27 424.26 C 167.20 430.79 151.07 429.05 144.81 418.06 C 140.79 410.83 140.49 401.86 143.12 394.11 C 145.11 388.05 150.26 383.15 156.46 381.58 M 160.39 388.45 C 155.68 389.57 152.46 393.85 151.51 398.43 C 150.26 404.45 150.59 411.44 154.58 416.43 C 158.82 421.68 167.50 421.98 172.29 417.34 C 175.56 414.16 176.76 409.47 176.87 405.04 C 177.00 400.46 176.12 395.52 173.03 391.97 C 170.01 388.38 164.79 387.33 160.39 388.45 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 197.74 381.67 C 202.48 381.08 207.28 381.52 212.04 381.39 C 216.77 381.52 221.99 381.01 226.14 383.76 C 231.83 387.34 233.14 395.94 229.29 401.31 C 227.11 404.31 223.42 405.53 220.02 406.56 C 225.17 409.99 228.63 415.38 231.24 420.89 C 231.80 422.43 232.87 424.27 231.83 425.86 C 230.20 428.72 225.63 428.66 223.85 425.97 C 220.01 420.80 217.60 414.61 213.15 409.89 C 210.68 407.24 206.76 407.72 203.49 407.54 C 203.32 412.99 203.66 418.45 203.31 423.89 C 203.28 427.47 198.62 429.25 195.97 427.11 C 193.92 425.36 194.24 422.43 194.15 420.02 C 194.27 408.97 194.06 397.92 194.23 386.87 C 194.12 384.61 195.24 381.99 197.74 381.67 M 203.47 388.42 C 203.45 392.57 203.44 396.73 203.40 400.90 C 208.52 400.89 213.88 401.57 218.81 399.89 C 223.71 398.14 222.82 390.10 217.93 388.93 C 213.18 387.93 208.28 388.55 203.47 388.42 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 240.23 386.91 C 240.05 384.51 241.41 381.77 244.05 381.58 C 249.02 381.13 254.02 381.52 259.00 381.41 C 263.64 381.44 268.85 381.14 272.73 384.18 C 277.81 387.82 278.91 395.49 275.74 400.71 C 273.64 404.05 269.75 405.55 266.09 406.46 C 271.87 410.81 276.28 417.09 278.28 424.04 C 278.48 428.00 272.74 429.20 270.41 426.55 C 266.10 421.38 263.88 414.69 259.13 409.85 C 256.62 407.29 252.77 407.64 249.49 407.51 C 249.34 413.00 249.76 418.50 249.33 423.98 C 249.25 427.52 244.58 429.23 241.97 427.09 C 240.14 425.65 240.25 423.12 240.22 421.03 C 240.20 409.66 240.19 398.28 240.23 386.91 M 249.45 388.38 C 249.48 392.57 249.51 396.75 249.47 400.94 C 254.85 400.80 260.63 401.83 265.66 399.44 C 269.67 397.04 268.52 390.07 264.00 388.94 C 259.22 387.96 254.29 388.56 249.45 388.38 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 286.38 386.01 C 286.27 383.00 289.16 381.15 291.93 381.42 C 300.65 381.57 309.41 381.03 318.11 381.66 C 321.80 381.95 321.67 388.25 317.94 388.37 C 310.50 388.74 303.03 388.43 295.58 388.55 C 295.57 392.30 295.57 396.05 295.59 399.80 C 302.39 399.95 309.20 399.54 315.98 399.96 C 319.57 399.91 320.07 405.84 316.66 406.54 C 309.65 407.09 302.60 406.71 295.58 406.78 C 295.58 411.12 295.59 415.47 295.56 419.82 C 303.38 420.13 311.25 419.44 319.05 420.15 C 322.43 420.75 322.44 426.37 319.04 426.95 C 311.73 427.52 304.36 427.04 297.03 427.21 C 294.20 427.07 291.20 427.60 288.52 426.53 C 286.17 425.31 286.31 422.30 286.27 420.04 C 286.39 408.70 286.17 397.35 286.38 386.01 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 375.06 381.95 C 378.31 381.05 381.74 381.50 385.08 381.39 C 392.93 381.50 400.79 381.23 408.64 381.52 C 412.48 381.48 413.41 387.46 409.82 388.64 C 405.69 389.52 401.42 388.89 397.23 389.08 C 397.16 400.40 397.37 411.73 397.14 423.05 C 397.33 425.86 394.85 428.51 391.95 427.92 C 389.07 427.71 387.75 424.61 387.99 422.07 C 388.05 411.07 387.92 400.08 388.05 389.08 C 384.02 388.96 379.96 389.33 375.95 388.84 C 372.77 388.27 372.19 383.34 375.06 381.95 Z"})]})]})},ne=n(387),ae=n(442),re=n(24),ie=n.n(re),oe=n(441),ce=n(484),le=function(e){var t=Object(a.useState)({}),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useRef)(!0),c=Object(a.useRef)(null);return Object(a.useEffect)((function(){return function(){o.current=!1}}),[]),Object(a.useEffect)((function(){return e?c.current=setInterval((function(){var t=function(e){return o.current&&i(e)};P.a.post("".concat(C,"/cache"),{action:"get",hash:e}).then((function(e){var n=e.data;return t(n)})).catch((function(){return t({})}))}),100):clearInterval(c.current),function(){return clearInterval(c.current)}}),[e]),r},se=n(428),de=n(430),pe=n(431),je=n(106),be=n.n(je),ue=n(432),he=Object(se.a)({appBar:{position:"relative"},title:{marginLeft:"5px",flex:1}});function xe(e){var t=e.title,n=e.onClose,a=e.onBack,r=he();return Object($.jsx)(de.a,{className:r.appBar,children:Object($.jsxs)(pe.a,{children:[a&&Object($.jsx)(p.a,{edge:"start",color:"inherit",onClick:a,"aria-label":"back",children:Object($.jsx)(ue.a,{})}),Object($.jsx)(d.a,{variant:"h6",className:r.title,children:t}),Object($.jsx)(p.a,{autoFocus:!0,color:"inherit",onClick:n,"aria-label":"close",style:{marginRight:"-10px"},children:Object($.jsx)(be.a,{})})]})})}var ge,me,Oe,fe,Ce,ve,ye,we,Se,ke,De,Te=n(180),Pe=n(84),Me=n.n(Pe),Be=n(195),Re=n(433),Le=n(26),Ae={light:{app:{headerToggleColor:"#4db380",appSecondaryColor:"#cbe8d9",sidebarBGColor:"#575757",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#337a57",buttonBGColor:Object(Le.a)("#337a57",.5),cardPrimaryColor:"#00a572",cardSecondaryColor:"#74c39c"},dialogTorrentDetailsContent:{posterBGColor:"#74c39c",gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",chacheSectionBGColor:"#88cdaa",widgetFontColor:"#fff",titleFontColor:"#000",subNameFontColor:"#7c7b7c",torrentFilesSectionBGColor:"#f1eff3"},detailedView:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",cacheSectionBGColor:"#fff"},addDialog:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",fontColor:"#000",notificationErrorBGColor:"#cda184",notificationSuccessBGColor:"#88cdaa",languageSwitchBGColor:"#74c39c",languageSwitchFontColor:"#e4f6ed",posterBGColor:"#74c39c"},torrentFunctions:{fontColor:"#000"},table:{defaultPrimaryColor:"#009879",defaultSecondaryColor:"#00a383",defaultTertiaryColor:"#03aa89"},settingsDialog:{contentBG:"#f1eff3",footerBG:"#fff"}},dark:{app:{headerToggleColor:"#545a5e",appSecondaryColor:"#545a5e",sidebarBGColor:"#323637",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#323637",buttonBGColor:Object(Le.a)("#323637",.5),cardPrimaryColor:"#545a5e",cardSecondaryColor:Object(Le.a)("#dee3e5",.4)},dialogTorrentDetailsContent:{posterBGColor:Object(Le.a)("#dee3e5",.4),gradientStartColor:"#656f76",gradientEndColor:"#545a5e",chacheSectionBGColor:"#3c4244",widgetFontColor:Object(Le.a)("#fff",.8),titleFontColor:"#f1eff3",subNameFontColor:"#dee3e5",torrentFilesSectionBGColor:Object(Le.a)("#545a5e",.9)},detailedView:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",cacheSectionBGColor:"#dee3e5"},addDialog:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",fontColor:"#fff",notificationErrorBGColor:"#c82e3f",notificationSuccessBGColor:"#323637",languageSwitchBGColor:"#545a5e",languageSwitchFontColor:"#dee3e5",posterBGColor:"#dee3e5"},torrentFunctions:{fontColor:"#f1eff3"},table:{defaultPrimaryColor:"#323637",defaultSecondaryColor:Object(Le.a)("#545a5e",.9),defaultTertiaryColor:"#545a5e"},settingsDialog:{contentBG:"#5a6166",footerBG:"#323637"}}},ze={light:{primary:"#00a572",secondary:"#00a572",labels:Object(Le.a)("#000",.9)},dark:{primary:"#323637",secondary:"#dee3e5",labels:Object(Le.a)("#fff",.9)}},Fe="light",Ee="dark",Ge="auto",Ne={fontFamily:"Open Sans, sans-serif"},Ie=(Object(Be.a)({typography:Ne,palette:{type:Ee,primary:{main:ze.dark.primary},secondary:{main:ze.dark.secondary}}}),Object(Be.a)({typography:Ne,palette:{type:Fe,primary:{main:ze.light.primary},secondary:{main:ze.light.secondary}}})),He=n(4),Ue=n(3),We={dark:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:Object(Le.a)("#949ca0",.25),completeColor:Object(Le.a)(ze.dark.primary,.5),backgroundColor:"#f1eff3",progressColor:ze.dark.secondary,readerColor:"#8f0405",rangeColor:"#cda184"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#5c6469",completeColor:"#5c6469",backgroundColor:"#949ca0",progressColor:"#949ca0",readerColor:"#ccc",rangeColor:"#cda184"}},light:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:"#dbf2e8",completeColor:ze.light.primary,backgroundColor:"#fff",progressColor:"#b3dfc9",readerColor:"#000",rangeColor:"#afa6e3"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#4db380",completeColor:"#4db380",backgroundColor:"#dbf2e8",progressColor:"#dbf2e8",readerColor:"#0a0a0a",rangeColor:"#afa6e3"}}},Ve=Ue.d.div(ge||(ge=Object(He.a)(["\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n"]))),Ze=Ue.d.div(me||(me=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isMini,n=e.themeType;return Object(Ue.c)(Oe||(Oe=Object(He.a)(["\n ","\n\n canvas {\n display: block;\n }\n "])),t&&Object(Ue.c)(fe||(fe=Object(He.a)(["\n display: grid;\n justify-content: center;\n max-height: ","px;\n overflow: auto;\n "])),We[n].mini.cacheMaxHeight))})),_e=function(e){var t,n=e.cache,r=e.isMini,i=Object(ce.a)().t,o=Object(a.useState)({width:0,height:0}),c=Object(l.a)(o,2),s=c[0],d=c[1],p=s.width,j=Object(a.useRef)(null),b=Object(a.useRef)(null),u=function(e){var t=Object(a.useState)([]),n=Object(l.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){for(var t=e.PiecesCount,n=e.Pieces,a=e.Readers,r=[],o=function(e){var t=n[e]||{},i=t.Size,o=t.Length,c=t.Priority,l={id:e,percentage:i/o*100||0,priority:c||0};a.forEach((function(t){e===t.Reader&&(l.isReader=!0),e>=t.Start&&e<=t.End&&(l.isReaderRange=!0)})),r.push(l)},c=0;c0})),i=function(e){return e%a===0?e-1:e+a-e%a-1||0},o=i(n),c=i(r.length),l=Math.max(c,o)-r.length+1,s=l?new Array(l).fill({}):[];return[].concat(Object(E.a)(r),Object(E.a)(s))}({cacheMap:u,preloadPiecesAmount:Math.round(n.Capacity/n.PiecesLength-1),piecesInOneRow:P}));var M=r?t:u,B=Math.ceil((D-T*P)/2),R=Math.ceil(M.length/P)*T;return Object(a.useEffect)((function(){if(D&&R){var e=j.current;e.width=D,e.height=R,b.current=e.getContext("2d")}}),[j,R,D]),Object(a.useEffect)((function(){var e=b.current;e&&(e.clearRect(0,0,D,R),M.forEach((function(t,n){var a=t.percentage,i=t.priority,o=t.isReader,c=t.isReaderRange,l=a>0&&a<100,s=100===a,d=n%P,p=Math.floor(n/P),j=f%2===0?0:.5,b=Math.ceil(f/2)+1+j,u=d*C+d*v+B+b,g=p*C+p*v+b;if(e.lineWidth=f,e.fillStyle=l?function(e,t,n,a){var r=We[n][a],i=r.pieceSize,o=r.completeColor,c=r.progressColor,l=e.createLinearGradient(0,i,0,0);return l.addColorStop(0,o),l.addColorStop(t/100,o),l.addColorStop(t/100,c),l.addColorStop(1,c),l}(e,a,x,h):s?k:y,e.strokeStyle=o?m:l||s?k:c?O:w,e.translate(u,g),e.fillRect(0,0,C,C),e.strokeRect(0,0,C,C),e.setTransform(1,0,0,1,0,0),i>0){var S="";1===i?S="*":2===i?S="H":3===i?S="R":4===i?S="N":5===i&&(S="A"),e.font=r?"12px monospace":"10px monospace";var D=r?.34*C:.28*C,T=r?.69*C:.78*C;e.fillStyle="black",e.fillText(S,u+D,g+T)}})))}),[u,R,D,P,B,C,v,M,y,w,f,h,k,m,O,r,x]),Object($.jsx)(Te.a,{bounds:!0,onResize:function(e){var t=e.bounds;return d(t)},children:function(e){var t=e.measureRef;return Object($.jsxs)("div",{style:{display:"flex",flexDirection:"column"},ref:t,children:[Object($.jsx)(Ze,{themeType:x,isMini:r,children:Object($.jsx)("canvas",{ref:j})}),r&&R>=S&&Object($.jsx)(Ve,{children:i("ScrollDown")})]})}})},Ke=Object(a.memo)(_e,(function(e,t){return Me()(e.cache.Pieces,t.cache.Pieces)&&Me()(e.cache.Readers,t.cache.Readers)})),Je=n(85),Ye=n.n(Je),$e="#bdbdbd",Xe=Object(Ue.c)(Ce||(Ce=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(Ue.c)(ve||(ve=Object(He.a)(["\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ",";\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "])),t)})),qe=Ue.d.table(ye||(ye=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(Ue.c)(we||(we=Object(He.a)(["\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ",";\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ",";\n background: ",";\n\n :last-of-type {\n border-bottom: 2px solid ",";\n }\n\n &.viewed-file-row {\n background: ",";\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ","\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n "])),t,"#ddd","#fff",t,"#f3f3f3",Xe)})),Qe=Ue.d.div(Se||(Se=Object(He.a)(["\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n"]))),et=Ue.d.div(ke||(ke=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isViewed,n=e.theme.table,a=n.defaultPrimaryColor,r=n.defaultSecondaryColor,i=n.defaultTertiaryColor;return Object(Ue.c)(De||(De=Object(He.a)(["\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ",";\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ",";\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ",";\n }\n\n &-name {\n background: ",";\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ",";\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ","\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ",";\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #fff;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n "])),t?$e:a,t?"max-content":"1fr",t?$e:a,t?"#c4c4c4":r,t?"#c9c9c9":i,t&&Xe,t?$e:a)})),tt=n(0).memo;ie.a.addHandler("episode",/(\d{1,4})[- |. ]\u0441\u0435\u0440\u0438\u044f|\u0441\u0435\u0440\u0438\u044f[- |. ](\d{1,4})/i,{type:"integer"}),ie.a.addHandler("season",/sezon[- |. ](\d{1,3})|(\d{1,3})[- |. ]sezon/i,{type:"integer"}),ie.a.addHandler("season",/\u0441\u0435\u0437\u043e\u043d[- |. ](\d{1,3})|(\d{1,3})[- |. ]\u0441\u0435\u0437\u043e\u043d/i,{type:"integer"});var nt,at,rt,it,ot,ct,lt,st,dt,pt,jt,bt,ut,ht,xt,gt,mt,Ot,ft,Ct,vt,yt,wt,St,kt,Dt,Tt,Pt,Mt,Bt,Rt,Lt,At,zt,Ft,Et,Gt,Nt=tt((function(e){var t=e.playableFileList,n=e.viewedFileList,a=e.selectedSeason,r=e.seasonAmount,i=e.hash,o=Object(ce.a)().t,c=function(e){return fetch("".concat(S(),"?link=").concat(i,"&index=").concat(e,"&preload"))},l=function(e,t){return"".concat(S(),"/").concat(encodeURIComponent(e.split("\\").pop().split("/").pop()),"?link=").concat(i,"&index=").concat(t,"&play")},s=!!(null===t||void 0===t?void 0:t.find((function(e){var t=e.path;return ie.a.parse(t).episode}))),d=!!(null===t||void 0===t?void 0:t.find((function(e){var t=e.path;return ie.a.parse(t).season}))),p=!!(null===t||void 0===t?void 0:t.find((function(e){var t=e.path;return ie.a.parse(t).resolution}))),j=t.length>1&&!s;return(null===t||void 0===t?void 0:t.length)?Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(qe,{children:[Object($.jsx)("thead",{children:Object($.jsxs)("tr",{children:[Object($.jsx)("th",{style:{width:"0"},children:o("Viewed")}),Object($.jsx)("th",{children:o("Name")}),d&&1===(null===r||void 0===r?void 0:r.length)&&Object($.jsx)("th",{style:{width:"0"},children:o("Season")}),s&&Object($.jsx)("th",{style:{width:"0"},children:o("Episode")}),p&&Object($.jsx)("th",{style:{width:"0"},children:o("Resolution")}),Object($.jsx)("th",{style:{width:"100px"},children:o("Size")}),Object($.jsx)("th",{style:{width:"400px"},children:o("Actions")})]})}),Object($.jsx)("tbody",{children:t.map((function(e){var t=e.id,i=e.path,b=e.length,u=ie.a.parse(i),h=u.title,x=u.resolution,g=u.episode,m=u.season,O=null===n||void 0===n?void 0:n.includes(t),f=l(i,t);return(m===a||!(null===r||void 0===r?void 0:r.length))&&Object($.jsxs)("tr",{className:O?"viewed-file-row":null,children:[Object($.jsx)("td",{"data-label":"viewed",className:O?"viewed-file-indicator":null}),Object($.jsx)("td",{"data-label":"name",children:j?i:h}),d&&1===(null===r||void 0===r?void 0:r.length)&&Object($.jsx)("td",{"data-label":"season",children:m}),s&&Object($.jsx)("td",{"data-label":"episode",children:g}),p&&Object($.jsx)("td",{"data-label":"resolution",children:x}),Object($.jsx)("td",{"data-label":"size",children:V(b)}),Object($.jsx)("td",{children:Object($.jsxs)("div",{className:"button-cell",children:[Object($.jsx)(ne.a,{onClick:function(){return c(t)},variant:"outlined",color:"primary",size:"small",children:o("Preload")}),Object($.jsx)("a",{style:{textDecoration:"none"},href:f,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:o("OpenLink")})}),Object($.jsx)(Ye.a,{text:f,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:o("CopyLink")})})]})})]},t)}))})]}),Object($.jsx)(Qe,{children:t.map((function(e){var t=e.id,i=e.path,b=e.length,u=ie.a.parse(i),h=u.title,x=u.resolution,g=u.episode,m=u.season,O=null===n||void 0===n?void 0:n.includes(t),f=l(i,t);return(m===a||!(null===r||void 0===r?void 0:r.length))&&Object($.jsxs)(et,{isViewed:O,children:[Object($.jsx)("div",{className:"short-table-name",children:j?i:h}),Object($.jsxs)("div",{className:"short-table-data",children:[O&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Viewed")}),Object($.jsx)("div",{className:"short-table-field-value",children:Object($.jsx)("div",{className:"short-table-viewed-indicator"})})]}),d&&1===(null===r||void 0===r?void 0:r.length)&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Season")}),Object($.jsx)("div",{className:"short-table-field-value",children:m})]}),s&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Episode")}),Object($.jsx)("div",{className:"short-table-field-value",children:g})]}),p&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Resolution")}),Object($.jsx)("div",{className:"short-table-field-value",children:x})]}),Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:o("Size")}),Object($.jsx)("div",{className:"short-table-field-value",children:V(b)})]})]}),Object($.jsxs)("div",{className:"short-table-buttons",children:[Object($.jsx)(ne.a,{onClick:function(){return c(t)},variant:"outlined",color:"primary",size:"small",children:o("Preload")}),Object($.jsx)("a",{style:{textDecoration:"none"},href:f,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:o("OpenLink")})}),Object($.jsx)(Ye.a,{text:f,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:o("CopyLink")})})]})]},t)}))})]}):"No playable files in this torrent"}),(function(e,t){return Me()(e,t)})),It=Ue.d.div(nt||(nt=Object(He.a)(["\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n"]))),Ht=Ue.d.div(at||(at=Object(He.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.dialogTorrentDetailsContent.posterBGColor;return Object(Ue.c)(rt||(rt=Object(He.a)(["\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ","\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ","\n }\n "])),t?Object(Ue.c)(it||(it=Object(He.a)(["\n img {\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(Ue.c)(ot||(ot=Object(He.a)(["\n width: 300px;\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n "])),n),t?Object(Ue.c)(ct||(ct=Object(He.a)(["\n height: 200px;\n "]))):Object(Ue.c)(lt||(lt=Object(He.a)(["\n display: none;\n "]))))})),Ut=Ue.d.section(st||(st=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent,n=t.gradientStartColor,a=t.gradientEndColor;return Object(Ue.c)(dt||(dt=Object(He.a)(["\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),Wt=Ue.d.section(pt||(pt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.chacheSectionBGColor;return Object(Ue.c)(jt||(jt=Object(He.a)(["\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Vt=Ue.d.section(bt||(bt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.torrentFilesSectionBGColor;return Object(Ue.c)(ut||(ut=Object(He.a)(["\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Zt=Ue.d.div(ht||(ht=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.subNameFontColor;return Object(Ue.c)(xt||(xt=Object(He.a)(["\n ","\n "])),(function(e){var n=e.mb;return Object(Ue.c)(gt||(gt=Object(He.a)(["\n ",";\n ",";\n line-height: 1.2;\n color: ",";\n\n @media (max-width: 800px) {\n ",";\n ",";\n font-size: 14px;\n }\n "])),n&&"margin-top: ".concat(n/3,"px"),n&&"margin-bottom: ".concat(n,"px"),t,n&&"margin-top: ".concat(n/4,"px"),n&&"margin-bottom: ".concat(n/2,"px"))}))})),_t=Ue.d.div(mt||(mt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.color,n=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(Ue.c)(Ot||(Ot=Object(He.a)(["\n ","\n "])),(function(e){var a=e.mb;return Object(Ue.c)(ft||(ft=Object(He.a)(["\n ",";\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ",";\n }\n "])),a&&"margin-bottom: ".concat(a,"px"),t||n,a&&"margin-bottom: ".concat(a/2,"px"))}))})),Kt=Ue.d.div(Ct||(Ct=Object(He.a)(["\n margin-bottom: 20px;\n"]))),Jt=Ue.d.div(vt||(vt=Object(He.a)(["\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ","\n"])),(function(e){return e.detailedView?Object(Ue.c)(yt||(yt=Object(He.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n "]))):Object(Ue.c)(wt||(wt=Object(He.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n "])))})),Yt=Ue.d.div(St||(St=Object(He.a)(["\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n"]))),$t=Ue.d.div(kt||(kt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(Ue.c)(Dt||(Dt=Object(He.a)(["\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ",";\n "])),t)})),Xt=Ue.d.div(Tt||(Tt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.bgColor;return Object(Ue.c)(Pt||(Pt=Object(He.a)(["\n grid-area: icon;\n color: ",";\n background: ",";\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n "])),Object(Le.a)("#fff",.8),t)})),qt=Ue.d.div(Mt||(Mt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.bgColor,n=e.theme.dialogTorrentDetailsContent.widgetFontColor;return Object(Ue.c)(Bt||(Bt=Object(He.a)(["\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ",";\n background: ",";\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n "])),n,t)})),Qt=Ue.d.div.attrs((function(e){var t=e.value,n=e.fullAmount,a=e.theme.dialogTorrentDetailsContent,r=a.gradientStartColor,i=a.gradientEndColor,o=Math.min(100,100*t/n);return{style:{background:"linear-gradient(to right, ".concat(r," 0%, ").concat(i," ").concat(o,"%, #fff ").concat(o,"%, #fff 100%)")}}}))(Rt||(Rt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.label;return Object(Ue.c)(Lt||(Lt=Object(He.a)(["\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n "])),t)})),en=Ue.d.div(At||(At=Object(He.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),tn=Ue.d.section(zt||(zt=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView,n=t.gradientStartColor,a=t.gradientEndColor;return Object(Ue.c)(Ft||(Ft=Object(He.a)(["\n padding: 40px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),nn=Ue.d.section(Et||(Et=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView.cacheSectionBGColor;return Object(Ue.c)(Gt||(Gt=Object(He.a)(["\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),an=n(59),rn=n(434),on=n(435),cn=n(436),ln=n(437),sn=n(438),dn=n(439),pn=n(440);function jn(e){var t=e.icon,n=e.title,a=e.value,r=e.iconBg,i=e.valueBg;return Object($.jsxs)(Yt,{children:[Object($.jsx)($t,{children:n}),Object($.jsx)(Xt,{bgColor:r,children:Object($.jsx)(t,{})}),Object($.jsx)(qt,{bgColor:i,children:a})]})}var bn=Fe,un=Ee,hn={light:{downloadSpeed:{iconBGColor:"#118f00",valueBGColor:"#13a300"},uploadSpeed:{iconBGColor:"#0146ad",valueBGColor:"#0058db"},peers:{iconBGColor:"#cdc118",valueBGColor:"#d8cb18"},piecesCount:{iconBGColor:"#b6c95e",valueBGColor:"#c0d076"},piecesLength:{iconBGColor:"#0982c8",valueBGColor:"#098cd7"},status:{iconBGColor:"#aea25b",valueBGColor:"#b4aa6e"},size:{iconBGColor:"#9b01ad",valueBGColor:"#ac03bf"}},dark:{downloadSpeed:{iconBGColor:"#0c6600",valueBGColor:"#0d7000"},uploadSpeed:{iconBGColor:"#003f9e",valueBGColor:"#0047b3"},peers:{iconBGColor:"#a69c11",valueBGColor:"#b4a913"},piecesCount:{iconBGColor:"#8da136",valueBGColor:"#99ae3d"},piecesLength:{iconBGColor:"#07659c",valueBGColor:"#0872af"},status:{iconBGColor:"#938948",valueBGColor:"#9f9450"},size:{iconBGColor:"#81008f",valueBGColor:"#9102a1"}}};function xn(e){var t=Object(a.useContext)(No).isDarkMode;return hn[t?un:bn][e]}var gn,mn,On,fn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("downloadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("DownloadSpeed"),value:Z(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:rn.a})},Cn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("uploadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("UploadSpeed"),value:Z(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:on.a})},vn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("peers"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("Peers"),value:_(t)||"0 \xb7 0 / 0",iconBg:r,valueBg:i,icon:cn.a})},yn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("piecesCount"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("PiecesCount"),value:t,iconBg:r,valueBg:i,icon:ln.a})},wn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("piecesLength"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("PiecesLength"),value:V(t),iconBg:r,valueBg:i,icon:sn.a})},Sn=function(e){var t,n=e.stat,a=Object(ce.a)().t,r=(t={},Object(an.a)(t,1,a("TorrentGettingInfo")),Object(an.a)(t,2,a("TorrentPreload")),Object(an.a)(t,3,a("TorrentWorking")),Object(an.a)(t,4,a("TorrentClosed")),Object(an.a)(t,5,a("TorrentInDb")),t),i=xn("status"),o=i.iconBGColor,c=i.valueBGColor;return Object($.jsx)(jn,{title:a("TorrentStatus"),value:r[n],iconBg:o,valueBg:c,icon:dn.a})},kn=function(e){var t=e.data,n=Object(ce.a)().t,a=xn("size"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(jn,{title:n("TorrentSize"),value:V(t),iconBg:r,valueBg:i,icon:pn.a})};function Dn(e){var t=e.downloadSpeed,n=e.uploadSpeed,a=e.torrent,r=e.torrentSize,i=e.PiecesCount,o=e.PiecesLength,c=e.stat,l=e.cache,s=Object(ce.a)().t;return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(tn,{children:[Object($.jsx)(_t,{mb:20,children:s("Data")}),Object($.jsxs)(Jt,{detailedView:!0,children:[Object($.jsx)(fn,{data:t}),Object($.jsx)(Cn,{data:n}),Object($.jsx)(vn,{data:a}),Object($.jsx)(kn,{data:r}),Object($.jsx)(yn,{data:i}),Object($.jsx)(wn,{data:o}),Object($.jsx)(Sn,{stat:c})]})]}),Object($.jsxs)(nn,{children:[Object($.jsx)(_t,{color:"#000",mb:20,children:s("Cache")}),Object($.jsx)(Ke,{cache:l})]})]})}var Tn=Ue.d.div(gn||(gn=Object(He.a)(["\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n"]))),Pn=Ue.d.div(mn||(mn=Object(He.a)(["\n ","\n"])),(function(e){var t=e.mb,n=e.theme.torrentFunctions.fontColor;return Object(Ue.c)(On||(On=Object(He.a)(["\n ",";\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 18px;\n ",";\n }\n "])),t&&"margin-bottom: ".concat(t,"px"),n,t&&"margin-bottom: ".concat(t/1.5,"px"))})),Mn=Object(a.memo)((function(e){var t,n=e.hash,a=e.viewedFileList,r=e.playableFileList,i=e.name,o=e.title,c=e.setViewedFileList,l=Object(ce.a)().t,s=null===a||void 0===a?void 0:a[(null===a||void 0===a?void 0:a.length)-1],d=null===r||void 0===r||null===(t=r.find((function(e){return e.id===s})))||void 0===t?void 0:t.path,p=1===(null===r||void 0===r?void 0:r.length),j=d&&ie.a.parse(d),b="".concat("".concat(C,"/stream"),"/").concat(encodeURIComponent(i||o||"file"),".m3u?link=").concat(n,"&m3u"),u="".concat(b,"&fromlast");return Object($.jsxs)($.Fragment,{children:[!p&&!!(null===a||void 0===a?void 0:a.length)&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pn,{children:l("DownloadPlaylist")}),Object($.jsxs)(Zt,{mb:10,children:[Object($.jsx)("strong",{children:l("LatestFilePlayed")})," ",null===j||void 0===j?void 0:j.title,".",(null===j||void 0===j?void 0:j.season)&&Object($.jsxs)($.Fragment,{children:[" ",l("Season"),": ",null===j||void 0===j?void 0:j.season,". ",l("Episode"),": ",null===j||void 0===j?void 0:j.episode,"."]})]}),Object($.jsxs)(Tn,{children:[Object($.jsx)("a",{style:{textDecoration:"none"},href:b,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:l("Full")})}),Object($.jsx)("a",{style:{textDecoration:"none"},href:u,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:l("FromLatestFile")})})]})]}),Object($.jsx)(Pn,{mb:10,children:l("TorrentState")}),Object($.jsxs)(Tn,{children:[Object($.jsx)(ne.a,{onClick:function(){return P.a.post(y(),{action:"rem",hash:n,file_index:-1}).then((function(){return c()}))},variant:"contained",color:"primary",size:"large",children:l("RemoveViews")}),Object($.jsx)(ne.a,{onClick:function(){return P.a.post(v(),{action:"drop",hash:n})},variant:"contained",color:"primary",size:"large",children:l("DropTorrent")})]}),Object($.jsx)(Pn,{mb:10,children:l("Info")}),Object($.jsxs)(Tn,{children:[(p||!(null===a||void 0===a?void 0:a.length))&&Object($.jsx)("a",{style:{textDecoration:"none"},href:b,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:l("DownloadPlaylist")})}),Object($.jsx)(Je.CopyToClipboard,{text:n,children:Object($.jsx)(ne.a,{variant:"contained",color:"primary",size:"large",children:l("CopyHash")})})]})]})}),(function(){return!0})),Bn=["3g2","3gp","aaf","asf","avchd","avi","drc","flv","iso","m2v","m2ts","m4p","m4v","mkv","mng","mov","mp2","mp4","mpe","mpeg","mpg","mpv","mxf","nsv","ogg","ogv","ts","qt","rm","rmvb","roq","svi","vob","webm","wmv","yuv","aac","aiff","ape","au","flac","gsm","it","m3u","m4a","mid","mod","mp3","mpa","pls","ra","s3m","sid","wav","wma","xm"],Rn=function(){return Object($.jsx)("div",{style:{minHeight:"80vh",display:"grid",placeItems:"center"},children:Object($.jsx)(oe.a,{color:"secondary"})})};function Ln(e){var t,n=e.closeDialog,r=e.torrent,i=Object(ce.a)().t,o=Object(a.useState)(!0),c=Object(l.a)(o,2),s=c[0],d=c[1],p=Object(a.useState)(!1),j=Object(l.a)(p,2),b=j[0],u=j[1],h=Object(a.useState)(),x=Object(l.a)(h,2),g=x[0],m=x[1],O=Object(a.useState)(),f=Object(l.a)(O,2),C=f[0],v=f[1],S=Object(a.useState)(null),k=Object(l.a)(S,2),D=k[0],T=k[1],B=Object(a.useState)(),R=Object(l.a)(B,2),L=R[0],A=R[1],z=r.poster,F=r.hash,E=r.title,G=r.name,N=r.stat,I=r.download_speed,H=r.upload_speed,U=r.torrent_size,W=r.file_stats,Z=le(F),_=function(e){var t=Object(a.useState)(),n=Object(l.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){P.a.post(w(),{action:"get"}).then((function(e){var t=e.data;return i(t)}))}),[e]),r}(Z),J=Z.Capacity,Y=Z.PiecesCount,q=Z.PiecesLength,Q=Z.Filled;Object(a.useEffect)((function(){if(C&&null===D){var e=[];C.forEach((function(t){var n=t.path,a=ie.a.parse(n).season;a&&!e.includes(a)&&e.push(a)})),e.length&&A(e[0]),T(e.sort((function(e,t){return e-t})))}}),[C,D]),Object(a.useEffect)((function(){v(null===W||void 0===W?void 0:W.filter((function(e){var t,n=e.path;return t=n,Bn.includes(function(e){var t=e.split(".").pop();return t===e?"":t.toLowerCase()}(t))})))}),[W]),Object(a.useEffect)((function(){var e=!!Object.entries(Z).length,t=1!==N&&5!==N;e||s||d(!0),e&&s&&t&&d(!1)}),[N,Z,s]),Object(a.useEffect)((function(){P.a.post(y(),{action:"list",hash:F}).then((function(e){var t=e.data;if(t){var n=t.map((function(e){return e.file_index})).sort((function(e,t){return e-t}));m(n)}else m()}))}),[F]);var ee=J/100*(null===_||void 0===_?void 0:_.PreloadCache),te=ee>33554432?ee:33554432,re=function(){var e=[],t=G&&ie.a.parse(G);E!==G?e.push(K(E)):(null===t||void 0===t?void 0:t.title)&&e.push(K(null===t||void 0===t?void 0:t.title)),(null===t||void 0===t?void 0:t.year)&&!e[0].includes(null===t||void 0===t?void 0:t.year)&&e.push(null===t||void 0===t?void 0:t.year),(null===t||void 0===t?void 0:t.resolution)&&!e[0].includes(null===t||void 0===t?void 0:t.resolution)&&e.push(null===t||void 0===t?void 0:t.resolution);var n=e.join(". ");return"."===n[n.length-1]&&"."===n[n.length-2]?"".concat(n,"."):n};return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(xe,Object(M.a)({onClose:n,title:i(b?"DetailedCacheView.header":"TorrentDetails")},b&&{onBack:function(){return u(!1)}})),Object($.jsx)("div",{style:Object(M.a)({minHeight:"80vh",overflow:"auto"},b&&{display:"flex",flexDirection:"column"}),children:s?Object($.jsx)(Rn,{}):b?Object($.jsx)(Dn,{downloadSpeed:I,uploadSpeed:H,torrent:r,torrentSize:U,PiecesCount:Y,PiecesLength:q,stat:N,cache:Z}):Object($.jsxs)(It,{children:[Object($.jsxs)(Ut,{children:[Object($.jsx)(Ht,{poster:z,children:z?Object($.jsx)("img",{alt:"poster",src:z}):Object($.jsx)(X,{})}),Object($.jsxs)("div",{children:[E&&G!==E?re().length>90?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(_t,{children:ie.a.parse(G).title}),Object($.jsx)(Zt,{mb:20,children:re()})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(_t,{children:re()}),Object($.jsx)(Zt,{mb:20,children:null===(t=ie.a.parse(G||""))||void 0===t?void 0:t.title})]}):Object($.jsx)(_t,{mb:20,children:re()}),Object($.jsxs)(Jt,{children:[Object($.jsx)(fn,{data:I}),Object($.jsx)(Cn,{data:H}),Object($.jsx)(vn,{data:r}),Object($.jsx)(kn,{data:U}),Object($.jsx)(Sn,{stat:N})]}),Object($.jsx)(en,{}),Object($.jsx)(Mn,{hash:F,viewedFileList:g,playableFileList:C,name:G,title:E,setViewedFileList:m})]})]}),Object($.jsxs)(Wt,{children:[Object($.jsxs)(Kt,{children:[Object($.jsx)(_t,{mb:20,children:i("Buffer")}),te<=33554432&&Object($.jsx)(Zt,{children:i("BufferNote")}),Object($.jsx)(Qt,{value:Q,style:{marginTop:"5px"},fullAmount:te,label:"".concat(V(te)," / ").concat(V(Q)||"0 ".concat(i("B")))})]}),Object($.jsx)(Ke,{isMini:!0,cache:Z}),Object($.jsx)(ne.a,{style:{marginTop:"30px"},variant:"contained",color:"primary",size:"large",onClick:function(){return u(!0)},children:i("DetailedCacheView.button")})]}),Object($.jsxs)(Vt,{children:[Object($.jsx)(_t,{mb:20,children:i("TorrentContent")}),(null===D||void 0===D?void 0:D.length)>1&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Zt,{mb:7,children:i("SelectSeason")}),Object($.jsx)(ae.a,{style:{marginBottom:"30px"},color:"secondary",children:D.map((function(e){return Object($.jsx)(ne.a,{variant:L===e?"contained":"outlined",onClick:function(){return A(e)},children:e},e)}))}),Object($.jsxs)(_t,{mb:20,children:[i("Season")," ",L]})]}),Object($.jsx)(Nt,{hash:F,playableFileList:C,viewedFileList:g,selectedSeason:L,seasonAmount:D})]})]})})]})}var An=n(481),zn=n(450),Fn=n(455),En=n(456),Gn=n(186),Nn=n.n(Gn),In=function(){var e=Object(ce.a)().i18n;return["en-US"===e.language||"en"===e.language?"en":e.language,function(t){return e.changeLanguage(t)}]};function Hn(e){var t=Object(a.useRef)(e);return Object(a.useEffect)((function(){t.current=e}),[e]),t.current}var Un,Wn,Vn,Zn,_n,Kn,Jn,Yn,$n,Xn,qn,Qn,ea,ta,na,aa,ra,ia,oa,ca,la,sa,da,pa,ja,ba,ua,ha,xa,ga=n(479),ma=n(107),Oa=n.n(ma),fa=Ue.d.div(Un||(Un=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(Ue.c)(Wn||(Wn=Object(He.a)(["\n background: ",";\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n "])),t)})),Ca=Ue.d.div(Vn||(Vn=Object(He.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n"]))),va=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en",n="http://api.themoviedb.org/3/search/multi";return P.a.get(n,{params:{api_key:"45ddf563ac3fb845f2d5c363190d1a33",language:t,include_image_language:"".concat(t,",null,en"),query:e}}).then((function(e){return e.data.results.filter((function(e){return e.poster_path})).map((function(e){return"https://image.tmdb.org/t/p/w300".concat(e.poster_path)}))})).catch((function(){return null}))},ya=function(){var e=Object(F.a)(z.a.mark((function e(t){return z.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.match(/.(jpg|jpeg|png|gif)$/i)){e.next=2;break}return e.abrupt("return",!1);case 2:return e.abrupt("return",!0);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),wa=/^magnet:\?xt=urn:[a-z0-9].*/i,Sa=/^\b[0-9a-f]{32}\b$|^\b[0-9a-f]{40}\b$|^\b[0-9a-f]{64}\b$/i,ka=/^.*\.(torrent)$/i,Da=/^(http(s?)):\/\/.*/i,Ta=Ue.d.div(Zn||(Zn=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isEditMode,n=e.theme.addDialog,a=n.gradientStartColor,r=n.gradientEndColor,i=n.fontColor;return Object(Ue.c)(_n||(_n=Object(He.a)(["\n height: 550px;\n background: linear-gradient(145deg, ",", ",");\n flex: 1;\n display: grid;\n grid-template-columns: repeat(",", 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ",";\n\n @media (max-width: 540px) {\n ","\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n "])),a,r,t?"1":"2",i,"")})),Pa=Ue.d.div(Kn||(Kn=Object(He.a)(["\n padding: 0 20px 20px 20px;\n"]))),Ma=Ue.d.div(Jn||(Jn=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isHidden,n=e.notificationMessage,a=e.isError,r=e.theme.addDialog,i=r.notificationErrorBGColor,o=r.notificationSuccessBGColor;return Object(Ue.c)(Yn||(Yn=Object(He.a)(["\n height: 530px;\n\n ",";\n\n ",";\n\n @media (max-width: 500px) {\n height: 170px;\n }\n "])),n&&Object(Ue.c)($n||($n=Object(He.a)(["\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '","';\n display: grid;\n place-items: center;\n background: ",";\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n "])),n,a?i:o),t&&Object(Ue.c)(Xn||(Xn=Object(He.a)(["\n display: none;\n "]))))})),Ba=Ue.d.div(qn||(qn=Object(He.a)(["\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n"]))),Ra=Object(Ue.c)(Qn||(Qn=Object(He.a)(["\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n"]))),La=Ue.d.div(ea||(ea=Object(He.a)(["\n ","\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n\n ",";\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n"])),Ra,(function(e){return e.isDragActive&&"border: 4px dashed green"})),Aa=Ue.d.div(ta||(ta=Object(He.a)(["\n ","\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n"])),Ra),za=Ue.d.div(na||(na=Object(He.a)(["\n position: relative;\n"]))),Fa=Ue.d.div(aa||(aa=Object(He.a)(["\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n"]))),Ea=Ue.d.div(ra||(ra=Object(He.a)(["\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n"]))),Ga=Ue.d.div(ia||(ia=Object(He.a)(["\n ","\n"])),(function(e){var t=e.active,n=e.theme.addDialog.gradientStartColor;return Object(Ue.c)(oa||(oa=Object(He.a)(["\n background: ",";\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ",";\n "])),n,t&&"box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)")})),Na=Ue.d.div(ca||(ca=Object(He.a)(["\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n"]))),Ia=Ue.d.div(la||(la=Object(He.a)(["\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n"]))),Ha=Ue.d.div(sa||(sa=Object(He.a)(["\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n"]))),Ua=Ue.d.div(da||(da=Object(He.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.addDialog.posterBGColor;return Object(Ue.c)(pa||(pa=Object(He.a)(["\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ","\n "])),t?Object(Ue.c)(ja||(ja=Object(He.a)(["\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(Ue.c)(ba||(ba=Object(He.a)(["\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n "])),n))})),Wa=Object(Ue.d)(ne.a)(ua||(ua=Object(He.a)(["\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ",";\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n"])),(function(e){return!e.showbutton&&"display: none"})),Va=Ue.d.div(ha||(ha=Object(He.a)(["\n ","\n"])),(function(e){var t=e.showbutton,n=e.theme.addDialog,a=n.languageSwitchBGColor,r=n.languageSwitchFontColor;return Object(Ue.c)(xa||(xa=Object(He.a)(["\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ",";\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ",";\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ",";\n\n :hover {\n filter: brightness(1.1);\n }\n "])),a,r,!t&&"display: none")})),Za=n(483),_a=n(447),Ka=n(448);function Ja(e){var t=e.setTitle,n=e.setPosterUrl,a=e.setIsPosterUrlCorrect,r=e.setIsUserInteractedWithPoster,i=e.setPosterList,o=e.isTorrentSourceCorrect,c=e.isHashAlreadyExists,l=e.title,s=e.parsedTitle,d=e.posterUrl,j=e.isPosterUrlCorrect,b=e.posterList,u=e.currentLang,h=e.posterSearchLanguage,x=e.setPosterSearchLanguage,g=e.posterSearch,m=e.removePoster,O=e.torrentSource,f=e.originalTorrentTitle,C=e.updateTitleFromSource,v=e.isCustomTitleEnabled,y=e.setIsCustomTitleEnabled,w=e.isEditMode,S=Object(ce.a)().t,k=Object(Y.a)().palette.primary.main,D=function(e){var n=e.target.value;return t(n)};return Object($.jsxs)(Pa,{children:[Object($.jsxs)(Ma,{isHidden:!o||c&&!w,children:[f?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Za.a,{value:f,margin:"dense",label:S("AddDialog.OriginalTorrentTitle"),type:"text",fullWidth:!0,disabled:v,InputProps:{readOnly:!0}}),Object($.jsx)(Za.a,{onChange:D,onFocus:function(){return y(!0)},onBlur:function(e){return!e.target.value&&y(!1)},value:l,margin:"dense",label:S("AddDialog.CustomTorrentTitle"),type:"text",fullWidth:!0,helperText:S("AddDialog.CustomTorrentTitleHelperText"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:Object($.jsx)(p.a,{style:{padding:"1px"},onClick:function(){t(""),y(!v),C(),r(!1)},children:Object($.jsx)(Ka.a,{style:{color:v?k:Object(Le.a)("#ccc",.5)}})})})}})]}):Object($.jsx)(Za.a,{onChange:D,value:l,margin:"dense",label:S("AddDialog.TitleBlank"),type:"text",fullWidth:!0}),Object($.jsx)(Za.a,{onChange:function(e){var t=e.target.value;n(t),ya(t).then(a),r(!!t),i()},value:d,margin:"dense",label:S("AddDialog.AddPosterLinkInput"),type:"url",fullWidth:!0}),Object($.jsxs)(Na,{children:[Object($.jsx)(Ua,{poster:+j,children:j?Object($.jsx)("img",{src:d,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsx)(Ia,{children:null===b||void 0===b?void 0:b.filter((function(e){return e!==d})).slice(0,12).map((function(e){return Object($.jsx)(Ha,{onClick:function(){return function(e){n(e),ya(e).then(a),r(!0)}(e)},children:Object($.jsx)("img",{src:e,alt:"poster"})},e)}))}),"en"!==u&&Object($.jsx)(Va,{onClick:function(){var e="en"===h?"ru":"en";x(e),g(v?l:f?s:l,e,{shouldRefreshMainPoster:!0})},showbutton:+j,color:"primary",variant:"contained",size:"small",children:"en"===h?"EN":"RU"}),Object($.jsx)(Wa,{showbutton:+j,onClick:function(){m(),r(!0)},color:"primary",variant:"contained",size:"small",children:S("Clear")})]})]}),Object($.jsx)(Ma,{isError:O&&(!o||c),notificationMessage:O?o?c&&S("AddDialog.HashExists"):S("AddDialog.WrongTorrentSource"):S("AddDialog.AddTorrentSourceNotification"),isHidden:w||o&&!c})]})}var Ya,$a,Xa,qa,Qa,er,tr,nr,ar,rr,ir=n(196),or=n(449);function cr(e){var t=e.setIsUserInteractedWithPoster,n=e.setSelectedFile,r=e.torrentSource,i=e.setTorrentSource,o=e.selectedFile,c=Object(ce.a)().t,s=Object(a.useState)(!1),d=Object(l.a)(s,2),p=d[0],j=d[1],b=Object(ir.a)({onDrop:function(e){var a=Object(l.a)(e,1)[0];a&&(t(!1),n(a),i(a.name))},accept:".torrent"}),u=b.getRootProps,h=b.getInputProps,x=b.isDragActive;return Object($.jsxs)(Ba,{children:[Object($.jsx)(Ga,{active:p,children:Object($.jsx)(Za.a,{onChange:function(e){var t=e.target.value;return i(t)},value:r,margin:"dense",label:c("AddDialog.TorrentSourceLink"),helperText:c("AddDialog.TorrentSourceOptions"),type:"text",fullWidth:!0,onFocus:function(){return j(!0)},onBlur:function(){return j(!1)},inputProps:{autoComplete:"off"},disabled:!!o})}),o?Object($.jsx)(Aa,{children:Object($.jsxs)(za,{children:[Object($.jsx)(te,{}),Object($.jsx)(Fa,{onClick:function(){n(),i("")},children:Object($.jsx)(or.a,{})})]})}):Object($.jsxs)(La,Object(M.a)(Object(M.a)({isDragActive:x},u()),{},{children:[Object($.jsx)("input",Object(M.a)({},h())),Object($.jsx)("div",{children:c("AddDialog.AppendFile.Or")}),Object($.jsxs)(Ea,{children:[Object($.jsx)(q,{color:"primary"}),Object($.jsx)("div",{children:c("AddDialog.AppendFile.ClickOrDrag")})]})]}))]})}function lr(e){var t=e.handleClose,n=e.hash,r=e.title,i=e.name,o=e.poster,c=Object(ce.a)().t,s=!!n,d=Object(a.useState)(n||""),p=Object(l.a)(d,2),j=p[0],b=p[1],u=Object(a.useState)(r||""),h=Object(l.a)(u,2),x=h[0],g=h[1],m=Object(a.useState)(""),O=Object(l.a)(m,2),f=O[0],y=O[1],w=Object(a.useState)(""),S=Object(l.a)(w,2),k=S[0],D=S[1],T=Object(a.useState)(o||""),M=Object(l.a)(T,2),B=M[0],R=M[1],L=Object(a.useState)(!1),A=Object(l.a)(L,2),z=A[0],F=A[1],E=Object(a.useState)(!1),G=Object(l.a)(E,2),N=G[0],I=G[1],H=Object(a.useState)(!1),U=Object(l.a)(H,2),W=U[0],V=U[1],Z=Object(a.useState)(),_=Object(l.a)(Z,2),K=_[0],Y=_[1],X=Object(a.useState)(s),q=Object(l.a)(X,2),Q=q[0],ee=q[1],te=In(),ae=Object(l.a)(te,1)[0],re=Object(a.useState)(),le=Object(l.a)(re,2),se=le[0],de=le[1],pe=Object(a.useState)("ru"===ae?"ru":"en"),je=Object(l.a)(pe,2),be=je[0],ue=je[1],he=Object(a.useState)(!1),xe=Object(l.a)(he,2),ge=xe[0],me=xe[1],Oe=Object(a.useState)(!1),fe=Object(l.a)(Oe,2),Ce=fe[0],ve=fe[1],ye=Object(a.useState)(!1),we=Object(l.a)(ye,2),Se=we[0],ke=we[1],De=Object(a.useState)(),Te=Object(l.a)(De,2),Pe=Te[0],Me=Te[1],Be=Object(ga.a)("torrents",J,{retry:1,refetchInterval:1e3}).data;Object(a.useEffect)((function(){Oa.a.remote(se||j,(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.infoHash;return Me(n)}))}),[se,j]),Object(a.useEffect)((function(){if(Me){var e=Be.map((function(e){return e.hash}));V(e.includes(Pe))}}),[Pe,Be]),Object(a.useEffect)((function(){ge&&(Be.map((function(e){return e.hash})).includes(Pe)&&t())}),[ge,Be,Pe,t]);var Le=Object(Re.a)("@media (max-width:930px)"),Ae=Object(a.useCallback)((function(){var e,t;e=se||j,t=function(e){var t=e.parsedTitle,n=e.originalName;n&&(ve(!0),g(""),ke(!1),y(n),D(t))},Oa.a.remote(e,(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=n.name,r=n.files;if(!a||e)return t({parsedTitle:null,originalName:null});var i=ie.a.parse(a).title,o=r?ie.a.parse(r[0].name).title:null,c=i;o&&(c=i.length2&&void 0!==arguments[2]?arguments[2]:{},a=n.shouldRefreshMainPoster,r=void 0!==a&&a;if(!e)return Y(),void ze();va(e,t).then((function(e){if(e){if(Y(e),!r&&Q)return;var t=Object(l.a)(e,1)[0];ya(t).then((function(e){e?(F(!0),R(t)):ze()}))}else{if(Y(),Q)return;ze()}}))}}),[Q]),Ee=Object(a.useMemo)((function(){return Nn()(Fe,700)}),[Fe]),Ge=Hn(j);Object(a.useEffect)((function(){var e;if(!(null!==(e=j).match(Sa)||null!==e.match(wa)||null!==e.match(ka)||null!==e.match(Da)))return I(!1);I(!0),j!==Ge&&Ae()}),[Ge,se,j,Ae]);var Ne=Hn(x);Object(a.useEffect)((function(){(x!==Ne||k)&&(Ce?(Fe(x||k,be),ve(!1)):x?Ee(x,be):(Ee.cancel(),k?Fe(k,be):!Q&&ze()))}),[x,k,Ne,Ee,Fe,be,Ce,Q]);return Object($.jsxs)(An.a,{open:!0,onClose:t,fullScreen:Le,fullWidth:!0,maxWidth:"md",children:[Object($.jsx)(fa,{children:c(s?"EditTorrent":"AddNewTorrent")}),Object($.jsxs)(Ta,{isEditMode:s,children:[!s&&Object($.jsx)(cr,{setIsUserInteractedWithPoster:ee,selectedFile:se,setSelectedFile:de,torrentSource:j,setTorrentSource:b}),Object($.jsx)(Ja,{originalTorrentTitle:f,setTitle:g,setPosterUrl:R,setIsPosterUrlCorrect:F,setIsUserInteractedWithPoster:ee,setPosterList:Y,isTorrentSourceCorrect:N,isHashAlreadyExists:W,title:x,parsedTitle:k,posterUrl:B,isPosterUrlCorrect:z,posterList:K,currentLang:ae,posterSearchLanguage:be,setPosterSearchLanguage:ue,posterSearch:Fe,removePoster:ze,updateTitleFromSource:Ae,torrentSource:j,isCustomTitleEnabled:Se,setIsCustomTitleEnabled:ke,isEditMode:s})]}),Object($.jsxs)(Ca,{children:[Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"outlined",children:c("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",style:{minWidth:"110px"},disabled:!j||W&&!s||!N,onClick:function(){if(me(!0),s)P.a.post(v(),{action:"set",hash:n,title:x||i,poster:B}).finally(t);else if(se){var e=new FormData;e.append("save","true"),e.append("file",se),x&&e.append("title",x),B&&e.append("poster",B),P.a.post("".concat(C,"/torrent/upload"),e).catch(t)}else P.a.post(v(),{action:"add",link:j,title:x,poster:B,save_to_db:!0}).catch(t)},color:"secondary",children:ge?Object($.jsx)(oe.a,{style:{color:"white"},size:20}):c(s?"Save":"Add")})]})]})}var sr,dr,pr,jr,br,ur,hr,xr,gr,mr,Or,fr,Cr,vr=Ue.d.div(Ya||(Ya=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard.cardPrimaryColor;return Object(Ue.c)($a||($a=Object(He.a)(["\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ",";\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n "])),t)})),yr=Ue.d.div(Xa||(Xa=Object(He.a)(["\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n\n ",";\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n"])),(function(e){var t=e.isPoster,n=e.theme.torrentCard,a=n.cardSecondaryColor,r=n.accentCardColor;return t?Object(Ue.c)(qa||(qa=Object(He.a)(["\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n "]))):Object(Ue.c)(Qa||(Qa=Object(He.a)(["\n display: grid;\n place-items: center;\n background: ",";\n border: 1px solid ",";\n\n svg {\n transform: translateY(-3px);\n }\n "])),a,r)})),wr=Ue.d.div(er||(er=Object(He.a)(["\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n"]))),Sr=Ue.d.div(tr||(tr=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.cardSecondaryColor,a=t.accentCardColor;return Object(Ue.c)(nr||(nr=Object(He.a)(["\n grid-area: description;\n background: ",";\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ",";\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n "])),n,a)})),kr=Ue.d.button(ar||(ar=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.buttonBGColor,a=t.accentCardColor;return Object(Ue.c)(rr||(rr=Object(He.a)(["\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ",";\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ",";\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n "])),n,a)})),Dr=Object(a.forwardRef)((function(e,t){return Object($.jsx)(zn.a,Object(M.a)({direction:"up",ref:t},e))})),Tr=function(e){var t=e.torrent,n=Object(ce.a)().t,r=Object(a.useState)(!1),i=Object(l.a)(r,2),o=i[0],c=i[1],s=Object(a.useState)(!1),d=Object(l.a)(s,2),p=d[0],b=d[1],u=Object(Y.a)(),h=Object(Re.a)(u.breakpoints.down("md")),x=function(){return c(!1)},g=function(){return b(!1)},m=t.title,O=t.name,f=t.poster,C=t.torrent_size,y=t.download_speed,w=t.hash,S=function(){var e=function(e){var t,n;return(null===(t=ie.a.parse(m||""))||void 0===t?void 0:t[e])||(null===(n=ie.a.parse(O||""))||void 0===n?void 0:n[e])},t=[],n=K(e("title")),a=e("year"),r=e("resolution");return n&&t.push(n),a&&t.push("(".concat(a,")")),r&&t.push("[".concat(r,"]")),{parsedTitle:n=t.join(" ")}}().parsedTitle,k=Object(a.useState)(!1),D=Object(l.a)(k,2),T=D[0],M=D[1];return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(vr,{children:[Object($.jsx)(yr,{isPoster:f,children:f?Object($.jsx)("img",{src:f,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsxs)(wr,{children:[Object($.jsxs)(kr,{onClick:function(){return c(!0)},children:[Object($.jsx)(B.a,{}),Object($.jsx)("span",{children:n("Details")})]}),Object($.jsxs)(kr,{onClick:function(){return M(!0)},children:[Object($.jsx)(R.a,{}),Object($.jsx)("span",{children:n("Edit")})]}),Object($.jsxs)(kr,{onClick:function(){return P.a.post(v(),{action:"drop",hash:w})},children:[Object($.jsx)(j.a,{}),Object($.jsx)("span",{children:n("Drop")})]}),Object($.jsxs)(kr,{onClick:function(){return b(!0)},children:[Object($.jsx)(L.a,{}),Object($.jsx)("span",{children:n("Delete")})]})]}),Object($.jsxs)(Sr,{children:[Object($.jsxs)("div",{className:"description-title-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Name")}),Object($.jsx)("div",{className:"description-torrent-title",children:S})]}),Object($.jsxs)("div",{className:"description-statistics-wrapper",children:[Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Size")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:C>0&&V(C)})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Speed")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:y>0?Z(y):"---"})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Peers")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:_(t)||"---"})]})]})]})]}),Object($.jsx)(An.a,{open:o,onClose:x,fullScreen:h,fullWidth:!0,maxWidth:"xl",TransitionComponent:Dr,children:Object($.jsx)(Ln,{closeDialog:x,torrent:t})}),Object($.jsxs)(An.a,{open:p,onClose:g,children:[Object($.jsx)(Fn.a,{children:n("DeleteTorrent?")}),Object($.jsxs)(En.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:g,color:"secondary",children:n("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){P.a.post(v(),{action:"rem",hash:w}),g()},color:"secondary",autoFocus:!0,children:n("OK")})]})]}),T&&Object($.jsx)(lr,{hash:w,title:m,name:O,poster:f,handleClose:function(){return M(!1)}})]})},Pr=Object(a.memo)(Tr),Mr=Ue.d.div(sr||(sr=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.app.appSecondaryColor;return Object(Ue.c)(dr||(dr=Object(He.a)(["\n height: 100%;\n background: ",";\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n "])),Object(Le.a)(t,.8))})),Br=Ue.d.div(pr||(pr=Object(He.a)(["\n height: 100%;\n display: grid;\n place-items: center;\n"]))),Rr=Ue.d.div(jr||(jr=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(Ue.c)(br||(br=Object(He.a)(["\n background: ",";\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n "])),t)})),Lr=Ue.d.div(ur||(ur=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isDrawerOpen,n=e.theme.app,a=n.appSecondaryColor,r=n.sidebarBGColor,i=n.sidebarFillColor;return Object(Ue.c)(hr||(hr=Object(He.a)(["\n grid-area: side;\n width: ",";\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ",";\n background: ",";\n color: ",";\n white-space: nowrap;\n\n svg {\n fill: ",";\n }\n "])),t?"400%":"100%",Object(Le.a)(a,.12),r,i,i)})),Ar=Ue.d.div(xr||(xr=Object(He.a)(["\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n"]))),zr=Ue.d.div(gr||(gr=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.app.headerToggleColor;return Object(Ue.c)(mr||(mr=Object(He.a)(["\n cursor: pointer;\n border-radius: 50%;\n background: ",";\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ",";\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n "])),t,Object(Le.a)(t,.7))})),Fr=Ue.d.div(Or||(Or=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isButton;return Object(Ue.c)(fr||(fr=Object(He.a)(["\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ","\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n "])),t&&Object(Ue.c)(Cr||(Cr=Object(He.a)(["\n background: #88cdaa;\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: #74c39c;\n }\n "]))))}));function Er(){var e=Object(ce.a)().t,t=Object(Y.a)().palette.primary.main;return Object($.jsxs)(Fr,{children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/wrprwmwt.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(t),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("Offline")})]})}function Gr(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(Y.a)().palette.primary.main;return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Fr,{onClick:function(){return i(!0)},isButton:!0,children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/bbnkwdur.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(o),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("NoTorrentsAdded")})]}),r&&Object($.jsx)(lr,{handleClose:function(){return i(!1)}})]})}function Nr(e){var t=e.isOffline,n=e.isLoading,a=e.torrents;return n||t||!a.length?Object($.jsx)(Br,{children:t?Object($.jsx)(Er,{}):n?Object($.jsx)(oe.a,{color:"secondary"}):!a.length&&Object($.jsx)(Gr,{})}):Object($.jsx)(Ar,{children:a.map((function(e){return Object($.jsx)(Pr,{torrent:e},e.hash)}))})}var Ir=n(482),Hr=n(189),Ur=n.n(Hr),Wr=n(458),Vr=n(457),Zr=n(446);function _r(e){var t=e.onClose,n=Object(ce.a)().t;return Object($.jsxs)(An.a,{open:!0,onClose:t,"aria-labelledby":"form-dialog-title",fullWidth:!0,maxWidth:"xs",children:[Object($.jsx)(Fn.a,{id:"form-dialog-title",children:n("Donate")}),Object($.jsx)(Vr.a,{children:Object($.jsxs)(Zr.a,{children:[Object($.jsx)(Wr.a,{children:Object($.jsxs)(ae.a,{variant:"outlined",color:"primary","aria-label":"contained primary button group",children:[Object($.jsx)(ne.a,{onClick:function(){return window.open("https://www.paypal.com/paypalme/yourok","_blank")},children:"PayPal"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://yoomoney.ru/to/410013733697114","_blank")},children:"IO.Money"})]})},"DonateLinks"),Object($.jsx)(Wr.a,{children:Object($.jsx)("div",{dangerouslySetInnerHTML:{__html:''}})},"DonateForm")]})}),Object($.jsx)(En.a,{children:Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"contained",children:"Ok"})})]})}function Kr(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!0),c=Object(l.a)(o,2),s=c[0],d=c[1],j=function(){d(!1),localStorage.setItem("snackbarIsClosed",!0)};return Object($.jsxs)($.Fragment,{children:[r&&Object($.jsx)(_r,{onClose:function(){return i(!1)}}),Object($.jsx)(Ir.a,{anchorOrigin:{vertical:"bottom",horizontal:"center"},open:s,onClose:j,message:e("Donate?"),action:Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(ne.a,{style:{marginRight:"10px"},color:"secondary",size:"small",onClick:function(){i(!0),j()},children:[Object($.jsx)(Ur.a,{style:{marginRight:"10px"},fontSize:"small"}),e("Support")]}),Object($.jsx)(p.a,{size:"small","aria-label":"close",color:"inherit",onClick:j,children:Object($.jsx)(be.a,{fontSize:"small"})})]})})]})}var Jr,Yr=n(469),$r=Object(Ue.b)(Jr||(Jr=Object(He.a)(['\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: "Open Sans", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n }\n\n button {\n font-family: "Open Sans", sans-serif;\n letter-spacing: -0.1px;\n }\n']))),Xr=n(467),qr=n(459),Qr=n(460),ei=n(468),ti=n(190),ni=n.n(ti);function ai(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1];return Object($.jsxs)("div",{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(ni.a,{})}),Object($.jsx)(Qr.a,{primary:r("AddFromLink")})]}),c&&Object($.jsx)(lr,{handleClose:function(){return s(!1)}})]})}var ri,ii,oi,ci,li,si,di,pi,ji,bi,ui,hi,xi,gi,mi,Oi,fi,Ci,vi,yi,wi,Si,ki=n(192),Di=n.n(ki),Ti=n(480),Pi=n(462),Mi=n(477),Bi=n(464),Ri=n(191),Li=n.n(Ri),Ai="#b3dfc9",zi=ze.light.primary,Fi=Object(Ue.d)(fa)(ri||(ri=Object(He.a)(["\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n"]))),Ei=Ue.d.div(ii||(ii=Object(He.a)(["\n ","\n"])),(function(e){var t=e.theme.settingsDialog.footerBG;return Object(Ue.c)(oi||(oi=Object(He.a)(["\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ",";\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n "])),t)})),Gi=(Ue.d.div(ci||(ci=Object(He.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),Ue.d.div(li||(li=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isLoading,n=e.theme.settingsDialog.contentBG;return Object(Ue.c)(si||(si=Object(He.a)(["\n background: ",";\n overflow: auto;\n flex: 1;\n\n ","\n "])),n,t&&Object(Ue.c)(di||(di=Object(He.a)(["\n min-height: 500px;\n display: grid;\n place-items: center;\n "]))))}))),Ni=Ue.d.div(pi||(pi=Object(He.a)(["\n ","\n"])),(function(e){var t=e.color;return Object(Ue.c)(ji||(ji=Object(He.a)(["\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ",";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n "])),t)})),Ii=Ue.d.div(bi||(bi=Object(He.a)(["\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n"]))),Hi=Ue.d.div(ui||(ui=Object(He.a)(["\n padding: 20px;\n"]))),Ui=Ue.d.div(hi||(hi=Object(He.a)(["\n ","\n"])),(function(e){var t=e.small,n=e.selected;return Object(Ue.c)(xi||(xi=Object(He.a)(["\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ","\n\n ","\n "])),!n&&Object(Ue.c)(gi||(gi=Object(He.a)(["\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n "]))),t?Object(Ue.c)(mi||(mi=Object(He.a)(["\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n "]))):Object(Ue.c)(Oi||(Oi=Object(He.a)(["\n display: grid;\n place-items: center;\n gap: 10px;\n "]))))})),Wi=Ue.d.div(fi||(fi=Object(He.a)(["\n ","\n"])),(function(e){var t=e.selected,n=e.small;return Object(Ue.c)(Ci||(Ci=Object(He.a)(["\n width: ",";\n height: ",";\n border-radius: 50%;\n background: ",";\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ",";\n height: ",";\n }\n "])),n?"60px":"150px",n?"60px":"150px",t?"#323637":"#dee3e5",n?"50px":"90px",n?"50px":"90px")})),Vi=Ue.d.div(vi||(vi=Object(He.a)(["\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n"]))),Zi=Ue.d.div(yi||(yi=Object(He.a)(["\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n"]))),_i=Ue.d.div.attrs((function(e){var t=e.value;return{style:{background:"linear-gradient(to right, ".concat(Ai," 0%, ").concat(Ai," ").concat(t,"%, ").concat(zi," ").concat(t,"%, ").concat(zi," 100%)")}}}))(wi||(wi=Object(He.a)(["\n ","\n"])),(function(e){var t=e.label,n=e.preloadCachePercentage;return Object(Ue.c)(Si||(Si=Object(He.a)(["\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ","%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n "])),t,n)})),Ki={CacheSize:96,ReaderReadAHead:95,UseDisk:!1,UploadRateLimit:0,TorrentsSavePath:"",ConnectionsLimit:23,DisableDHT:!1,DisablePEX:!1,DisableTCP:!1,DisableUPNP:!1,DisableUTP:!0,DisableUpload:!1,DownloadRateLimit:0,EnableDebug:!1,EnableIPv6:!1,ForceEncrypt:!1,PeersListenPort:0,PreloadCache:0,RemoveCacheOnDrop:!1,RetrackersMode:1,TorrentDisconnectTimeout:30},Ji=n(197),Yi=function(e){return{id:"full-width-tab-".concat(e),"aria-controls":"full-width-tabpanel-".concat(e)}},$i=function(e){var t=e.children,n=e.value,a=e.index,r=Object(Ji.a)(e,["children","value","index"]);return Object($.jsx)("div",Object(M.a)(Object(M.a)({role:"tabpanel",hidden:n!==a,id:"full-width-tabpanel-".concat(a)},r),{},{children:n===a&&Object($.jsx)($.Fragment,{children:t})}))},Xi=n(463),qi=n(461),Qi=n(487),eo=n(485);function to(e){var t=e.isProMode,n=e.title,a=e.value,r=e.setValue,i=e.sliderMin,o=e.sliderMax,c=e.inputMin,l=e.inputMax,s=e.step,d=void 0===s?1:s,p=e.onBlurCallback;return Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:n}),Object($.jsxs)(qi.a,{container:!0,spacing:2,alignItems:"center",children:[Object($.jsx)(qi.a,{item:!0,xs:!0,children:Object($.jsx)(Qi.a,{min:i,max:o,value:a,onChange:function(e,t){return r(t)},step:d,color:"secondary"})}),t&&Object($.jsx)(qi.a,{item:!0,children:Object($.jsx)(eo.a,{value:a,margin:"dense",onChange:function(e){var t=e.target.value;return r(""===t?"":Number(t))},onBlur:function(e){var t=e.target.value;return tl?r(l):void(p&&p(t))},style:{width:"91px",marginTop:"-6px"},inputProps:{step:d,min:c,max:l,type:"number"}})})]})]})}var no=function(e){var t=e.style,n=Object(ce.a)().t;return Object($.jsxs)(Zi,{style:t,children:[n("SettingsDialog.CacheStorageLocation"),Object($.jsx)("small",{children:n("SettingsDialog.UseDiskDesc")})]})};function ao(e){var t=e.settings,n=e.inputForm,a=e.cachePercentage,r=e.preloadCachePercentage,i=e.cacheSize,o=e.isProMode,c=e.setCacheSize,l=e.setCachePercentage,s=e.setPreloadCachePercentage,d=e.updateSettings,p=Object(ce.a)().t,j=t||{},b=j.UseDisk,u=j.TorrentsSavePath,h=j.RemoveCacheOnDrop,x=Math.round(i/100*r);return Object($.jsxs)(Ii,{children:[Object($.jsxs)("div",{children:[Object($.jsx)(Zi,{children:p("SettingsDialog.CacheSettings")}),Object($.jsx)(_i,{value:100-a,label:"".concat(p("Cache")," ").concat(i," ").concat(p("MB")),preloadCachePercentage:r}),Object($.jsxs)(Ni,{color:Ai,children:[Object($.jsxs)("div",{children:[100-a,"% (",Math.round(i/100*(100-a))," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheBeforeReaderDesc")})]}),Object($.jsxs)(Ni,{color:zi,children:[Object($.jsxs)("div",{children:[a,"% (",Math.round(i/100*a)," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheAfterReaderDesc")})]}),Object($.jsx)("br",{}),Object($.jsx)(to,{isProMode:o,title:p("SettingsDialog.CacheSize"),value:i,setValue:c,sliderMin:32,sliderMax:1024,inputMin:32,inputMax:999999,step:4,onBlurCallback:function(e){return c(4*Math.round(e/4))}}),Object($.jsx)(to,{isProMode:o,title:p("SettingsDialog.ReaderReadAHead"),value:a,setValue:l,sliderMin:40,sliderMax:95,inputMin:0,inputMax:100}),Object($.jsx)(to,{isProMode:o,title:"".concat(p("SettingsDialog.PreloadCache")," - ").concat(r,"% (").concat(x," ").concat(p("MB"),")"),value:r,setValue:s,sliderMin:0,sliderMax:100,inputMin:0,inputMax:100})]}),b?Object($.jsxs)("div",{children:[Object($.jsx)(no,{}),Object($.jsxs)("div",{style:{display:"grid",gridAutoFlow:"column"},children:[Object($.jsxs)(Ui,{small:!0,onClick:function(){return d({UseDisk:!1})},children:[Object($.jsx)(Wi,{small:!0,children:Object($.jsx)(ee,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(Ui,{small:!0,selected:!0,children:[Object($.jsx)(Wi,{small:!0,selected:!0,children:Object($.jsx)(Q,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:h,onChange:n,id:"RemoveCacheOnDrop",color:"secondary"}),label:p("SettingsDialog.RemoveCacheOnDrop"),labelPlacement:"start"}),Object($.jsx)("div",{children:Object($.jsx)("small",{children:p("SettingsDialog.RemoveCacheOnDropDesc")})}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"TorrentsSavePath",label:p("SettingsDialog.TorrentsSavePath"),value:u,type:"url",variant:"outlined",fullWidth:!0})]}):Object($.jsxs)(Vi,{children:[Object($.jsx)(no,{style:{placeSelf:"start",gridArea:"label"}}),Object($.jsxs)(Ui,{selected:!0,children:[Object($.jsx)(Wi,{selected:!0,children:Object($.jsx)(ee,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(Ui,{onClick:function(){return d({UseDisk:!0})},children:[Object($.jsx)(Wi,{children:Object($.jsx)(Q,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]})]})}var ro=n(486),io=n(476);function oo(e){var t=e.settings,n=e.inputForm,a=Object(ce.a)().t,r=t||{},i=r.RetrackersMode,o=r.TorrentDisconnectTimeout,c=r.EnableIPv6,l=r.ForceEncrypt,s=r.DisableTCP,d=r.DisableUTP,p=r.DisableUPNP,j=r.DisableDHT,b=r.DisablePEX,u=r.DisableUpload,h=r.DownloadRateLimit,x=r.UploadRateLimit,g=r.ConnectionsLimit,m=r.PeersListenPort;return Object($.jsxs)(Hi,{children:[Object($.jsx)(Zi,{children:a("SettingsDialog.AdditionalSettings")}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:c,onChange:n,id:"EnableIPv6",color:"secondary"}),label:"IPv6",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!s,onChange:n,id:"DisableTCP",color:"secondary"}),label:"TCP (Transmission Control Protocol)",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!d,onChange:n,id:"DisableUTP",color:"secondary"}),label:"\u03bcTP (Micro Transport Protocol)",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!b,onChange:n,id:"DisablePEX",color:"secondary"}),label:"PEX (Peer Exchange)",labelPlacement:"start"}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:l,onChange:n,id:"ForceEncrypt",color:"secondary"}),label:a("SettingsDialog.ForceEncrypt"),labelPlacement:"start"}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"TorrentDisconnectTimeout",label:a("SettingsDialog.TorrentDisconnectTimeout"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:a("Seconds")})},value:o,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"ConnectionsLimit",label:a("SettingsDialog.ConnectionsLimit"),helperText:a("SettingsDialog.ConnectionsLimitHint"),value:g,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!j,onChange:n,id:"DisableDHT",color:"secondary"}),label:a("SettingsDialog.DHT"),labelPlacement:"start"}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"DownloadRateLimit",label:a("SettingsDialog.DownloadRateLimit"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:a("Kilobytes")})},value:h,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!u,onChange:n,id:"DisableUpload",color:"secondary"}),label:a("SettingsDialog.Upload"),labelPlacement:"start"}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"UploadRateLimit",label:a("SettingsDialog.UploadRateLimit"),InputProps:{endAdornment:Object($.jsx)(_a.a,{position:"end",children:a("Kilobytes")})},value:x,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Za.a,{onChange:n,margin:"normal",id:"PeersListenPort",label:a("SettingsDialog.PeersListenPort"),helperText:a("SettingsDialog.PeersListenPortHint"),value:m,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Xi.a,{checked:!p,onChange:n,id:"DisableUPNP",color:"secondary"}),label:"UPnP (Universal Plug and Play)",labelPlacement:"start"}),Object($.jsx)("br",{}),Object($.jsx)(ro.a,{htmlFor:"RetrackersMode",children:a("SettingsDialog.RetrackersMode")}),Object($.jsxs)(io.a,{onChange:n,margin:"normal",type:"number",native:!0,id:"RetrackersMode",value:i,variant:"outlined",children:[Object($.jsx)("option",{value:0,children:a("SettingsDialog.DontAddRetrackers")}),Object($.jsx)("option",{value:1,children:a("SettingsDialog.AddRetrackers")}),Object($.jsx)("option",{value:2,children:a("SettingsDialog.RemoveRetrackers")}),Object($.jsx)("option",{value:3,children:a("SettingsDialog.ReplaceRetrackers")})]}),Object($.jsx)("br",{})]})}function co(e){var t=e.handleClose,n=Object(ce.a)().t,r=Object(Re.a)("@media (max-width:930px)"),i=Object(Y.a)().direction,o=Object(a.useState)(),c=Object(l.a)(o,2),s=c[0],d=c[1],p=Object(a.useState)(0),j=Object(l.a)(p,2),b=j[0],u=j[1],h=Object(a.useState)(32),x=Object(l.a)(h,2),g=x[0],m=x[1],O=Object(a.useState)(40),f=Object(l.a)(O,2),C=f[0],v=f[1],y=Object(a.useState)(0),S=Object(l.a)(y,2),k=S[0],D=S[1],T=Object(a.useState)(JSON.parse(localStorage.getItem("isProMode"))||!1),B=Object(l.a)(T,2),R=B[0],L=B[1];Object(a.useEffect)((function(){P.a.post(w(),{action:"get"}).then((function(e){var t=e.data;d(Object(M.a)(Object(M.a)({},t),{},{CacheSize:t.CacheSize/1048576}))}))}),[]);var A=function(e){var t=e.target,n=t.type,a=t.value,r=t.checked,i=t.id,o=JSON.parse(JSON.stringify(s));"number"===n||"select-one"===n?o[i]=Number(a):"checkbox"===n?o[i]="DisableTCP"===i||"DisableUTP"===i||"DisableUPNP"===i||"DisableDHT"===i||"DisablePEX"===i||"DisableUpload"===i?Boolean(!r):Boolean(r):"url"===n&&(o[i]=a),d(o)},z=s||{},F=z.CacheSize,E=z.ReaderReadAHead,G=z.PreloadCache;Object(a.useEffect)((function(){isNaN(F)||isNaN(E)||isNaN(G)||(m(F),v(E),D(G))}),[F,E,G]);var N=function(e){return d(Object(M.a)(Object(M.a)({},s),e))};return Object($.jsxs)(An.a,{open:!0,onClose:t,fullScreen:r,fullWidth:!0,maxWidth:"md",children:[Object($.jsxs)(Fi,{children:[Object($.jsx)("div",{children:n("SettingsDialog.Settings")}),Object($.jsx)(Pi.a,{control:Object($.jsx)(Ti.a,{checked:R,onChange:function(e){var t=e.target.checked;L(t),localStorage.setItem("isProMode",t),t||u(0)},style:{color:"white"}}),label:n("SettingsDialog.ProMode")})]}),Object($.jsx)(de.a,{position:"static",color:"default",children:Object($.jsxs)(Mi.a,{value:b,onChange:function(e,t){return u(t)},indicatorColor:"secondary",textColor:"secondary",variant:"fullWidth",children:[Object($.jsx)(Bi.a,Object(M.a)({label:n("SettingsDialog.Tabs.Main")},Yi(0))),Object($.jsx)(Bi.a,Object(M.a)({disabled:!R,label:Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:n("SettingsDialog.Tabs.Additional")}),!R&&Object($.jsx)("div",{style:{fontSize:"9px"},children:n("SettingsDialog.Tabs.AdditionalDisabled")})]})},Yi(1)))]})}),Object($.jsx)(Gi,{isLoading:!s,children:s?Object($.jsx)($.Fragment,{children:Object($.jsxs)(Li.a,{axis:"rtl"===i?"x-reverse":"x",index:b,onChangeIndex:function(e){return u(e)},children:[Object($.jsx)($i,{value:b,index:0,dir:i,children:Object($.jsx)(ao,{settings:s,inputForm:A,cachePercentage:C,preloadCachePercentage:k,cacheSize:g,isProMode:R,setCacheSize:m,setCachePercentage:v,setPreloadCachePercentage:D,updateSettings:N})}),Object($.jsx)($i,{value:b,index:1,dir:i,children:Object($.jsx)(oo,{settings:s,inputForm:A})})]})}):Object($.jsx)(oe.a,{color:"secondary"})}),Object($.jsxs)(Ei,{children:[Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"outlined",children:n("Cancel")}),Object($.jsx)(ne.a,{onClick:function(){m(Ki.CacheSize),v(Ki.ReaderReadAHead),D(Ki.PreloadCache),N(Ki)},color:"secondary",variant:"outlined",children:n("SettingsDialog.ResetToDefault")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){t();var e=JSON.parse(JSON.stringify(s));e.CacheSize=1024*g*1024,e.ReaderReadAHead=C,e.PreloadCache=k,P.a.post(w(),{action:"set",sets:e})},color:"secondary",children:n("Save")})]})]})}function lo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1];return Object($.jsxs)("div",{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(Di.a,{})}),Object($.jsx)(Qr.a,{primary:r("SettingsDialog.Settings")})]}),c&&Object($.jsx)(co,{handleClose:function(){return s(!1)}})]})}var so=n(193),po=n.n(so);function jo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1],d=function(){return s(!1)};return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(po.a,{})}),Object($.jsx)(Qr.a,{primary:r("RemoveAll")})]},r("RemoveAll")),Object($.jsxs)(An.a,{open:c,onClose:d,children:[Object($.jsx)(Fn.a,{children:r("DeleteTorrents?")}),Object($.jsxs)(En.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch(v(),{method:"post",body:JSON.stringify({action:"list"}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}}).then((function(e){return e.json()})).then((function(e){e.forEach((function(e){fetch(v(),{method:"post",body:JSON.stringify({action:"rem",hash:e.hash}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}})}))})),d()},color:"secondary",autoFocus:!0,children:r("OK")})]})]})]})}var bo,uo,ho,xo,go,mo,Oo,fo,Co,vo,yo=n(194),wo=n.n(yo),So=n(465),ko=Ue.d.div(bo||(bo=Object(He.a)(["\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n"]))),Do=Ue.d.section(uo||(uo=Object(He.a)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n"]))),To=Ue.d.section(ho||(ho=Object(He.a)(["\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n"]))),Po=Ue.d.section(xo||(xo=Object(He.a)(["\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n"]))),Mo=Ue.d.div(go||(go=Object(He.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n"]))),Bo=Ue.d.a(mo||(mo=Object(He.a)(["\n ","\n"])),(function(e){var t=e.isLink;return Object(Ue.c)(Oo||(Oo=Object(He.a)(["\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ","\n "])),t?Object(Ue.c)(fo||(fo=Object(He.a)(["\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n "]))):Object(Ue.c)(Co||(Co=Object(He.a)(["\n cursor: default;\n "]))))})),Ro=Ue.d.div(vo||(vo=Object(He.a)(["\n display: grid;\n margin-right: 10px;\n"])));function Lo(e){var t=e.name,n=e.link;return Object($.jsxs)(Bo,{isLink:!!n,href:n,target:"_blank",rel:"noreferrer",children:[n&&Object($.jsx)(Ro,{children:Object($.jsx)(So.a,{})}),Object($.jsx)("div",{children:t})]})}function Ao(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(""),c=Object(l.a)(o,2),s=c[0],d=c[1],p=Object(Re.a)("@media (max-width:930px)");return Object(a.useEffect)((function(){P.a.get(k()).then((function(e){var t=e.data;return d(t)}))}),[]),Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Wr.a,{button:!0,onClick:function(){return i(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(wo.a,{})}),Object($.jsx)(Qr.a,{primary:e("About")})]},"Settings"),Object($.jsx)(An.a,{open:r,onClose:function(){return i(!1)},"aria-labelledby":"form-dialog-title",fullScreen:p,maxWidth:"xl",children:Object($.jsxs)(ko,{children:[Object($.jsxs)(Do,{children:[Object($.jsx)("div",{children:e("About")}),s,Object($.jsx)("img",{src:"/apple-touch-icon.png",alt:"ts-icon"})]}),Object($.jsxs)("div",{style:{overflow:"auto"},children:[Object($.jsx)(To,{children:e("ThanksToEveryone")}),Object($.jsxs)(Po,{children:[Object($.jsx)("span",{children:e("Links")}),Object($.jsxs)("div",{children:[Object($.jsx)(Lo,{name:e("ProjectSource"),link:"https://github.com/YouROK/TorrServer"}),Object($.jsx)(Lo,{name:e("Releases"),link:"https://github.com/YouROK/TorrServer/releases"})]})]}),Object($.jsxs)(Po,{children:[Object($.jsx)("span",{children:e("SpecialThanks")}),Object($.jsxs)("div",{children:[Object($.jsx)(Lo,{name:"Daniel Shleifman",link:"https://github.com/dancheskus"}),Object($.jsx)(Lo,{name:"Matt Joiner",link:"https://github.com/anacrolix"}),Object($.jsx)(Lo,{name:"nikk",link:"https://github.com/tsynik"}),Object($.jsx)(Lo,{name:"tw1cker \u0420\u0443\u0441\u043b\u0430\u043d \u041f\u0430\u0445\u043d\u0435\u0432",link:"https://github.com/Nemiroff"}),Object($.jsx)(Lo,{name:"SpAwN_LMG",link:"https://github.com/spawnlmg"})]})]})]}),Object($.jsx)(Mo,{children:Object($.jsx)(ne.a,{onClick:function(){return i(!1)},color:"primary",variant:"contained",children:e("Close")})})]})})]})}var zo=n(466);function Fo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(l.a)(i,2),c=o[0],s=o[1],d=function(){return s(!1)};return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Wr.a,{disabled:t||n,button:!0,onClick:function(){return s(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(zo.a,{})}),Object($.jsx)(Qr.a,{primary:r("CloseServer")})]},r("CloseServer")),Object($.jsxs)(An.a,{open:c,onClose:d,children:[Object($.jsx)(Fn.a,{children:r("CloseServer?")}),Object($.jsxs)(En.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch("".concat(C,"/shutdown")),d()},color:"secondary",autoFocus:!0,children:r("TurnOff")})]})]})]})}var Eo=function(e){var t=e.isDrawerOpen,n=e.setIsDonationDialogOpen,a=e.isOffline,r=e.isLoading,i=Object(ce.a)().t;return Object($.jsxs)(Lr,{isDrawerOpen:t,children:[Object($.jsxs)(Zr.a,{children:[Object($.jsx)(ai,{isOffline:a,isLoading:r}),Object($.jsx)(jo,{isOffline:a,isLoading:r})]}),Object($.jsx)(Xr.a,{}),Object($.jsxs)(Zr.a,{children:[Object($.jsx)(lo,{isOffline:a,isLoading:r}),Object($.jsx)(Ao,{}),Object($.jsxs)(Wr.a,{button:!0,onClick:function(){return n(!0)},children:[Object($.jsx)(qr.a,{children:Object($.jsx)(ei.a,{})}),Object($.jsx)(Qr.a,{primary:i("Donate")})]}),Object($.jsx)(Fo,{isOffline:a,isLoading:r})]})]})},Go=Object(a.memo)(Eo),No=Object(a.createContext)();function Io(){var e,t=Object(a.useState)(!1),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!1),c=Object(l.a)(o,2),g=c[0],m=c[1],O=Object(a.useState)(""),f=Object(l.a)(O,2),C=f[0],v=f[1],y=function(){var e=localStorage.getItem("themeMode"),t=Object(Re.a)("(prefers-color-scheme: dark)"),n=Object(a.useState)("dark"===e||t),r=Object(l.a)(n,2),i=r[0],o=r[1],c=Object(a.useState)(e||Fe),s=Object(l.a)(c,2),d=s[0],p=s[1];Object(a.useEffect)((function(){d===Fe&&o(!1),d===Ee&&o(!0),d===Ge&&o(t)}),[t,d]);var j=i?Ee:Fe,b=Object(a.useMemo)((function(){return Object(Be.a)({typography:Ne,palette:{type:j,primary:{main:ze[j].primary},secondary:{main:ze[j].secondary}},overrides:{MuiInputBase:{input:{color:ze[j].labels}},MuiFormControlLabel:{labelPlacementStart:{display:"flex",justifyContent:"space-between",marginStart:0,marginTop:6,marginBottom:2}},MuiInputLabel:{root:{color:ze[j].labels,marginBottom:8,"&$focused":{color:ze[j].labels}}}}})}),[j]);return[i,d,function(e){p(e),localStorage.setItem("themeMode",e)},b]}(),w=Object(l.a)(y,4),S=w[0],T=w[1],B=w[2],R=w[3],L=In(),A=Object(l.a)(L,2),z=A[0],F=A[1],E=Object(a.useState)(!1),G=Object(l.a)(E,2),N=G[0],I=G[1],H=Object(ga.a)("torrents",J,{retry:1,refetchInterval:1e3,onError:function(){return I(!0)},onSuccess:function(){return I(!1)}}),U=H.data,W=H.isLoading;return Object(a.useEffect)((function(){P.a.get(k()).then((function(e){var t=e.data;return v(t)}))}),[]),Object($.jsxs)($.Fragment,{children:[Object($.jsx)($r,{}),Object($.jsx)(No.Provider,{value:{isDarkMode:S},children:Object($.jsx)(Yr.a,{theme:R,children:Object($.jsxs)(Ue.a,{theme:(e=S?Ee:Fe,Object(M.a)(Object(M.a)({},Ae[e]),ze[e])),children:[Object($.jsx)(s.a,{}),Object($.jsx)(D.a,{children:Object($.jsxs)(Mr,{children:[Object($.jsxs)(Rr,{children:[Object($.jsx)(p.a,{edge:"start",color:"inherit",onClick:function(){return i(!r)},style:{marginRight:"6px"},children:r?Object($.jsx)(j.a,{}):Object($.jsx)(b.a,{})}),Object($.jsxs)(d.a,{variant:"h6",noWrap:!0,children:["TorrServer ",C]}),Object($.jsxs)("div",{style:{justifySelf:"end",display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:"10px"},children:[Object($.jsx)(zr,{onClick:function(){T===Fe&&B(Ee),T===Ee&&B(Ge),T===Ge&&B(Fe)},children:T===Fe?Object($.jsx)(u.a,{}):T===Ee?Object($.jsx)(h.a,{}):Object($.jsx)(x.a,{})}),Object($.jsx)(zr,{onClick:function(){return F("en"===z?"ru":"en")},children:"en"===z?"EN":"RU"})]})]}),Object($.jsx)(Go,{isOffline:N,isLoading:W,isDrawerOpen:r,setIsDonationDialogOpen:m}),Object($.jsx)(Nr,{isOffline:N,torrents:U,isLoading:W}),Object($.jsx)(Yr.a,{theme:Ie,children:g&&Object($.jsx)(_r,{onClose:function(){return m(!1)}})}),!JSON.parse(localStorage.getItem("snackbarIsClosed"))&&Object($.jsx)(Kr,{})]})})]})})})]})}var Ho=new o.a;i.a.render(Object($.jsx)(a.StrictMode,{children:Object($.jsx)(c.a,{client:Ho,children:Object($.jsx)(Io,{})})}),document.getElementById("root"))}},[[382,1,2]]]); +//# sourceMappingURL=main.b6b3aa76.chunk.js.map \ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js.map b/server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js.map new file mode 100644 index 0000000..3da9b93 --- /dev/null +++ b/server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["utils/Hosts.js","i18n.js","utils/Utils.js","icons/index.jsx","components/DialogTorrentDetailsContent/customHooks.jsx","components/DialogTorrentDetailsContent/DialogHeader.jsx","style/colors.js","style/materialUISetup.js","components/DialogTorrentDetailsContent/TorrentCache/snakeSettings.js","components/DialogTorrentDetailsContent/TorrentCache/style.js","components/DialogTorrentDetailsContent/TorrentCache/index.jsx","components/DialogTorrentDetailsContent/TorrentCache/getShortCacheMap.js","components/DialogTorrentDetailsContent/Table/style.js","components/DialogTorrentDetailsContent/Table/index.jsx","components/DialogTorrentDetailsContent/style.js","components/DialogTorrentDetailsContent/DetailedView/style.js","components/DialogTorrentDetailsContent/StatisticsField.jsx","components/DialogTorrentDetailsContent/widgets/useGetWidgetColors.jsx","components/DialogTorrentDetailsContent/widgets/index.jsx","torrentStates.js","components/DialogTorrentDetailsContent/DetailedView/index.jsx","components/DialogTorrentDetailsContent/TorrentFunctions/style.js","components/DialogTorrentDetailsContent/TorrentFunctions/index.jsx","components/DialogTorrentDetailsContent/helpers.js","components/DialogTorrentDetailsContent/index.jsx","utils/useChangeLanguage.js","utils/usePreviousState.js","style/DialogStyles.js","components/Add/helpers.js","components/Add/style.js","components/Add/RightSideComponent.jsx","components/Add/LeftSideComponent.jsx","components/Add/AddDialog.jsx","components/TorrentCard/style.js","components/TorrentCard/index.jsx","components/App/style.js","components/TorrentList/style.js","components/TorrentList/NoServerConnection.jsx","components/TorrentList/AddFirstTorrent.jsx","components/TorrentList/index.jsx","components/Donate/DonateDialog.jsx","components/Donate/index.jsx","style/GlobalStyle.js","components/Add/index.jsx","components/Settings/style.js","components/Settings/defaultSettings.js","components/Settings/tabComponents.jsx","components/Settings/SliderInput.jsx","components/Settings/PrimarySettingsComponent.jsx","components/Settings/SecondarySettingsComponent.jsx","components/Settings/SettingsDialog.jsx","components/Settings/index.jsx","components/RemoveAll.jsx","components/About/style.js","components/About/LinkComponent.jsx","components/About/index.jsx","components/CloseServer.jsx","components/App/Sidebar.jsx","components/App/index.jsx","style/getStyledComponentsTheme.js","index.jsx"],"names":["window","location","protocol","hostname","port","torrserverHost","torrentsHost","viewedHost","settingsHost","streamHost","echoHost","i18n","use","LanguageDetector","initReactI18next","init","fallbackLng","interpolation","escapeValue","resources","en","translation","translationEN","ru","translationRU","humanizeSize","size","i","Math","floor","log","pow","toFixed","t","humanizeSpeed","speed","getPeerString","torrent","connected_seeders","active_peers","total_peers","removeRedundantCharacters","string","newString","forEach","el","leftBracketRegexFormula","leftBracketRegex","RegExp","leftBracketAmount","matchAll","length","rightBracketRegexFormula","rightBracketRegex","removeFormula","removeRegex","replace","hasThreeDotsAtTheEnd","match","trimmedString","trim","getTorrents","a","axios","post","action","data","Error","NoImageIcon","color","primary","useTheme","palette","main","height","width","fill","xmlns","xmlnsXlink","version","x","y","viewBox","enableBackground","xmlSpace","d","points","AddItemIcon","id","opacity","USBIcon","RAMIcon","TorrentIcon","secondaryColor","useUpdateCache","hash","useState","cache","setCache","componentIsMounted","useRef","timerID","useEffect","current","setInterval","updateCache","newCache","then","catch","clearInterval","useStyles","makeStyles","appBar","position","title","marginLeft","flex","DialogHeader","onClose","onBack","classes","AppBar","className","Toolbar","IconButton","edge","onClick","aria-label","ArrowBack","Typography","variant","autoFocus","style","marginRight","themeColors","light","app","headerToggleColor","appSecondaryColor","sidebarBGColor","sidebarFillColor","torrentCard","accentCardColor","buttonBGColor","rgba","cardPrimaryColor","cardSecondaryColor","dialogTorrentDetailsContent","posterBGColor","gradientStartColor","gradientEndColor","chacheSectionBGColor","widgetFontColor","titleFontColor","subNameFontColor","torrentFilesSectionBGColor","detailedView","cacheSectionBGColor","addDialog","fontColor","notificationErrorBGColor","notificationSuccessBGColor","languageSwitchBGColor","languageSwitchFontColor","torrentFunctions","table","defaultPrimaryColor","defaultSecondaryColor","defaultTertiaryColor","settingsDialog","contentBG","footerBG","dark","mainColors","secondary","labels","THEME_MODES","typography","fontFamily","lightTheme","createMuiTheme","type","snakeSettings","default","borderWidth","pieceSize","gapBetweenPieces","borderColor","completeColor","backgroundColor","progressColor","readerColor","rangeColor","mini","cacheMaxHeight","ScrollNotification","styled","div","SnakeWrapper","isMini","themeType","css","TorrentCache","shotCacheMap","useTranslation","dimensions","setDimensions","canvasRef","ctxRef","cacheMap","setCacheMap","PiecesCount","Pieces","Readers","map","Size","Length","Priority","newPiece","percentage","priority","r","Reader","isReader","Start","End","isReaderRange","push","useCreateCacheMap","settingsTarget","theme","useContext","DarkModeContext","isDarkMode","canvasWidth","pieceSizeWithGap","piecesInOneRow","preloadPiecesAmount","cacheMapWithoutEmptyBlocks","filter","getFullAmountOfBlocks","amountOfBlocks","amountOfBlocksToRenderInShortView","scalableAmountOfBlocksToRenderInShortView","extraBlocksAmount","max","extraEmptyBlocksForFillingLine","Array","getShortCacheMap","round","Capacity","PiecesLength","source","startingXPoint","ceil","canvas","getContext","ctx","clearRect","inProgress","isCompleted","currentRow","currentColumn","fixBlurStroke","requiredFix","lineWidth","fillStyle","snakeType","gradient","createLinearGradient","addColorStop","createGradient","strokeStyle","translate","fillRect","strokeRect","setTransform","info","font","xpad","ypad","fillText","bounds","onResize","measureRef","display","flexDirection","ref","memo","prev","next","isEqual","viewedPrimaryColor","viewedIndicator","TableStyle","ShortTableWrapper","ShortTable","isViewed","require","ptt","addHandler","Table","playableFileList","viewedFileList","selectedSeason","seasonAmount","preloadBuffer","fileId","fetch","getFileLink","path","encodeURIComponent","split","pop","fileHasEpisodeText","find","parse","episode","fileHasSeasonText","season","fileHasResolutionText","resolution","shouldDisplayFullFileName","includes","link","data-label","Button","textDecoration","href","target","rel","text","DialogContentGrid","Poster","poster","MainSection","section","CacheSection","TorrentFilesSection","SectionSubName","mb","SectionTitle","SectionHeader","WidgetWrapper","WidgetFieldWrapper","WidgetFieldTitle","WidgetFieldIcon","bgColor","WidgetFieldValue","LoadingProgress","attrs","value","fullAmount","min","background","label","Divider","DetailedViewWidgetSection","DetailedViewCacheSection","StatisticsField","Icon","icon","iconBg","valueBg","LIGHT","DARK","colors","downloadSpeed","iconBGColor","valueBGColor","uploadSpeed","peers","piecesCount","piecesLength","status","useGetWidgetColors","widgetName","DownlodSpeedWidget","ArrowDownwardIcon","UploadSpeedWidget","ArrowUpwardIcon","PeersWidget","SwapVerticalCircleIcon","PiecesCountWidget","WidgetsIcon","PiecesLengthWidget","PhotoSizeSelectSmallIcon","StatusWidget","stat","values","BuildIcon","SizeWidget","ViewAgendaIcon","DetailedView","torrentSize","MainSectionButtonGroup","SmallLabel","TorrentFunctions","name","setViewedFileList","latestViewedFileId","latestViewedFile","isOnlyOnePlayableFile","latestViewedFileData","fullPlaylistLink","partialPlaylistLink","file_index","playableExtList","Loader","minHeight","placeItems","CircularProgress","DialogTorrentDetailsContent","closeDialog","isLoading","setIsLoading","isDetailedCacheView","setIsDetailedCacheView","setPlayableFileList","setSeasonAmount","setSelectedSeason","download_speed","upload_speed","torrent_size","torrentFileList","file_stats","settings","setSettings","useGetSettings","Filled","seasons","currentSeason","sort","b","fileName","filename","ext","toLowerCase","getExt","cacheLoaded","Object","entries","torrentLoaded","lst","itm","preloadSize","PreloadCache","bufferSize","getParsedTitle","newNameStringArr","torrentParsedName","year","newNameString","join","overflow","alt","src","marginTop","ButtonGroup","marginBottom","language","lang","changeLanguage","usePreviousState","Header","ButtonWrapper","getMoviePosters","movieName","url","get","params","api_key","process","include_image_language","query","results","poster_path","checkImageURL","magnetRegex","hashRegex","torrentRegex","linkRegex","Content","isEditMode","RightSide","RightSideContainer","isHidden","notificationMessage","isError","LeftSide","LeftSideBottomSectionBasicStyles","LeftSideBottomSectionNoFile","isDragActive","LeftSideBottomSectionFileSelected","TorrentIconWrapper","CancelIconWrapper","IconWrapper","LeftSideTopSection","active","PosterWrapper","PosterSuggestions","PosterSuggestionsItem","ClearPosterButton","showbutton","PosterLanguageSwitch","RightSideComponent","setTitle","setPosterUrl","setIsPosterUrlCorrect","setIsUserInteractedWithPoster","setPosterList","isTorrentSourceCorrect","isHashAlreadyExists","parsedTitle","posterUrl","isPosterUrlCorrect","posterList","currentLang","posterSearchLanguage","setPosterSearchLanguage","posterSearch","removePoster","torrentSource","originalTorrentTitle","updateTitleFromSource","isCustomTitleEnabled","setIsCustomTitleEnabled","handleTitleChange","TextField","margin","fullWidth","disabled","InputProps","readOnly","onChange","onFocus","onBlur","helperText","endAdornment","InputAdornment","padding","HighlightOff","slice","userChangesPosterUrl","newLanguage","shouldRefreshMainPoster","LeftSideComponent","setSelectedFile","setTorrentSource","selectedFile","isTorrentSourceActive","setIsTorrentSourceActive","useDropzone","onDrop","files","file","accept","getRootProps","getInputProps","inputProps","autoComplete","Cancel","AddDialog","handleClose","originalHash","originalTitle","originalName","originalPoster","setOriginalTorrentTitle","setParsedTitle","setIsTorrentSourceCorrect","setIsHashAlreadyExists","isUserInteractedWithPoster","useChangeLanguage","isSaving","setIsSaving","skipDebounce","setSkipDebounce","currentSourceHash","setCurrentSourceHash","torrents","useQuery","retry","refetchInterval","parseTorrent","remote","_","infoHash","allHashes","fullScreen","useMediaQuery","useCallback","parsingSource","callback","err","torrentName","nameOfFileInsideTorrent","newTitle","correctImage","useMemo","urlList","firstPoster","delayedPosterSearch","debounce","prevTorrentSourceState","prevTitleState","cancel","Dialog","open","maxWidth","minWidth","finally","FormData","append","save_to_db","TorrentCard","TorrentCardPoster","isPoster","TorrentCardButtons","TorrentCardDescription","StyledButton","button","Transition","forwardRef","props","Slide","direction","Torrent","isDetailedInfoOpened","setIsDetailedInfoOpened","isDeleteTorrentOpened","setIsDeleteTorrentOpened","breakpoints","down","closeDetailedInfo","closeDeleteTorrentAlert","key","titleStrings","parsedYear","parsedResolution","isEditDialogOpen","setIsEditDialogOpen","UnfoldMore","Edit","Close","Delete","TransitionComponent","DialogTitle","DialogActions","AppWrapper","CenteredGrid","AppHeader","AppSidebarStyle","isDrawerOpen","TorrentListWrapper","HeaderToggle","isButton","NoServerConnection","trigger","stroke","scale","AddFirstTorrent","isDialogOpen","setIsDialogOpen","TorrentList","isOffline","DonateDialog","aria-labelledby","DialogContent","List","ListItem","dangerouslySetInnerHTML","__html","DonateSnackbar","setOpen","snackbarOpen","setSnackbarOpen","disableSnackbar","localStorage","setItem","Snackbar","anchorOrigin","vertical","horizontal","message","fontSize","createGlobalStyle","AddDialogButton","ListItemIcon","ListItemText","cacheBeforeReaderColor","cacheAfterReaderColor","SettingsHeader","FooterSection","PreloadCacheValue","MainSettingsContent","SecondarySettingsContent","StorageButton","small","selected","StorageIconWrapper","CacheStorageSelector","SettingSectionLabel","PreloadCachePercentage","preloadCachePercentage","CacheSize","ReaderReadAHead","UseDisk","UploadRateLimit","TorrentsSavePath","ConnectionsLimit","DisableDHT","DisablePEX","DisableTCP","DisableUPNP","DisableUTP","DisableUpload","DownloadRateLimit","EnableDebug","EnableIPv6","ForceEncrypt","PeersListenPort","RemoveCacheOnDrop","RetrackersMode","TorrentDisconnectTimeout","a11yProps","index","TabPanel","children","other","role","hidden","SliderInput","isProMode","setValue","sliderMin","sliderMax","inputMin","inputMax","step","onBlurCallback","Grid","container","spacing","alignItems","item","xs","Slider","newValue","OutlinedInput","Number","CacheStorageLocationLabel","PrimarySettingsComponent","inputForm","cachePercentage","cacheSize","setCacheSize","setCachePercentage","setPreloadCachePercentage","updateSettings","preloadCacheSize","gridAutoFlow","FormControlLabel","control","Switch","checked","labelPlacement","placeSelf","gridArea","SecondarySettingsComponent","InputLabel","htmlFor","Select","native","SettingsDialog","selectedTab","setSelectedTab","JSON","getItem","setIsProMode","sets","stringify","Boolean","isNaN","newProps","Checkbox","Tabs","indicatorColor","textColor","Tab","axis","onChangeIndex","dir","defaultSettings","SettingsDialogButton","RemoveAll","method","body","headers","Accept","res","json","torr","DialogWrapper","HeaderSection","ThanksSection","Section","LinkWrapper","isLink","LinkIcon","LinkComponent","GitHub","AboutDialog","torrServerVersion","setTorrServerVersion","CloseServer","PowerSettingsNew","Sidebar","setIsDonationDialogOpen","createContext","App","setIsDrawerOpen","isDonationDialogOpen","savedThemeMode","isSystemModeDark","setIsDarkMode","currentThemeMode","setCurrentThemeMode","muiTheme","overrides","MuiInputBase","input","MuiFormControlLabel","labelPlacementStart","justifyContent","marginStart","MuiInputLabel","root","mode","useMaterialUITheme","updateThemeMode","changeLang","setIsOffline","onError","onSuccess","GlobalStyle","Provider","CssBaseline","Menu","noWrap","justifySelf","gridTemplateColumns","gap","Brightness5","Brightness4","BrightnessAuto","queryClient","QueryClient","ReactDOM","render","QueryClientProvider","client","document","getElementById"],"mappings":"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","file":"static/js/main.b6b3aa76.chunk.js","sourcesContent":["const { protocol, hostname, port } = window.location\n\nlet torrserverHost = process.env.REACT_APP_SERVER_HOST || `${protocol}//${hostname}${port ? `:${port}` : ''}`\n\nexport const torrentsHost = () => `${torrserverHost}/torrents`\nexport const viewedHost = () => `${torrserverHost}/viewed`\nexport const cacheHost = () => `${torrserverHost}/cache`\nexport const torrentUploadHost = () => `${torrserverHost}/torrent/upload`\nexport const settingsHost = () => `${torrserverHost}/settings`\nexport const streamHost = () => `${torrserverHost}/stream`\nexport const shutdownHost = () => `${torrserverHost}/shutdown`\nexport const echoHost = () => `${torrserverHost}/echo`\nexport const playlistTorrHost = () => `${torrserverHost}/stream`\n\nexport const getTorrServerHost = () => torrserverHost\nexport const setTorrServerHost = host => {\n torrserverHost = host\n}\n","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport translationEN from 'locales/en/translation.json'\nimport translationRU from 'locales/ru/translation.json'\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en', // default language will be used if none of declared lanuages detected (en, ru)\n interpolation: { escapeValue: false }, // react already safes from xss\n resources: { en: { translation: translationEN }, ru: { translation: translationRU } },\n })\n\nexport default i18n\n","import axios from 'axios'\n\nimport i18n from '../i18n'\nimport { torrentsHost } from './Hosts'\n\nexport function humanizeSize(size) {\n if (!size) return ''\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / Math.pow(1024, i)).toFixed(2) * 1} ${\n [i18n.t('B'), i18n.t('KB'), i18n.t('MB'), i18n.t('GB'), i18n.t('TB')][i]\n }`\n}\n\nexport function humanizeSpeed(speed) {\n if (!speed) return ''\n const i = Math.floor(Math.log(speed * 8) / Math.log(1000))\n return `${((speed * 8) / Math.pow(1000, i)).toFixed(0) * 1} ${\n [i18n.t('bps'), i18n.t('kbps'), i18n.t('Mbps'), i18n.t('Gbps'), i18n.t('Tbps')][i]\n }`\n}\n\nexport function getPeerString(torrent) {\n if (!torrent || !torrent.connected_seeders) return null\n return `${torrent.connected_seeders} · ${torrent.active_peers} / ${torrent.total_peers}`\n}\n\nexport const shortenText = (text, sympolAmount) =>\n text ? text.slice(0, sympolAmount) + (text.length > sympolAmount ? '…' : '') : ''\n\nexport const removeRedundantCharacters = string => {\n let newString = string\n const brackets = [\n ['(', ')'],\n ['[', ']'],\n ['{', '}'],\n ]\n\n brackets.forEach(el => {\n const leftBracketRegexFormula = `\\\\${el[0]}`\n const leftBracketRegex = new RegExp(leftBracketRegexFormula, 'g')\n const leftBracketAmount = [...newString.matchAll(leftBracketRegex)].length\n const rightBracketRegexFormula = `\\\\${el[1]}`\n const rightBracketRegex = new RegExp(rightBracketRegexFormula, 'g')\n const rightBracketAmount = [...newString.matchAll(rightBracketRegex)].length\n\n if (leftBracketAmount !== rightBracketAmount) {\n const removeFormula = `(\\\\${el[0]})(?!.*\\\\1).*`\n const removeRegex = new RegExp(removeFormula, 'g')\n newString = newString.replace(removeRegex, '')\n }\n })\n\n const hasThreeDotsAtTheEnd = !!newString.match(/\\.{3}$/g)\n\n const trimmedString = newString.replace(/[\\\\.| ]+$/g, '').trim()\n\n return hasThreeDotsAtTheEnd ? `${trimmedString}..` : trimmedString\n}\n\nexport const getTorrents = async () => {\n try {\n const { data } = await axios.post(torrentsHost(), { action: 'list' })\n return data\n } catch (error) {\n throw new Error(null)\n }\n}\n","import { useTheme } from '@material-ui/core'\n\nexport const NoImageIcon = ({ color }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport const AddItemIcon = () => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const USBIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const RAMIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport const TorrentIcon = () => {\n const primary = useTheme().palette.primary.main\n const secondaryColor = primary === '#00a572' ? '#74c39c' : '#4a5255'\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { cacheHost, settingsHost } from 'utils/Hosts'\nimport axios from 'axios'\n\nexport const useUpdateCache = hash => {\n const [cache, setCache] = useState({})\n const componentIsMounted = useRef(true)\n const timerID = useRef(null)\n\n useEffect(\n () => () => {\n // this function is required to notify \"updateCache\" when NOT to make state update\n componentIsMounted.current = false\n },\n [],\n )\n\n useEffect(() => {\n if (hash) {\n timerID.current = setInterval(() => {\n const updateCache = newCache => componentIsMounted.current && setCache(newCache)\n\n axios\n .post(cacheHost(), { action: 'get', hash })\n .then(({ data }) => updateCache(data))\n // empty cache if error\n .catch(() => updateCache({}))\n }, 100)\n } else clearInterval(timerID.current)\n\n return () => clearInterval(timerID.current)\n }, [hash])\n\n return cache\n}\n\nexport const useCreateCacheMap = cache => {\n const [cacheMap, setCacheMap] = useState([])\n\n useEffect(() => {\n const { PiecesCount, Pieces, Readers } = cache\n\n const map = []\n\n for (let i = 0; i < PiecesCount; i++) {\n const { Size, Length, Priority } = Pieces[i] || {}\n\n const newPiece = { id: i, percentage: (Size / Length) * 100 || 0, priority: Priority || 0 }\n\n Readers.forEach(r => {\n if (i === r.Reader) newPiece.isReader = true\n if (i >= r.Start && i <= r.End) newPiece.isReaderRange = true\n })\n\n map.push(newPiece)\n }\n setCacheMap(map)\n }, [cache])\n\n return cacheMap\n}\n\nexport const useGetSettings = cache => {\n const [settings, setSettings] = useState()\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => setSettings(data))\n }, [cache])\n\n return settings\n}\n","import { AppBar, IconButton, makeStyles, Toolbar, Typography } from '@material-ui/core'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { ArrowBack } from '@material-ui/icons'\n\nconst useStyles = makeStyles({\n appBar: { position: 'relative' },\n title: { marginLeft: '5px', flex: 1 },\n})\n\nexport default function DialogHeader({ title, onClose, onBack }) {\n const classes = useStyles()\n\n return (\n \n \n {onBack && (\n \n \n \n )}\n\n \n {title}\n \n\n \n \n \n \n \n )\n}\n","import { rgba } from 'polished'\n\nexport const themeColors = {\n light: {\n app: {\n headerToggleColor: '#4db380',\n appSecondaryColor: '#cbe8d9',\n sidebarBGColor: '#575757',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#337a57',\n buttonBGColor: rgba('#337a57', 0.5),\n cardPrimaryColor: '#00a572',\n cardSecondaryColor: '#74c39c',\n },\n dialogTorrentDetailsContent: {\n posterBGColor: '#74c39c',\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n chacheSectionBGColor: '#88cdaa',\n widgetFontColor: '#fff',\n titleFontColor: '#000',\n subNameFontColor: '#7c7b7c',\n torrentFilesSectionBGColor: '#f1eff3',\n },\n detailedView: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n cacheSectionBGColor: '#fff',\n },\n addDialog: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n fontColor: '#000',\n notificationErrorBGColor: '#cda184',\n notificationSuccessBGColor: '#88cdaa',\n languageSwitchBGColor: '#74c39c',\n languageSwitchFontColor: '#e4f6ed',\n posterBGColor: '#74c39c',\n },\n torrentFunctions: {\n fontColor: '#000',\n },\n table: {\n defaultPrimaryColor: '#009879',\n defaultSecondaryColor: '#00a383',\n defaultTertiaryColor: '#03aa89',\n },\n settingsDialog: {\n contentBG: '#f1eff3',\n footerBG: '#fff',\n },\n },\n dark: {\n app: {\n headerToggleColor: '#545a5e',\n appSecondaryColor: '#545a5e',\n sidebarBGColor: '#323637',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#323637',\n buttonBGColor: rgba('#323637', 0.5),\n cardPrimaryColor: '#545a5e',\n cardSecondaryColor: rgba('#dee3e5', 0.4),\n },\n dialogTorrentDetailsContent: {\n posterBGColor: rgba('#dee3e5', 0.4),\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n chacheSectionBGColor: '#3c4244',\n widgetFontColor: rgba('#fff', 0.8),\n titleFontColor: '#f1eff3',\n subNameFontColor: '#dee3e5',\n torrentFilesSectionBGColor: rgba('#545a5e', 0.9),\n },\n detailedView: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n cacheSectionBGColor: '#dee3e5',\n },\n addDialog: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n fontColor: '#fff',\n notificationErrorBGColor: '#c82e3f',\n notificationSuccessBGColor: '#323637',\n languageSwitchBGColor: '#545a5e',\n languageSwitchFontColor: '#dee3e5',\n posterBGColor: '#dee3e5',\n },\n torrentFunctions: {\n fontColor: '#f1eff3',\n },\n table: {\n defaultPrimaryColor: '#323637',\n defaultSecondaryColor: rgba('#545a5e', 0.9),\n defaultTertiaryColor: '#545a5e',\n },\n settingsDialog: {\n contentBG: '#5a6166',\n footerBG: '#323637',\n },\n },\n}\n\nexport const mainColors = {\n light: {\n primary: '#00a572',\n secondary: '#00a572',\n labels: rgba('#000', 0.9),\n },\n dark: {\n primary: '#323637',\n secondary: '#dee3e5',\n labels: rgba('#fff', 0.9),\n },\n}\n","import { createMuiTheme, useMediaQuery } from '@material-ui/core'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { mainColors } from './colors'\n\nexport const THEME_MODES = { LIGHT: 'light', DARK: 'dark', AUTO: 'auto' }\n\nconst typography = { fontFamily: 'Open Sans, sans-serif' }\n\nexport const darkTheme = createMuiTheme({\n typography,\n palette: {\n type: THEME_MODES.DARK,\n primary: { main: mainColors.dark.primary },\n secondary: { main: mainColors.dark.secondary },\n },\n})\nexport const lightTheme = createMuiTheme({\n typography,\n palette: {\n type: THEME_MODES.LIGHT,\n primary: { main: mainColors.light.primary },\n secondary: { main: mainColors.light.secondary },\n },\n})\n\nexport const useMaterialUITheme = () => {\n const savedThemeMode = localStorage.getItem('themeMode')\n const isSystemModeDark = useMediaQuery('(prefers-color-scheme: dark)')\n const [isDarkMode, setIsDarkMode] = useState(savedThemeMode === 'dark' || isSystemModeDark)\n const [currentThemeMode, setCurrentThemeMode] = useState(savedThemeMode || THEME_MODES.LIGHT)\n\n const updateThemeMode = mode => {\n setCurrentThemeMode(mode)\n localStorage.setItem('themeMode', mode)\n }\n\n useEffect(() => {\n currentThemeMode === THEME_MODES.LIGHT && setIsDarkMode(false)\n currentThemeMode === THEME_MODES.DARK && setIsDarkMode(true)\n currentThemeMode === THEME_MODES.AUTO && setIsDarkMode(isSystemModeDark)\n }, [isSystemModeDark, currentThemeMode])\n\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const muiTheme = useMemo(\n () =>\n createMuiTheme({\n typography,\n palette: {\n type: theme,\n primary: { main: mainColors[theme].primary },\n secondary: { main: mainColors[theme].secondary },\n },\n overrides: {\n MuiInputBase: {\n input: {\n color: mainColors[theme].labels,\n },\n },\n // https://material-ui.com/ru/api/form-control-label/\n MuiFormControlLabel: {\n labelPlacementStart: {\n display: 'flex',\n justifyContent: 'space-between',\n marginStart: 0,\n marginTop: 6,\n marginBottom: 2,\n },\n },\n MuiInputLabel: {\n root: {\n color: mainColors[theme].labels,\n marginBottom: 8,\n '&$focused': {\n color: mainColors[theme].labels,\n },\n },\n },\n },\n }),\n [theme],\n )\n\n return [isDarkMode, currentThemeMode, updateThemeMode, muiTheme]\n}\n","import { rgba } from 'polished'\nimport { mainColors } from 'style/colors'\n\nexport const snakeSettings = {\n dark: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: rgba('#949ca0', 0.25),\n completeColor: rgba(mainColors.dark.primary, 0.5),\n backgroundColor: '#f1eff3',\n progressColor: mainColors.dark.secondary,\n readerColor: '#8f0405',\n rangeColor: '#cda184',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#5c6469',\n completeColor: '#5c6469',\n backgroundColor: '#949ca0',\n progressColor: '#949ca0',\n readerColor: '#ccc',\n rangeColor: '#cda184',\n },\n },\n light: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: '#dbf2e8',\n completeColor: mainColors.light.primary,\n backgroundColor: '#fff',\n progressColor: '#b3dfc9',\n readerColor: '#000',\n rangeColor: '#afa6e3',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#4db380',\n completeColor: '#4db380',\n backgroundColor: '#dbf2e8',\n progressColor: '#dbf2e8',\n readerColor: '#0a0a0a',\n rangeColor: '#afa6e3',\n },\n },\n}\n\nexport const createGradient = (ctx, percentage, theme, snakeType) => {\n const { pieceSize, completeColor, progressColor } = snakeSettings[theme][snakeType]\n\n const gradient = ctx.createLinearGradient(0, pieceSize, 0, 0)\n gradient.addColorStop(0, completeColor)\n gradient.addColorStop(percentage / 100, completeColor)\n gradient.addColorStop(percentage / 100, progressColor)\n gradient.addColorStop(1, progressColor)\n\n return gradient\n}\n","import styled, { css } from 'styled-components'\n\nimport { snakeSettings } from './snakeSettings'\n\nexport const ScrollNotification = styled.div`\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n`\n\nexport const SnakeWrapper = styled.div`\n ${({ isMini, themeType }) => css`\n ${isMini &&\n css`\n display: grid;\n justify-content: center;\n max-height: ${snakeSettings[themeType].mini.cacheMaxHeight}px;\n overflow: auto;\n `}\n\n canvas {\n display: block;\n }\n `}\n`\n","import Measure from 'react-measure'\nimport { useState, memo, useRef, useEffect, useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport isEqual from 'lodash/isEqual'\nimport { DarkModeContext } from 'components/App'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nimport { useCreateCacheMap } from '../customHooks'\nimport getShortCacheMap from './getShortCacheMap'\nimport { SnakeWrapper, ScrollNotification } from './style'\nimport { createGradient, snakeSettings } from './snakeSettings'\n\nconst TorrentCache = ({ cache, isMini }) => {\n const { t } = useTranslation()\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n const { width } = dimensions\n const canvasRef = useRef(null)\n const ctxRef = useRef(null)\n const cacheMap = useCreateCacheMap(cache)\n const settingsTarget = isMini ? 'mini' : 'default'\n const { isDarkMode } = useContext(DarkModeContext)\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const {\n readerColor,\n rangeColor,\n borderWidth,\n pieceSize,\n gapBetweenPieces,\n backgroundColor,\n borderColor,\n cacheMaxHeight,\n completeColor,\n } = snakeSettings[theme][settingsTarget]\n\n const canvasWidth = isMini ? width * 0.93 : width\n\n const pieceSizeWithGap = pieceSize + gapBetweenPieces\n const piecesInOneRow = Math.floor(canvasWidth / pieceSizeWithGap)\n\n let shotCacheMap\n if (isMini) {\n const preloadPiecesAmount = Math.round(cache.Capacity / cache.PiecesLength - 1)\n shotCacheMap = getShortCacheMap({ cacheMap, preloadPiecesAmount, piecesInOneRow })\n }\n const source = isMini ? shotCacheMap : cacheMap\n const startingXPoint = Math.ceil((canvasWidth - pieceSizeWithGap * piecesInOneRow) / 2) // needed to center grid\n const height = Math.ceil(source.length / piecesInOneRow) * pieceSizeWithGap\n\n useEffect(() => {\n if (!canvasWidth || !height) return\n\n const canvas = canvasRef.current\n canvas.width = canvasWidth\n canvas.height = height\n ctxRef.current = canvas.getContext('2d')\n }, [canvasRef, height, canvasWidth])\n\n useEffect(() => {\n const ctx = ctxRef.current\n if (!ctx) return\n\n ctx.clearRect(0, 0, canvasWidth, height)\n\n source.forEach(({ percentage, priority, isReader, isReaderRange }, i) => {\n const inProgress = percentage > 0 && percentage < 100\n const isCompleted = percentage === 100\n const currentRow = i % piecesInOneRow\n const currentColumn = Math.floor(i / piecesInOneRow)\n const fixBlurStroke = borderWidth % 2 === 0 ? 0 : 0.5\n const requiredFix = Math.ceil(borderWidth / 2) + 1 + fixBlurStroke\n const x = currentRow * pieceSize + currentRow * gapBetweenPieces + startingXPoint + requiredFix\n const y = currentColumn * pieceSize + currentColumn * gapBetweenPieces + requiredFix\n\n ctx.lineWidth = borderWidth\n ctx.fillStyle = inProgress\n ? createGradient(ctx, percentage, theme, settingsTarget)\n : isCompleted\n ? completeColor\n : backgroundColor\n ctx.strokeStyle = isReader\n ? readerColor\n : inProgress || isCompleted\n ? completeColor\n : isReaderRange\n ? rangeColor\n : borderColor\n\n ctx.translate(x, y)\n ctx.fillRect(0, 0, pieceSize, pieceSize)\n ctx.strokeRect(0, 0, pieceSize, pieceSize)\n ctx.setTransform(1, 0, 0, 1, 0, 0)\n\n if (priority > 0) {\n let info = ''\n if (priority === 1) info = '*'\n else if (priority === 2) info = 'H'\n else if (priority === 3) info = 'R'\n else if (priority === 4) info = 'N'\n else if (priority === 5) info = 'A'\n ctx.font = isMini ? '12px monospace' : '10px monospace'\n const xpad = isMini ? pieceSize * 0.34 : pieceSize * 0.28\n const ypad = isMini ? pieceSize * 0.69 : pieceSize * 0.78\n ctx.fillStyle = 'black'\n ctx.fillText(info, x + xpad, y + ypad)\n }\n })\n }, [\n cacheMap,\n height,\n canvasWidth,\n piecesInOneRow,\n startingXPoint,\n pieceSize,\n gapBetweenPieces,\n source,\n backgroundColor,\n borderColor,\n borderWidth,\n settingsTarget,\n completeColor,\n readerColor,\n rangeColor,\n isMini,\n theme,\n ])\n\n return (\n setDimensions(bounds)}>\n {({ measureRef }) => (\n
\n \n \n \n\n {isMini && height >= cacheMaxHeight && {t('ScrollDown')}}\n
\n )}\n
\n )\n}\n\nexport default memo(\n TorrentCache,\n (prev, next) => isEqual(prev.cache.Pieces, next.cache.Pieces) && isEqual(prev.cache.Readers, next.cache.Readers),\n)\n","export default ({ cacheMap, preloadPiecesAmount, piecesInOneRow }) => {\n const cacheMapWithoutEmptyBlocks = cacheMap.filter(({ percentage }) => percentage > 0)\n\n const getFullAmountOfBlocks = amountOfBlocks =>\n // this function counts existed amount of blocks with extra \"empty blocks\" to fill the row till the end\n amountOfBlocks % piecesInOneRow === 0\n ? amountOfBlocks - 1\n : amountOfBlocks + piecesInOneRow - (amountOfBlocks % piecesInOneRow) - 1 || 0\n\n const amountOfBlocksToRenderInShortView = getFullAmountOfBlocks(preloadPiecesAmount)\n // preloadPiecesAmount is counted from \"cache.Capacity / cache.PiecesLength\". We always show at least this amount of blocks\n const scalableAmountOfBlocksToRenderInShortView = getFullAmountOfBlocks(cacheMapWithoutEmptyBlocks.length)\n // cacheMap can become bigger than preloadPiecesAmount counted before. In that case we count blocks dynamically\n\n const finalAmountOfBlocksToRenderInShortView = Math.max(\n // this check is needed to decide which is the biggest amount of blocks and take it to render\n scalableAmountOfBlocksToRenderInShortView,\n amountOfBlocksToRenderInShortView,\n )\n\n const extraBlocksAmount = finalAmountOfBlocksToRenderInShortView - cacheMapWithoutEmptyBlocks.length + 1\n // amount of blocks needed to fill the line till the end\n\n const extraEmptyBlocksForFillingLine = extraBlocksAmount ? new Array(extraBlocksAmount).fill({}) : []\n\n return [...cacheMapWithoutEmptyBlocks, ...extraEmptyBlocksForFillingLine]\n}\n","import styled, { css } from 'styled-components'\n\nconst viewedPrimaryColor = '#bdbdbd'\nconst viewedSecondaryColor = '#c4c4c4'\nconst viewedTertiaryColor = '#c9c9c9'\nconst bigTableDividerColor = '#ddd'\nconst bigTableDefaultRowColor = '#fff'\nconst bigTableViewedRowColor = '#f3f3f3'\n\nconst viewedIndicator = css`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ${defaultPrimaryColor};\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n `}\n`\nexport const TableStyle = styled.table`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ${defaultPrimaryColor};\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ${bigTableDividerColor};\n background: ${bigTableDefaultRowColor};\n\n :last-of-type {\n border-bottom: 2px solid ${defaultPrimaryColor};\n }\n\n &.viewed-file-row {\n background: ${bigTableViewedRowColor};\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ${viewedIndicator}\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n `}\n`\n\nexport const ShortTableWrapper = styled.div`\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n`\n\nexport const ShortTable = styled.div`\n ${({\n isViewed,\n theme: {\n table: { defaultPrimaryColor, defaultSecondaryColor, defaultTertiaryColor },\n },\n }) => css`\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ${isViewed ? 'max-content' : '1fr'};\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n }\n\n &-name {\n background: ${isViewed ? viewedSecondaryColor : defaultSecondaryColor};\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ${isViewed ? viewedTertiaryColor : defaultTertiaryColor};\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ${isViewed && viewedIndicator}\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #fff;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n `}\n`\n","import { streamHost } from 'utils/Hosts'\nimport isEqual from 'lodash/isEqual'\nimport { humanizeSize } from 'utils/Utils'\nimport ptt from 'parse-torrent-title'\nimport { Button } from '@material-ui/core'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport { useTranslation } from 'react-i18next'\n\nimport { TableStyle, ShortTableWrapper, ShortTable } from './style'\n\nconst { memo } = require('react')\n\n// russian episode detection support\nptt.addHandler('episode', /(\\d{1,4})[- |. ]серия|серия[- |. ](\\d{1,4})/i, { type: 'integer' })\nptt.addHandler('season', /sezon[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]sezon/i, { type: 'integer' })\nptt.addHandler('season', /сезон[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]сезон/i, { type: 'integer' })\n\nconst Table = memo(\n ({ playableFileList, viewedFileList, selectedSeason, seasonAmount, hash }) => {\n const { t } = useTranslation()\n const preloadBuffer = fileId => fetch(`${streamHost()}?link=${hash}&index=${fileId}&preload`)\n const getFileLink = (path, id) =>\n `${streamHost()}/${encodeURIComponent(path.split('\\\\').pop().split('/').pop())}?link=${hash}&index=${id}&play`\n const fileHasEpisodeText = !!playableFileList?.find(({ path }) => ptt.parse(path).episode)\n const fileHasSeasonText = !!playableFileList?.find(({ path }) => ptt.parse(path).season)\n const fileHasResolutionText = !!playableFileList?.find(({ path }) => ptt.parse(path).resolution)\n\n // if files in list is more then 1 and no season text detected by ptt.parse, show full name\n const shouldDisplayFullFileName = playableFileList.length > 1 && !fileHasEpisodeText\n\n return !playableFileList?.length ? (\n 'No playable files in this torrent'\n ) : (\n <>\n \n \n \n {t('Viewed')}\n {t('Name')}\n {fileHasSeasonText && seasonAmount?.length === 1 && {t('Season')}}\n {fileHasEpisodeText && {t('Episode')}}\n {fileHasResolutionText && {t('Resolution')}}\n {t('Size')}\n {t('Actions')}\n \n \n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n \n {shouldDisplayFullFileName ? path : title}\n {fileHasSeasonText && seasonAmount?.length === 1 && {season}}\n {fileHasEpisodeText && {episode}}\n {fileHasResolutionText && {resolution}}\n {humanizeSize(length)}\n \n
\n \n\n \n \n \n\n \n \n \n
\n \n \n )\n )\n })}\n \n
\n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n
{shouldDisplayFullFileName ? path : title}
\n
\n {isViewed && (\n
\n
{t('Viewed')}
\n
\n
\n
\n
\n )}\n {fileHasSeasonText && seasonAmount?.length === 1 && (\n
\n
{t('Season')}
\n
{season}
\n
\n )}\n {fileHasEpisodeText && (\n
\n
{t('Episode')}
\n
{episode}
\n
\n )}\n {fileHasResolutionText && (\n
\n
{t('Resolution')}
\n
{resolution}
\n
\n )}\n
\n
{t('Size')}
\n
{humanizeSize(length)}
\n
\n
\n
\n \n\n \n \n \n\n \n \n \n
\n \n )\n )\n })}\n \n \n )\n },\n (prev, next) => isEqual(prev, next),\n)\n\nexport default Table\n","import { rgba } from 'polished'\nimport styled, { css } from 'styled-components'\n\nexport const DialogContentGrid = styled.div`\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n`\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n dialogTorrentDetailsContent: { posterBGColor },\n },\n }) => css`\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ${poster\n ? css`\n img {\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n width: 300px;\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n `}\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ${poster\n ? css`\n height: 200px;\n `\n : css`\n display: none;\n `}\n }\n `}\n`\nexport const MainSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const CacheSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { chacheSectionBGColor },\n },\n }) => css`\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ${chacheSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const TorrentFilesSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { torrentFilesSectionBGColor },\n },\n }) => css`\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${torrentFilesSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const SectionSubName = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { subNameFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-top: ${mb / 3}px`};\n ${mb && `margin-bottom: ${mb}px`};\n line-height: 1.2;\n color: ${subNameFontColor};\n\n @media (max-width: 800px) {\n ${mb && `margin-top: ${mb / 4}px`};\n ${mb && `margin-bottom: ${mb / 2}px`};\n font-size: 14px;\n }\n `}\n `}\n`\n\nexport const SectionTitle = styled.div`\n ${({\n color,\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ${color || titleFontColor};\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ${mb && `margin-bottom: ${mb / 2}px`};\n }\n `}\n `}\n`\n\nexport const SectionHeader = styled.div`\n margin-bottom: 20px;\n`\n\nexport const WidgetWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ${({ detailedView }) =>\n detailedView\n ? css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n `\n : css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n `}\n`\n\nexport const WidgetFieldWrapper = styled.div`\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n`\nexport const WidgetFieldTitle = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ${titleFontColor};\n `}\n`\n\nexport const WidgetFieldIcon = styled.div`\n ${({ bgColor }) => css`\n grid-area: icon;\n color: ${rgba('#fff', 0.8)};\n background: ${bgColor};\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n `}\n`\nexport const WidgetFieldValue = styled.div`\n ${({\n bgColor,\n theme: {\n dialogTorrentDetailsContent: { widgetFontColor },\n },\n }) => css`\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ${widgetFontColor};\n background: ${bgColor};\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n `}\n`\n\nexport const LoadingProgress = styled.div.attrs(\n ({\n value,\n fullAmount,\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => {\n const percentage = Math.min(100, (value * 100) / fullAmount)\n\n return {\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${gradientStartColor} 0%, ${gradientEndColor} ${percentage}%, #fff ${percentage}%, #fff 100%)`,\n },\n }\n },\n)`\n ${({ label }) => css`\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n `}\n`\n\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n","import styled, { css } from 'styled-components'\n\nexport const DetailedViewWidgetSection = styled.section`\n ${({\n theme: {\n detailedView: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n padding: 40px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const DetailedViewCacheSection = styled.section`\n ${({\n theme: {\n detailedView: { cacheSectionBGColor },\n },\n }) => css`\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${cacheSectionBGColor};\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n","import { WidgetFieldWrapper, WidgetFieldIcon, WidgetFieldValue, WidgetFieldTitle } from './style'\n\nexport default function StatisticsField({ icon: Icon, title, value, iconBg, valueBg }) {\n return (\n \n {title}\n \n \n \n\n {value}\n \n )\n}\n","import { DarkModeContext } from 'components/App'\nimport { useContext } from 'react'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nconst { LIGHT, DARK } = THEME_MODES\n\nconst colors = {\n light: {\n downloadSpeed: { iconBGColor: '#118f00', valueBGColor: '#13a300' },\n uploadSpeed: { iconBGColor: '#0146ad', valueBGColor: '#0058db' },\n peers: { iconBGColor: '#cdc118', valueBGColor: '#d8cb18' },\n piecesCount: { iconBGColor: '#b6c95e', valueBGColor: '#c0d076' },\n piecesLength: { iconBGColor: '#0982c8', valueBGColor: '#098cd7' },\n status: { iconBGColor: '#aea25b', valueBGColor: '#b4aa6e' },\n size: { iconBGColor: '#9b01ad', valueBGColor: '#ac03bf' },\n },\n dark: {\n downloadSpeed: { iconBGColor: '#0c6600', valueBGColor: '#0d7000' },\n uploadSpeed: { iconBGColor: '#003f9e', valueBGColor: '#0047b3' },\n peers: { iconBGColor: '#a69c11', valueBGColor: '#b4a913' },\n piecesCount: { iconBGColor: '#8da136', valueBGColor: '#99ae3d' },\n piecesLength: { iconBGColor: '#07659c', valueBGColor: '#0872af' },\n status: { iconBGColor: '#938948', valueBGColor: '#9f9450' },\n size: { iconBGColor: '#81008f', valueBGColor: '#9102a1' },\n },\n}\n\nexport default function useGetWidgetColors(widgetName) {\n const { isDarkMode } = useContext(DarkModeContext)\n const widgetColors = colors[isDarkMode ? DARK : LIGHT][widgetName]\n\n return widgetColors\n}\n","import {\n ArrowDownward as ArrowDownwardIcon,\n ArrowUpward as ArrowUpwardIcon,\n SwapVerticalCircle as SwapVerticalCircleIcon,\n ViewAgenda as ViewAgendaIcon,\n Widgets as WidgetsIcon,\n PhotoSizeSelectSmall as PhotoSizeSelectSmallIcon,\n Build as BuildIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed } from 'utils/Utils'\nimport { useTranslation } from 'react-i18next'\nimport { GETTING_INFO, IN_DB, CLOSED, PRELOAD, WORKING } from 'torrentStates'\n\nimport StatisticsField from '../StatisticsField'\nimport useGetWidgetColors from './useGetWidgetColors'\n\nexport const DownlodSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('downloadSpeed')\n\n return (\n \n )\n}\n\nexport const UploadSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('uploadSpeed')\n\n return (\n \n )\n}\n\nexport const PeersWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('peers')\n\n return (\n \n )\n}\n\nexport const PiecesCountWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesCount')\n\n return (\n \n )\n}\n\nexport const PiecesLengthWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesLength')\n\n return (\n \n )\n}\n\nexport const StatusWidget = ({ stat }) => {\n const { t } = useTranslation()\n\n const values = {\n [GETTING_INFO]: t('TorrentGettingInfo'),\n [PRELOAD]: t('TorrentPreload'),\n [WORKING]: t('TorrentWorking'),\n [CLOSED]: t('TorrentClosed'),\n [IN_DB]: t('TorrentInDb'),\n }\n const { iconBGColor, valueBGColor } = useGetWidgetColors('status')\n\n return (\n \n )\n}\n\nexport const SizeWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('size')\n\n return (\n \n )\n}\n","export const [GETTING_INFO, PRELOAD, WORKING, CLOSED, IN_DB] = [1, 2, 3, 4, 5]\n","import { useTranslation } from 'react-i18next'\n\nimport { SectionTitle, WidgetWrapper } from '../style'\nimport { DetailedViewCacheSection, DetailedViewWidgetSection } from './style'\nimport TorrentCache from '../TorrentCache'\nimport {\n SizeWidget,\n PiecesLengthWidget,\n StatusWidget,\n PiecesCountWidget,\n PeersWidget,\n UploadSpeedWidget,\n DownlodSpeedWidget,\n} from '../widgets'\n\nexport default function DetailedView({\n downloadSpeed,\n uploadSpeed,\n torrent,\n torrentSize,\n PiecesCount,\n PiecesLength,\n stat,\n cache,\n}) {\n const { t } = useTranslation()\n\n return (\n <>\n \n {t('Data')}\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n {t('Cache')}\n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const MainSectionButtonGroup = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n`\n\nexport const SmallLabel = styled.div`\n ${({\n mb,\n theme: {\n torrentFunctions: { fontColor },\n },\n }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ${fontColor};\n\n @media (max-width: 800px) {\n font-size: 18px;\n ${mb && `margin-bottom: ${mb / 1.5}px`};\n }\n `}\n`\n","import axios from 'axios'\nimport { memo } from 'react'\nimport { playlistTorrHost, torrentsHost, viewedHost } from 'utils/Hosts'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\nimport { Button } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\n\nimport { SmallLabel, MainSectionButtonGroup } from './style'\nimport { SectionSubName } from '../style'\n\nconst TorrentFunctions = memo(\n ({ hash, viewedFileList, playableFileList, name, title, setViewedFileList }) => {\n const { t } = useTranslation()\n const latestViewedFileId = viewedFileList?.[viewedFileList?.length - 1]\n const latestViewedFile = playableFileList?.find(({ id }) => id === latestViewedFileId)?.path\n const isOnlyOnePlayableFile = playableFileList?.length === 1\n const latestViewedFileData = latestViewedFile && ptt.parse(latestViewedFile)\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const removeTorrentViews = () =>\n axios.post(viewedHost(), { action: 'rem', hash, file_index: -1 }).then(() => setViewedFileList())\n const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(name || title || 'file')}.m3u?link=${hash}&m3u`\n const partialPlaylistLink = `${fullPlaylistLink}&fromlast`\n\n return (\n <>\n {!isOnlyOnePlayableFile && !!viewedFileList?.length && (\n <>\n {t('DownloadPlaylist')}\n \n {t('LatestFilePlayed')} {latestViewedFileData?.title}.\n {latestViewedFileData?.season && (\n <>\n {' '}\n {t('Season')}: {latestViewedFileData?.season}. {t('Episode')}: {latestViewedFileData?.episode}.\n \n )}\n \n\n \n \n \n \n\n \n \n \n \n \n )}\n {t('TorrentState')}\n \n \n \n \n {t('Info')}\n \n {(isOnlyOnePlayableFile || !viewedFileList?.length) && (\n \n \n \n )}\n \n \n \n \n \n )\n },\n () => true,\n)\n\nexport default TorrentFunctions\n","const getExt = filename => {\n const ext = filename.split('.').pop()\n if (ext === filename) return ''\n return ext.toLowerCase()\n}\nconst playableExtList = [\n // video\n '3g2',\n '3gp',\n 'aaf',\n 'asf',\n 'avchd',\n 'avi',\n 'drc',\n 'flv',\n 'iso',\n 'm2v',\n 'm2ts',\n 'm4p',\n 'm4v',\n 'mkv',\n 'mng',\n 'mov',\n 'mp2',\n 'mp4',\n 'mpe',\n 'mpeg',\n 'mpg',\n 'mpv',\n 'mxf',\n 'nsv',\n 'ogg',\n 'ogv',\n 'ts',\n 'qt',\n 'rm',\n 'rmvb',\n 'roq',\n 'svi',\n 'vob',\n 'webm',\n 'wmv',\n 'yuv',\n // audio\n 'aac',\n 'aiff',\n 'ape',\n 'au',\n 'flac',\n 'gsm',\n 'it',\n 'm3u',\n 'm4a',\n 'mid',\n 'mod',\n 'mp3',\n 'mpa',\n 'pls',\n 'ra',\n 's3m',\n 'sid',\n 'wav',\n 'wma',\n 'xm',\n]\n\n// eslint-disable-next-line import/prefer-default-export\nexport const isFilePlayable = fileName => playableExtList.includes(getExt(fileName))\n","import { NoImageIcon } from 'icons'\nimport { humanizeSize, removeRedundantCharacters } from 'utils/Utils'\nimport { useEffect, useState } from 'react'\nimport { Button, ButtonGroup } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport axios from 'axios'\nimport { viewedHost } from 'utils/Hosts'\nimport { GETTING_INFO, IN_DB } from 'torrentStates'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { useTranslation } from 'react-i18next'\n\nimport { useUpdateCache, useGetSettings } from './customHooks'\nimport DialogHeader from './DialogHeader'\nimport TorrentCache from './TorrentCache'\nimport Table from './Table'\nimport DetailedView from './DetailedView'\nimport {\n DialogContentGrid,\n MainSection,\n Poster,\n SectionTitle,\n SectionSubName,\n WidgetWrapper,\n LoadingProgress,\n SectionHeader,\n CacheSection,\n TorrentFilesSection,\n Divider,\n} from './style'\nimport { DownlodSpeedWidget, UploadSpeedWidget, PeersWidget, SizeWidget, StatusWidget } from './widgets'\nimport TorrentFunctions from './TorrentFunctions'\nimport { isFilePlayable } from './helpers'\n\nconst Loader = () => (\n
\n \n
\n)\n\nexport default function DialogTorrentDetailsContent({ closeDialog, torrent }) {\n const { t } = useTranslation()\n const [isLoading, setIsLoading] = useState(true)\n const [isDetailedCacheView, setIsDetailedCacheView] = useState(false)\n const [viewedFileList, setViewedFileList] = useState()\n const [playableFileList, setPlayableFileList] = useState()\n const [seasonAmount, setSeasonAmount] = useState(null)\n const [selectedSeason, setSelectedSeason] = useState()\n\n const {\n poster,\n hash,\n title,\n name,\n stat,\n download_speed: downloadSpeed,\n upload_speed: uploadSpeed,\n torrent_size: torrentSize,\n file_stats: torrentFileList,\n } = torrent\n\n const cache = useUpdateCache(hash)\n const settings = useGetSettings(cache)\n\n const { Capacity, PiecesCount, PiecesLength, Filled } = cache\n\n useEffect(() => {\n if (playableFileList && seasonAmount === null) {\n const seasons = []\n playableFileList.forEach(({ path }) => {\n const currentSeason = ptt.parse(path).season\n if (currentSeason) {\n !seasons.includes(currentSeason) && seasons.push(currentSeason)\n }\n })\n seasons.length && setSelectedSeason(seasons[0])\n setSeasonAmount(seasons.sort((a, b) => a - b))\n }\n }, [playableFileList, seasonAmount])\n\n useEffect(() => {\n setPlayableFileList(torrentFileList?.filter(({ path }) => isFilePlayable(path)))\n }, [torrentFileList])\n\n useEffect(() => {\n const cacheLoaded = !!Object.entries(cache).length\n const torrentLoaded = stat !== GETTING_INFO && stat !== IN_DB\n\n if (!cacheLoaded && !isLoading) setIsLoading(true)\n if (cacheLoaded && isLoading && torrentLoaded) setIsLoading(false)\n }, [stat, cache, isLoading])\n\n useEffect(() => {\n // getting viewed file list\n axios.post(viewedHost(), { action: 'list', hash }).then(({ data }) => {\n if (data) {\n const lst = data.map(itm => itm.file_index).sort((a, b) => a - b)\n setViewedFileList(lst)\n } else setViewedFileList()\n })\n }, [hash])\n\n const preloadPerc = settings?.PreloadCache\n const preloadSize = (Capacity / 100) * preloadPerc\n const bufferSize = preloadSize > 33554432 ? preloadSize : 33554432 // Not less than 32MB\n\n const getParsedTitle = () => {\n const newNameStringArr = []\n\n const torrentParsedName = name && ptt.parse(name)\n\n if (title !== name) {\n newNameStringArr.push(removeRedundantCharacters(title))\n } else if (torrentParsedName?.title) newNameStringArr.push(removeRedundantCharacters(torrentParsedName?.title))\n\n // These 2 checks are needed to get year and resolution from torrent name if title does not have this info\n if (torrentParsedName?.year && !newNameStringArr[0].includes(torrentParsedName?.year))\n newNameStringArr.push(torrentParsedName?.year)\n if (torrentParsedName?.resolution && !newNameStringArr[0].includes(torrentParsedName?.resolution))\n newNameStringArr.push(torrentParsedName?.resolution)\n\n const newNameString = newNameStringArr.join('. ')\n\n // removeRedundantCharacters is returning \"..\" if it was \"...\"\n const lastDotShouldBeAdded =\n newNameString[newNameString.length - 1] === '.' && newNameString[newNameString.length - 2] === '.'\n\n return lastDotShouldBeAdded ? `${newNameString}.` : newNameString\n }\n\n return (\n <>\n setIsDetailedCacheView(false) })}\n />\n\n \n {isLoading ? (\n \n ) : isDetailedCacheView ? (\n \n ) : (\n \n \n {poster ? poster : }\n\n
\n {title && name !== title ? (\n getParsedTitle().length > 90 ? (\n <>\n {ptt.parse(name).title}\n {getParsedTitle()}\n \n ) : (\n <>\n {getParsedTitle()}\n {ptt.parse(name || '')?.title}\n \n )\n ) : (\n {getParsedTitle()}\n )}\n\n \n \n \n \n \n \n \n\n \n\n \n
\n
\n\n \n \n {t('Buffer')}\n {bufferSize <= 33554432 && {t('BufferNote')}}\n \n \n\n \n setIsDetailedCacheView(true)}\n >\n {t('DetailedCacheView.button')}\n \n \n\n \n {t('TorrentContent')}\n\n {seasonAmount?.length > 1 && (\n <>\n {t('SelectSeason')}\n \n {seasonAmount.map(season => (\n setSelectedSeason(season)}\n >\n {season}\n \n ))}\n \n\n \n {t('Season')} {selectedSeason}\n \n \n )}\n\n \n \n
\n )}\n
\n \n )\n}\n","import { useTranslation } from 'react-i18next'\n\nexport default () => {\n const { i18n } = useTranslation()\n const currentLanguage = i18n.language === 'en-US' || i18n.language === 'en' ? 'en' : i18n.language\n\n return [currentLanguage, lang => i18n.changeLanguage(lang)]\n}\n","import { useEffect, useRef } from 'react'\n\nexport default function usePreviousState(value) {\n const ref = useRef(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n","import styled, { css } from 'styled-components'\n\nexport const Header = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n `}\n`\n\nexport const ButtonWrapper = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n`\n","import axios from 'axios'\nimport parseTorrent from 'parse-torrent'\nimport ptt from 'parse-torrent-title'\n\nexport const getMoviePosters = (movieName, language = 'en') => {\n const url = 'http://api.themoviedb.org/3/search/multi'\n\n return axios\n .get(url, {\n params: {\n api_key: process.env.REACT_APP_TMDB_API_KEY,\n language,\n include_image_language: `${language},null,en`,\n query: movieName,\n },\n })\n .then(({ data: { results } }) =>\n results.filter(el => el.poster_path).map(el => `https://image.tmdb.org/t/p/w300${el.poster_path}`),\n )\n .catch(() => null)\n}\n\nexport const checkImageURL = async url => {\n if (!url || !url.match(/.(jpg|jpeg|png|gif)$/i)) return false\n return true\n}\n\nconst magnetRegex = /^magnet:\\?xt=urn:[a-z0-9].*/i\nexport const hashRegex = /^\\b[0-9a-f]{32}\\b$|^\\b[0-9a-f]{40}\\b$|^\\b[0-9a-f]{64}\\b$/i\nconst torrentRegex = /^.*\\.(torrent)$/i\nconst linkRegex = /^(http(s?)):\\/\\/.*/i\n\nexport const checkTorrentSource = source =>\n source.match(hashRegex) !== null ||\n source.match(magnetRegex) !== null ||\n source.match(torrentRegex) !== null ||\n source.match(linkRegex) !== null\n\nexport const parseTorrentTitle = (parsingSource, callback) => {\n parseTorrent.remote(parsingSource, (err, { name, files } = {}) => {\n if (!name || err) return callback({ parsedTitle: null, originalName: null })\n\n const torrentName = ptt.parse(name).title\n const nameOfFileInsideTorrent = files ? ptt.parse(files[0].name).title : null\n\n let newTitle = torrentName\n if (nameOfFileInsideTorrent) {\n // taking shorter title because in most cases it is more accurate\n newTitle = torrentName.length < nameOfFileInsideTorrent.length ? torrentName : nameOfFileInsideTorrent\n }\n\n callback({ parsedTitle: newTitle, originalName: name })\n })\n}\n","import { Button } from '@material-ui/core'\nimport styled, { css } from 'styled-components'\n\nexport const Content = styled.div`\n ${({\n isEditMode,\n theme: {\n addDialog: { gradientStartColor, gradientEndColor, fontColor },\n },\n }) => css`\n height: 550px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n flex: 1;\n display: grid;\n grid-template-columns: repeat(${isEditMode ? '1' : '2'}, 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ${fontColor};\n\n @media (max-width: 540px) {\n ${'' /* Just for bug fixing on small screens */}\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n `}\n`\n\nexport const RightSide = styled.div`\n padding: 0 20px 20px 20px;\n`\n\nexport const RightSideContainer = styled.div`\n ${({\n isHidden,\n notificationMessage,\n isError,\n theme: {\n addDialog: { notificationErrorBGColor, notificationSuccessBGColor },\n },\n }) => css`\n height: 530px;\n\n ${notificationMessage &&\n css`\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '${notificationMessage}';\n display: grid;\n place-items: center;\n background: ${isError ? notificationErrorBGColor : notificationSuccessBGColor};\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n `};\n\n ${isHidden &&\n css`\n display: none;\n `};\n\n @media (max-width: 500px) {\n height: 170px;\n }\n `}\n`\nexport const LeftSide = styled.div`\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n`\n\nexport const LeftSideBottomSectionBasicStyles = css`\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n`\n\nexport const LeftSideBottomSectionNoFile = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n\n ${({ isDragActive }) => isDragActive && `border: 4px dashed green`};\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n`\n\nexport const LeftSideBottomSectionFileSelected = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n`\n\nexport const TorrentIconWrapper = styled.div`\n position: relative;\n`\n\nexport const CancelIconWrapper = styled.div`\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n`\n\nexport const IconWrapper = styled.div`\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n`\n\nexport const LeftSideTopSection = styled.div`\n ${({\n active,\n theme: {\n addDialog: { gradientStartColor },\n },\n }) => css`\n background: ${gradientStartColor};\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ${active && 'box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)'};\n `}\n`\n\nexport const PosterWrapper = styled.div`\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n`\n\nexport const PosterSuggestions = styled.div`\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n`\n\nexport const PosterSuggestionsItem = styled.div`\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n`\n\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n addDialog: { posterBGColor },\n },\n }) => css`\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ${poster\n ? css`\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n `}\n `}\n`\n\nexport const ClearPosterButton = styled(Button)`\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ${({ showbutton }) => !showbutton && 'display: none'};\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n`\n\nexport const PosterLanguageSwitch = styled.div`\n ${({\n showbutton,\n theme: {\n addDialog: { languageSwitchBGColor, languageSwitchFontColor },\n },\n }) => css`\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ${languageSwitchBGColor};\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ${languageSwitchFontColor};\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ${!showbutton && 'display: none'};\n\n :hover {\n filter: brightness(1.1);\n }\n `}\n`\n","import { useTranslation } from 'react-i18next'\nimport { rgba } from 'polished'\nimport { NoImageIcon } from 'icons'\nimport { IconButton, InputAdornment, TextField, useTheme } from '@material-ui/core'\nimport { HighlightOff as HighlightOffIcon } from '@material-ui/icons'\n\nimport {\n ClearPosterButton,\n PosterLanguageSwitch,\n RightSide,\n Poster,\n PosterSuggestions,\n PosterSuggestionsItem,\n PosterWrapper,\n RightSideContainer,\n} from './style'\nimport { checkImageURL } from './helpers'\n\nexport default function RightSideComponent({\n setTitle,\n setPosterUrl,\n setIsPosterUrlCorrect,\n setIsUserInteractedWithPoster,\n setPosterList,\n isTorrentSourceCorrect,\n isHashAlreadyExists,\n title,\n parsedTitle,\n posterUrl,\n isPosterUrlCorrect,\n posterList,\n currentLang,\n posterSearchLanguage,\n setPosterSearchLanguage,\n posterSearch,\n removePoster,\n torrentSource,\n originalTorrentTitle,\n updateTitleFromSource,\n isCustomTitleEnabled,\n setIsCustomTitleEnabled,\n isEditMode,\n}) {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n const handleTitleChange = ({ target: { value } }) => setTitle(value)\n const handlePosterUrlChange = ({ target: { value } }) => {\n setPosterUrl(value)\n checkImageURL(value).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(!!value)\n setPosterList()\n }\n const userChangesPosterUrl = url => {\n setPosterUrl(url)\n checkImageURL(url).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(true)\n }\n\n return (\n \n \n {originalTorrentTitle ? (\n <>\n \n setIsCustomTitleEnabled(true)}\n onBlur={({ target: { value } }) => !value && setIsCustomTitleEnabled(false)}\n value={title}\n margin='dense'\n label={t('AddDialog.CustomTorrentTitle')}\n type='text'\n fullWidth\n helperText={t('AddDialog.CustomTorrentTitleHelperText')}\n InputProps={{\n endAdornment: (\n \n {\n setTitle('')\n setIsCustomTitleEnabled(!isCustomTitleEnabled)\n updateTitleFromSource()\n setIsUserInteractedWithPoster(false)\n }}\n >\n \n \n \n ),\n }}\n />\n \n ) : (\n \n )}\n \n\n \n \n {isPosterUrlCorrect ? poster : }\n \n\n \n {posterList\n ?.filter(url => url !== posterUrl)\n .slice(0, 12)\n .map(url => (\n userChangesPosterUrl(url)} key={url}>\n poster\n \n ))}\n \n\n {currentLang !== 'en' && (\n {\n const newLanguage = posterSearchLanguage === 'en' ? 'ru' : 'en'\n setPosterSearchLanguage(newLanguage)\n posterSearch(isCustomTitleEnabled ? title : originalTorrentTitle ? parsedTitle : title, newLanguage, {\n shouldRefreshMainPoster: true,\n })\n }}\n showbutton={+isPosterUrlCorrect}\n color='primary'\n variant='contained'\n size='small'\n >\n {posterSearchLanguage === 'en' ? 'EN' : 'RU'}\n \n )}\n\n {\n removePoster()\n setIsUserInteractedWithPoster(true)\n }}\n color='primary'\n variant='contained'\n size='small'\n >\n {t('Clear')}\n \n \n \n\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { useDropzone } from 'react-dropzone'\nimport { AddItemIcon, TorrentIcon } from 'icons'\nimport TextField from '@material-ui/core/TextField'\nimport { Cancel as CancelIcon } from '@material-ui/icons'\nimport { useState } from 'react'\n\nimport {\n CancelIconWrapper,\n IconWrapper,\n LeftSide,\n LeftSideBottomSectionFileSelected,\n LeftSideBottomSectionNoFile,\n LeftSideTopSection,\n TorrentIconWrapper,\n} from './style'\n\nexport default function LeftSideComponent({\n setIsUserInteractedWithPoster,\n setSelectedFile,\n torrentSource,\n setTorrentSource,\n selectedFile,\n}) {\n const { t } = useTranslation()\n\n const handleCapture = files => {\n const [file] = files\n if (!file) return\n\n setIsUserInteractedWithPoster(false)\n setSelectedFile(file)\n setTorrentSource(file.name)\n }\n\n const clearSelectedFile = () => {\n setSelectedFile()\n setTorrentSource('')\n }\n\n const [isTorrentSourceActive, setIsTorrentSourceActive] = useState(false)\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop: handleCapture, accept: '.torrent' })\n\n const handleTorrentSourceChange = ({ target: { value } }) => setTorrentSource(value)\n\n return (\n \n \n setIsTorrentSourceActive(true)}\n onBlur={() => setIsTorrentSourceActive(false)}\n inputProps={{ autoComplete: 'off' }}\n disabled={!!selectedFile}\n />\n \n\n {selectedFile ? (\n \n \n \n\n \n \n \n \n \n ) : (\n \n \n
{t('AddDialog.AppendFile.Or')}
\n\n \n \n
{t('AddDialog.AppendFile.ClickOrDrag')}
\n
\n
\n )}\n
\n )\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport { torrentsHost, torrentUploadHost } from 'utils/Hosts'\nimport axios from 'axios'\nimport { useTranslation } from 'react-i18next'\nimport debounce from 'lodash/debounce'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { useMediaQuery } from '@material-ui/core'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport usePreviousState from 'utils/usePreviousState'\nimport { useQuery } from 'react-query'\nimport { getTorrents } from 'utils/Utils'\nimport parseTorrent from 'parse-torrent'\nimport { ButtonWrapper, Header } from 'style/DialogStyles'\n\nimport { checkImageURL, getMoviePosters, checkTorrentSource, parseTorrentTitle } from './helpers'\nimport { Content } from './style'\nimport RightSideComponent from './RightSideComponent'\nimport LeftSideComponent from './LeftSideComponent'\n\nexport default function AddDialog({\n handleClose,\n hash: originalHash,\n title: originalTitle,\n name: originalName,\n poster: originalPoster,\n}) {\n const { t } = useTranslation()\n const isEditMode = !!originalHash\n const [torrentSource, setTorrentSource] = useState(originalHash || '')\n const [title, setTitle] = useState(originalTitle || '')\n const [originalTorrentTitle, setOriginalTorrentTitle] = useState('')\n const [parsedTitle, setParsedTitle] = useState('')\n const [posterUrl, setPosterUrl] = useState(originalPoster || '')\n const [isPosterUrlCorrect, setIsPosterUrlCorrect] = useState(false)\n const [isTorrentSourceCorrect, setIsTorrentSourceCorrect] = useState(false)\n const [isHashAlreadyExists, setIsHashAlreadyExists] = useState(false)\n const [posterList, setPosterList] = useState()\n const [isUserInteractedWithPoster, setIsUserInteractedWithPoster] = useState(isEditMode)\n const [currentLang] = useChangeLanguage()\n const [selectedFile, setSelectedFile] = useState()\n const [posterSearchLanguage, setPosterSearchLanguage] = useState(currentLang === 'ru' ? 'ru' : 'en')\n const [isSaving, setIsSaving] = useState(false)\n const [skipDebounce, setSkipDebounce] = useState(false)\n const [isCustomTitleEnabled, setIsCustomTitleEnabled] = useState(false)\n const [currentSourceHash, setCurrentSourceHash] = useState()\n\n const { data: torrents } = useQuery('torrents', getTorrents, { retry: 1, refetchInterval: 1000 })\n\n useEffect(() => {\n // getting hash from added torrent source\n parseTorrent.remote(selectedFile || torrentSource, (_, { infoHash } = {}) => setCurrentSourceHash(infoHash))\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n // checking if torrent already exists in DB\n if (!setCurrentSourceHash) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n setIsHashAlreadyExists(allHashes.includes(currentSourceHash))\n }, [currentSourceHash, torrents])\n\n useEffect(() => {\n // closing dialog when torrent successfully added in DB\n if (!isSaving) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n allHashes.includes(currentSourceHash) && handleClose()\n }, [isSaving, torrents, currentSourceHash, handleClose])\n\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n\n const updateTitleFromSource = useCallback(() => {\n parseTorrentTitle(selectedFile || torrentSource, ({ parsedTitle, originalName }) => {\n if (!originalName) return\n\n setSkipDebounce(true)\n setTitle('')\n setIsCustomTitleEnabled(false)\n setOriginalTorrentTitle(originalName)\n setParsedTitle(parsedTitle)\n })\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n if (!selectedFile && !torrentSource) {\n setTitle('')\n setOriginalTorrentTitle('')\n setParsedTitle('')\n setIsCustomTitleEnabled(false)\n setPosterList()\n removePoster()\n setIsUserInteractedWithPoster(false)\n }\n }, [selectedFile, torrentSource])\n\n const removePoster = () => {\n setIsPosterUrlCorrect(false)\n setPosterUrl('')\n }\n\n useEffect(() => {\n if (originalHash) {\n checkImageURL(posterUrl).then(correctImage => {\n correctImage ? setIsPosterUrlCorrect(true) : removePoster()\n })\n }\n // This is needed only on mount. Do not remove line below\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const posterSearch = useMemo(\n () =>\n (movieName, language, { shouldRefreshMainPoster = false } = {}) => {\n if (!movieName) {\n setPosterList()\n removePoster()\n return\n }\n\n getMoviePosters(movieName, language).then(urlList => {\n if (urlList) {\n setPosterList(urlList)\n if (!shouldRefreshMainPoster && isUserInteractedWithPoster) return\n\n const [firstPoster] = urlList\n checkImageURL(firstPoster).then(correctImage => {\n if (correctImage) {\n setIsPosterUrlCorrect(true)\n setPosterUrl(firstPoster)\n } else removePoster()\n })\n } else {\n setPosterList()\n if (isUserInteractedWithPoster) return\n\n removePoster()\n }\n })\n },\n [isUserInteractedWithPoster],\n )\n\n const delayedPosterSearch = useMemo(() => debounce(posterSearch, 700), [posterSearch])\n\n const prevTorrentSourceState = usePreviousState(torrentSource)\n\n useEffect(() => {\n const isCorrectSource = checkTorrentSource(torrentSource)\n if (!isCorrectSource) return setIsTorrentSourceCorrect(false)\n\n setIsTorrentSourceCorrect(true)\n\n // if torrentSource is updated then we are getting title from the source\n const torrentSourceChanged = torrentSource !== prevTorrentSourceState\n if (!torrentSourceChanged) return\n\n updateTitleFromSource()\n }, [prevTorrentSourceState, selectedFile, torrentSource, updateTitleFromSource])\n\n const prevTitleState = usePreviousState(title)\n\n useEffect(() => {\n // if title exists and title was changed then search poster.\n const titleChanged = title !== prevTitleState\n if (!titleChanged && !parsedTitle) return\n\n if (skipDebounce) {\n posterSearch(title || parsedTitle, posterSearchLanguage)\n setSkipDebounce(false)\n } else if (!title) {\n delayedPosterSearch.cancel()\n\n if (parsedTitle) {\n posterSearch(parsedTitle, posterSearchLanguage)\n } else {\n !isUserInteractedWithPoster && removePoster()\n }\n } else {\n delayedPosterSearch(title, posterSearchLanguage)\n }\n }, [\n title,\n parsedTitle,\n prevTitleState,\n delayedPosterSearch,\n posterSearch,\n posterSearchLanguage,\n skipDebounce,\n isUserInteractedWithPoster,\n ])\n\n const handleSave = () => {\n setIsSaving(true)\n\n if (isEditMode) {\n axios\n .post(torrentsHost(), {\n action: 'set',\n hash: originalHash,\n title: title || originalName,\n poster: posterUrl,\n })\n .finally(handleClose)\n } else if (selectedFile) {\n // file save\n const data = new FormData()\n data.append('save', 'true')\n data.append('file', selectedFile)\n title && data.append('title', title)\n posterUrl && data.append('poster', posterUrl)\n axios.post(torrentUploadHost(), data).catch(handleClose)\n } else {\n // link save\n axios\n .post(torrentsHost(), { action: 'add', link: torrentSource, title, poster: posterUrl, save_to_db: true })\n .catch(handleClose)\n }\n }\n\n return (\n \n
{t(isEditMode ? 'EditTorrent' : 'AddNewTorrent')}
\n\n \n {!isEditMode && (\n \n )}\n\n \n \n\n \n \n\n \n {isSaving ? : t(isEditMode ? 'Save' : 'Add')}\n \n \n
\n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const TorrentCard = styled.div`\n ${({\n theme: {\n torrentCard: { cardPrimaryColor },\n },\n }) => css`\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ${cardPrimaryColor};\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n `}\n`\n\nexport const TorrentCardPoster = styled.div`\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n\n ${({\n isPoster,\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) =>\n isPoster\n ? css`\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${cardSecondaryColor};\n border: 1px solid ${accentCardColor};\n\n svg {\n transform: translateY(-3px);\n }\n `};\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n`\n\nexport const TorrentCardButtons = styled.div`\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n`\nexport const TorrentCardDescription = styled.div`\n ${({\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) => css`\n grid-area: description;\n background: ${cardSecondaryColor};\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ${accentCardColor};\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n `}\n`\n\nexport const StyledButton = styled.button`\n ${({\n theme: {\n torrentCard: { buttonBGColor, accentCardColor },\n },\n }) => css`\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ${buttonBGColor};\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ${accentCardColor};\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n `}\n`\n","import { forwardRef, memo, useState } from 'react'\nimport {\n UnfoldMore as UnfoldMoreIcon,\n Edit as EditIcon,\n Close as CloseIcon,\n Delete as DeleteIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed, removeRedundantCharacters } from 'utils/Utils'\nimport { torrentsHost } from 'utils/Hosts'\nimport { NoImageIcon } from 'icons'\nimport DialogTorrentDetailsContent from 'components/DialogTorrentDetailsContent'\nimport Dialog from '@material-ui/core/Dialog'\nimport Slide from '@material-ui/core/Slide'\nimport { Button, DialogActions, DialogTitle, useMediaQuery, useTheme } from '@material-ui/core'\nimport axios from 'axios'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\nimport AddDialog from 'components/Add/AddDialog'\n\nimport { StyledButton, TorrentCard, TorrentCardButtons, TorrentCardDescription, TorrentCardPoster } from './style'\n\nconst Transition = forwardRef((props, ref) => )\n\nconst Torrent = ({ torrent }) => {\n const { t } = useTranslation()\n const [isDetailedInfoOpened, setIsDetailedInfoOpened] = useState(false)\n const [isDeleteTorrentOpened, setIsDeleteTorrentOpened] = useState(false)\n\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('md'))\n\n const openDetailedInfo = () => setIsDetailedInfoOpened(true)\n const closeDetailedInfo = () => setIsDetailedInfoOpened(false)\n const openDeleteTorrentAlert = () => setIsDeleteTorrentOpened(true)\n const closeDeleteTorrentAlert = () => setIsDeleteTorrentOpened(false)\n\n const { title, name, poster, torrent_size: torrentSize, download_speed: downloadSpeed, hash } = torrent\n\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const deleteTorrent = () => axios.post(torrentsHost(), { action: 'rem', hash })\n\n const getParsedTitle = () => {\n const parse = key => ptt.parse(title || '')?.[key] || ptt.parse(name || '')?.[key]\n\n const titleStrings = []\n\n let parsedTitle = removeRedundantCharacters(parse('title'))\n const parsedYear = parse('year')\n const parsedResolution = parse('resolution')\n if (parsedTitle) titleStrings.push(parsedTitle)\n if (parsedYear) titleStrings.push(`(${parsedYear})`)\n if (parsedResolution) titleStrings.push(`[${parsedResolution}]`)\n parsedTitle = titleStrings.join(' ')\n return { parsedTitle }\n }\n const { parsedTitle } = getParsedTitle()\n\n const [isEditDialogOpen, setIsEditDialogOpen] = useState(false)\n const handleClickOpenEditDialog = () => setIsEditDialogOpen(true)\n const handleCloseEditDialog = () => setIsEditDialogOpen(false)\n\n return (\n <>\n \n \n {poster ? poster : }\n \n\n \n \n \n {t('Details')}\n \n\n \n \n {t('Edit')}\n \n\n dropTorrent(torrent)}>\n \n {t('Drop')}\n \n\n \n \n {t('Delete')}\n \n \n\n \n
\n
{t('Name')}
\n
{parsedTitle}
\n
\n\n
\n
\n
{t('Size')}
\n
{torrentSize > 0 && humanizeSize(torrentSize)}
\n
\n\n
\n
{t('Speed')}
\n
\n {downloadSpeed > 0 ? humanizeSpeed(downloadSpeed) : '---'}\n
\n
\n\n
\n
{t('Peers')}
\n
{getPeerString(torrent) || '---'}
\n
\n
\n
\n
\n\n \n \n \n\n \n {t('DeleteTorrent?')}\n \n \n\n {\n deleteTorrent(torrent)\n closeDeleteTorrentAlert()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n\n {isEditDialogOpen && (\n \n )}\n \n )\n}\n\nexport default memo(Torrent)\n","import { rgba } from 'polished'\nimport styled, { css } from 'styled-components'\n\nexport const AppWrapper = styled.div`\n ${({\n theme: {\n app: { appSecondaryColor },\n },\n }) => css`\n height: 100%;\n background: ${rgba(appSecondaryColor, 0.8)};\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n `}\n`\n\nexport const CenteredGrid = styled.div`\n height: 100%;\n display: grid;\n place-items: center;\n`\n\nexport const AppHeader = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n `}\n`\nexport const AppSidebarStyle = styled.div`\n ${({\n isDrawerOpen,\n theme: {\n app: { appSecondaryColor, sidebarBGColor, sidebarFillColor },\n },\n }) => css`\n grid-area: side;\n width: ${isDrawerOpen ? '400%' : '100%'};\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ${rgba(appSecondaryColor, 0.12)};\n background: ${sidebarBGColor};\n color: ${sidebarFillColor};\n white-space: nowrap;\n\n svg {\n fill: ${sidebarFillColor};\n }\n `}\n`\nexport const TorrentListWrapper = styled.div`\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n`\n\nexport const HeaderToggle = styled.div`\n ${({\n theme: {\n app: { headerToggleColor },\n },\n }) => css`\n cursor: pointer;\n border-radius: 50%;\n background: ${headerToggleColor};\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ${rgba(headerToggleColor, 0.7)};\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n `}\n`\n","import styled, { css } from 'styled-components'\n\nexport default styled.div`\n ${({ isButton }) => css`\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ${isButton &&\n css`\n background: #88cdaa;\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: #74c39c;\n }\n `}\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n `}\n`\n","import { useTheme } from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\nimport IconWrapper from './style'\n\nexport default function NoServerConnection() {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n
{t('Offline')}
\n
\n )\n}\n","import { useTheme } from '@material-ui/core'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport AddDialog from '../Add/AddDialog'\nimport IconWrapper from './style'\n\nexport default function AddFirstTorrent() {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n const primary = useTheme().palette.primary.main\n\n return (\n <>\n handleClickOpen(true)} isButton>\n \n
{t('NoTorrentsAdded')}
\n
\n\n {isDialogOpen && }\n \n )\n}\n","import TorrentCard from 'components/TorrentCard'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { TorrentListWrapper, CenteredGrid } from 'components/App/style'\n\nimport NoServerConnection from './NoServerConnection'\nimport AddFirstTorrent from './AddFirstTorrent'\n\nexport default function TorrentList({ isOffline, isLoading, torrents }) {\n if (isLoading || isOffline || !torrents.length) {\n return (\n \n {isOffline ? (\n \n ) : isLoading ? (\n \n ) : (\n !torrents.length && \n )}\n \n )\n }\n\n return (\n \n {torrents.map(torrent => (\n \n ))}\n \n )\n}\n","import ListItem from '@material-ui/core/ListItem'\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport List from '@material-ui/core/List'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport { useTranslation } from 'react-i18next'\n\nconst donateFrame =\n ''\n\nexport default function DonateDialog({ onClose }) {\n const { t } = useTranslation()\n\n return (\n \n {t('Donate')}\n \n \n \n \n \n \n \n \n \n {/* eslint-disable-next-line react/no-danger */}\n
\n \n \n \n\n \n \n \n
\n )\n}\n","import { useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Snackbar from '@material-ui/core/Snackbar'\nimport IconButton from '@material-ui/core/IconButton'\nimport CreditCardIcon from '@material-ui/icons/CreditCard'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { useTranslation } from 'react-i18next'\n\nimport DonateDialog from './DonateDialog'\n\nexport default function DonateSnackbar() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [snackbarOpen, setSnackbarOpen] = useState(true)\n\n const disableSnackbar = () => {\n setSnackbarOpen(false)\n localStorage.setItem('snackbarIsClosed', true)\n }\n\n return (\n <>\n {open && setOpen(false)} />}\n\n \n {\n setOpen(true)\n disableSnackbar()\n }}\n >\n \n {t('Support')}\n \n\n \n \n \n \n }\n />\n \n )\n}\n","import { createGlobalStyle } from 'styled-components'\n\nexport default createGlobalStyle`\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: \"Open Sans\", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n }\n\n button {\n font-family: \"Open Sans\", sans-serif;\n letter-spacing: -0.1px;\n }\n`\n","import { useState } from 'react'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport LibraryAddIcon from '@material-ui/icons/LibraryAdd'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport ListItem from '@material-ui/core/ListItem'\nimport { useTranslation } from 'react-i18next'\n\nimport AddDialog from './AddDialog'\n\nexport default function AddDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n \n \n \n \n \n\n {isDialogOpen && }\n
\n )\n}\n","import styled, { css } from 'styled-components'\nimport { mainColors } from 'style/colors'\nimport { Header } from 'style/DialogStyles'\n\nexport const cacheBeforeReaderColor = '#b3dfc9'\nexport const cacheAfterReaderColor = mainColors.light.primary\n\nexport const SettingsHeader = styled(Header)`\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n`\n\nexport const FooterSection = styled.div`\n ${({\n theme: {\n settingsDialog: { footerBG },\n },\n }) => css`\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ${footerBG};\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n `}\n`\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n\nexport const Content = styled.div`\n ${({\n isLoading,\n theme: {\n settingsDialog: { contentBG },\n },\n }) => css`\n background: ${contentBG};\n overflow: auto;\n flex: 1;\n\n ${isLoading &&\n css`\n min-height: 500px;\n display: grid;\n place-items: center;\n `}\n `}\n`\n\nexport const PreloadCacheValue = styled.div`\n ${({ color }) => css`\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ${color};\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n `}\n`\n\nexport const MainSettingsContent = styled.div`\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n`\nexport const SecondarySettingsContent = styled.div`\n padding: 20px;\n`\n\nexport const StorageButton = styled.div`\n ${({ small, selected }) => css`\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ${!selected &&\n css`\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n `}\n\n ${small\n ? css`\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n `\n : css`\n display: grid;\n place-items: center;\n gap: 10px;\n `}\n `}\n`\n\nexport const StorageIconWrapper = styled.div`\n ${({ selected, small }) => css`\n width: ${small ? '60px' : '150px'};\n height: ${small ? '60px' : '150px'};\n border-radius: 50%;\n background: ${selected ? '#323637' : '#dee3e5'};\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ${small ? '50px' : '90px'};\n height: ${small ? '50px' : '90px'};\n }\n `}\n`\n\nexport const CacheStorageSelector = styled.div`\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n`\n\nexport const SettingSectionLabel = styled.div`\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n`\n\nexport const PreloadCachePercentage = styled.div.attrs(({ value }) => ({\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${cacheBeforeReaderColor} 0%, ${cacheBeforeReaderColor} ${value}%, ${cacheAfterReaderColor} ${value}%, ${cacheAfterReaderColor} 100%)`,\n },\n}))`\n ${({ label, preloadCachePercentage }) => css`\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ${preloadCachePercentage}%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n `}\n`\n","export default {\n CacheSize: 96,\n ReaderReadAHead: 95,\n UseDisk: false,\n UploadRateLimit: 0,\n TorrentsSavePath: '',\n ConnectionsLimit: 23,\n DisableDHT: false,\n DisablePEX: false,\n DisableTCP: false,\n DisableUPNP: false,\n DisableUTP: true,\n DisableUpload: false,\n DownloadRateLimit: 0,\n EnableDebug: false,\n EnableIPv6: false,\n ForceEncrypt: false,\n PeersListenPort: 0,\n PreloadCache: 0,\n RemoveCacheOnDrop: false,\n RetrackersMode: 1,\n TorrentDisconnectTimeout: 30,\n}\n","export const a11yProps = index => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nexport const TabPanel = ({ children, value, index, ...other }) => (\n \n)\n","import { Grid, OutlinedInput, Slider } from '@material-ui/core'\n\nexport default function SliderInput({\n isProMode,\n title,\n value,\n setValue,\n sliderMin,\n sliderMax,\n inputMin,\n inputMax,\n step = 1,\n onBlurCallback,\n}) {\n const onBlur = ({ target: { value } }) => {\n if (value < inputMin) return setValue(inputMin)\n if (value > inputMax) return setValue(inputMax)\n\n onBlurCallback && onBlurCallback(value)\n }\n\n const onInputChange = ({ target: { value } }) => setValue(value === '' ? '' : Number(value))\n const onSliderChange = (_, newValue) => setValue(newValue)\n\n return (\n <>\n
{title}
\n\n \n \n \n \n\n {isProMode && (\n \n \n \n )}\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { USBIcon, RAMIcon } from 'icons'\nimport { FormControlLabel, Switch } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\n\nimport {\n PreloadCacheValue,\n MainSettingsContent,\n StorageButton,\n StorageIconWrapper,\n CacheStorageSelector,\n SettingSectionLabel,\n PreloadCachePercentage,\n cacheBeforeReaderColor,\n cacheAfterReaderColor,\n} from './style'\nimport SliderInput from './SliderInput'\n\nconst CacheStorageLocationLabel = ({ style }) => {\n const { t } = useTranslation()\n\n return (\n \n {t('SettingsDialog.CacheStorageLocation')}\n {t('SettingsDialog.UseDiskDesc')}\n \n )\n}\n\nexport default function PrimarySettingsComponent({\n settings,\n inputForm,\n cachePercentage,\n preloadCachePercentage,\n cacheSize,\n isProMode,\n setCacheSize,\n setCachePercentage,\n setPreloadCachePercentage,\n updateSettings,\n}) {\n const { t } = useTranslation()\n const { UseDisk, TorrentsSavePath, RemoveCacheOnDrop } = settings || {}\n const preloadCacheSize = Math.round((cacheSize / 100) * preloadCachePercentage)\n\n return (\n \n
\n {t('SettingsDialog.CacheSettings')}\n\n \n\n \n
\n {100 - cachePercentage}% ({Math.round((cacheSize / 100) * (100 - cachePercentage))} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheBeforeReaderDesc')}
\n
\n\n \n
\n {cachePercentage}% ({Math.round((cacheSize / 100) * cachePercentage)} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheAfterReaderDesc')}
\n
\n\n
\n\n setCacheSize(Math.round(value / 4) * 4)}\n />\n\n \n\n \n
\n\n {UseDisk ? (\n
\n \n\n
\n updateSettings({ UseDisk: false })}>\n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n \n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n\n \n }\n label={t('SettingsDialog.RemoveCacheOnDrop')}\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RemoveCacheOnDropDesc')}\n
\n
\n \n
\n ) : (\n \n \n\n \n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n updateSettings({ UseDisk: true })}>\n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n )}\n
\n )\n}\n","import { useTranslation } from 'react-i18next'\nimport TextField from '@material-ui/core/TextField'\nimport { FormControlLabel, InputAdornment, InputLabel, Select, Switch } from '@material-ui/core'\n\nimport { SecondarySettingsContent, SettingSectionLabel } from './style'\n\nexport default function SecondarySettingsComponent({ settings, inputForm }) {\n const { t } = useTranslation()\n\n const {\n RetrackersMode,\n TorrentDisconnectTimeout,\n EnableIPv6,\n ForceEncrypt,\n DisableTCP,\n DisableUTP,\n DisableUPNP,\n DisableDHT,\n DisablePEX,\n DisableUpload,\n DownloadRateLimit,\n UploadRateLimit,\n ConnectionsLimit,\n PeersListenPort,\n } = settings || {}\n\n return (\n \n {t('SettingsDialog.AdditionalSettings')}\n\n }\n label='IPv6'\n labelPlacement='start'\n />\n }\n label='TCP (Transmission Control Protocol)'\n labelPlacement='start'\n />\n }\n label='μTP (Micro Transport Protocol)'\n labelPlacement='start'\n />\n }\n label='PEX (Peer Exchange)'\n labelPlacement='start'\n />\n }\n label={t('SettingsDialog.ForceEncrypt')}\n labelPlacement='start'\n />\n {t('Seconds')},\n }}\n value={TorrentDisconnectTimeout}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n
\n }\n label={t('SettingsDialog.DHT')}\n labelPlacement='start'\n />\n
\n {t('Kilobytes')},\n }}\n value={DownloadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n }\n label={t('SettingsDialog.Upload')}\n labelPlacement='start'\n />\n {t('Kilobytes')},\n }}\n value={UploadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n }\n label='UPnP (Universal Plug and Play)'\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RetrackersMode')}\n \n \n \n \n \n \n
\n
\n )\n}\n","import axios from 'axios'\nimport Dialog from '@material-ui/core/Dialog'\nimport Button from '@material-ui/core/Button'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport { FormControlLabel, useMediaQuery, useTheme } from '@material-ui/core'\nimport { settingsHost } from 'utils/Hosts'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport AppBar from '@material-ui/core/AppBar'\nimport Tabs from '@material-ui/core/Tabs'\nimport Tab from '@material-ui/core/Tab'\nimport SwipeableViews from 'react-swipeable-views'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nimport { SettingsHeader, FooterSection, Content } from './style'\nimport defaultSettings from './defaultSettings'\nimport { a11yProps, TabPanel } from './tabComponents'\nimport PrimarySettingsComponent from './PrimarySettingsComponent'\nimport SecondarySettingsComponent from './SecondarySettingsComponent'\n\nexport default function SettingsDialog({ handleClose }) {\n const { t } = useTranslation()\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n const { direction } = useTheme()\n\n const [settings, setSettings] = useState()\n const [selectedTab, setSelectedTab] = useState(0)\n const [cacheSize, setCacheSize] = useState(32)\n const [cachePercentage, setCachePercentage] = useState(40)\n const [preloadCachePercentage, setPreloadCachePercentage] = useState(0)\n const [isProMode, setIsProMode] = useState(JSON.parse(localStorage.getItem('isProMode')) || false)\n\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => {\n setSettings({ ...data, CacheSize: data.CacheSize / (1024 * 1024) })\n })\n }, [])\n\n const handleSave = () => {\n handleClose()\n const sets = JSON.parse(JSON.stringify(settings))\n sets.CacheSize = cacheSize * 1024 * 1024\n sets.ReaderReadAHead = cachePercentage\n sets.PreloadCache = preloadCachePercentage\n axios.post(settingsHost(), { action: 'set', sets })\n }\n\n const inputForm = ({ target: { type, value, checked, id } }) => {\n const sets = JSON.parse(JSON.stringify(settings))\n\n if (type === 'number' || type === 'select-one') {\n sets[id] = Number(value)\n } else if (type === 'checkbox') {\n if (\n id === 'DisableTCP' ||\n id === 'DisableUTP' ||\n id === 'DisableUPNP' ||\n id === 'DisableDHT' ||\n id === 'DisablePEX' ||\n id === 'DisableUpload'\n )\n sets[id] = Boolean(!checked)\n else sets[id] = Boolean(checked)\n } else if (type === 'url') {\n sets[id] = value\n }\n setSettings(sets)\n }\n\n const { CacheSize, ReaderReadAHead, PreloadCache } = settings || {}\n\n useEffect(() => {\n if (isNaN(CacheSize) || isNaN(ReaderReadAHead) || isNaN(PreloadCache)) return\n\n setCacheSize(CacheSize)\n setCachePercentage(ReaderReadAHead)\n setPreloadCachePercentage(PreloadCache)\n }, [CacheSize, ReaderReadAHead, PreloadCache])\n\n const updateSettings = newProps => setSettings({ ...settings, ...newProps })\n const handleChange = (_, newValue) => setSelectedTab(newValue)\n const handleChangeIndex = index => setSelectedTab(index)\n\n return (\n \n \n
{t('SettingsDialog.Settings')}
\n {\n setIsProMode(checked)\n localStorage.setItem('isProMode', checked)\n if (!checked) setSelectedTab(0)\n }}\n style={{ color: 'white' }}\n />\n }\n label={t('SettingsDialog.ProMode')}\n />\n
\n\n \n \n \n\n \n
{t('SettingsDialog.Tabs.Additional')}
\n {!isProMode &&
{t('SettingsDialog.Tabs.AdditionalDisabled')}
}\n \n }\n {...a11yProps(1)}\n />\n \n
\n\n \n {settings ? (\n <>\n \n \n \n \n\n \n \n \n \n \n ) : (\n \n )}\n \n\n \n \n\n {\n setCacheSize(defaultSettings.CacheSize)\n setCachePercentage(defaultSettings.ReaderReadAHead)\n setPreloadCachePercentage(defaultSettings.PreloadCache)\n updateSettings(defaultSettings)\n }}\n color='secondary'\n variant='outlined'\n >\n {t('SettingsDialog.ResetToDefault')}\n \n\n \n \n
\n )\n}\n","import ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useState } from 'react'\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport { useTranslation } from 'react-i18next'\n\nimport SettingsDialog from './SettingsDialog'\n\nexport default function SettingsDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n \n \n \n \n \n\n {isDialogOpen && }\n
\n )\n}\n","import { Button, Dialog, DialogActions, DialogTitle } from '@material-ui/core'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DeleteIcon from '@material-ui/icons/Delete'\nimport { useState } from 'react'\nimport { torrentsHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\n\nconst fnRemoveAll = () => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'list' }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n .then(res => res.json())\n .then(json => {\n json.forEach(torr => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'rem', hash: torr.hash }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n })\n })\n}\n\nexport default function RemoveAll({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n return (\n <>\n \n \n \n \n\n \n \n\n \n {t('DeleteTorrents?')}\n \n \n\n {\n fnRemoveAll()\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const DialogWrapper = styled.div`\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n`\n\nexport const HeaderSection = styled.section`\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n`\n\nexport const ThanksSection = styled.section`\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n`\n\nexport const Section = styled.section`\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n`\n\nexport const FooterSection = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n`\n\nexport const LinkWrapper = styled.a`\n ${({ isLink }) => css`\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ${isLink\n ? css`\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n `\n : css`\n cursor: default;\n `}\n `}\n`\n\nexport const LinkIcon = styled.div`\n display: grid;\n margin-right: 10px;\n`\n","import { GitHub as GitHubIcon } from '@material-ui/icons'\n\nimport { LinkWrapper, LinkIcon } from './style'\n\nexport default function LinkComponent({ name, link }) {\n return (\n \n {link && (\n \n \n \n )}\n\n
{name}
\n
\n )\n}\n","import axios from 'axios'\nimport { useEffect, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport InfoIcon from '@material-ui/icons/Info'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useTranslation } from 'react-i18next'\nimport { useMediaQuery } from '@material-ui/core'\nimport { echoHost } from 'utils/Hosts'\n\nimport LinkComponent from './LinkComponent'\nimport { DialogWrapper, HeaderSection, ThanksSection, Section, FooterSection } from './style'\n\nexport default function AboutDialog() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n return (\n <>\n setOpen(true)}>\n \n \n \n \n \n\n setOpen(false)}\n aria-labelledby='form-dialog-title'\n fullScreen={fullScreen}\n maxWidth='xl'\n >\n \n \n
{t('About')}
\n {torrServerVersion}\n ts-icon\n
\n\n
\n {t('ThanksToEveryone')}\n\n
\n {t('Links')}\n\n
\n \n \n
\n
\n\n
\n {t('SpecialThanks')}\n\n
\n \n \n \n \n \n
\n
\n
\n\n \n \n \n
\n \n \n )\n}\n","import { useState } from 'react'\nimport { Button, Dialog, DialogActions, DialogTitle, ListItem, ListItemIcon, ListItemText } from '@material-ui/core'\nimport { PowerSettingsNew as PowerSettingsNewIcon } from '@material-ui/icons'\nimport { shutdownHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\n\nexport default function CloseServer({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n return (\n <>\n \n \n \n \n\n \n \n\n \n {t('CloseServer?')}\n \n \n\n {\n fetch(shutdownHost())\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('TurnOff')}\n \n \n \n \n )\n}\n","import Divider from '@material-ui/core/Divider'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { CreditCard as CreditCardIcon } from '@material-ui/icons'\nimport List from '@material-ui/core/List'\nimport { useTranslation } from 'react-i18next'\nimport AddDialogButton from 'components/Add'\nimport SettingsDialog from 'components/Settings'\nimport RemoveAll from 'components/RemoveAll'\nimport AboutDialog from 'components/About'\nimport CloseServer from 'components/CloseServer'\nimport { memo } from 'react'\n\nimport { AppSidebarStyle } from './style'\n\nconst Sidebar = ({ isDrawerOpen, setIsDonationDialogOpen, isOffline, isLoading }) => {\n const { t } = useTranslation()\n\n return (\n \n \n \n\n \n \n\n \n\n \n \n\n \n\n setIsDonationDialogOpen(true)}>\n \n \n \n\n \n \n\n \n \n \n )\n}\n\nexport default memo(Sidebar)\n","import CssBaseline from '@material-ui/core/CssBaseline'\nimport { createContext, useEffect, useState } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport IconButton from '@material-ui/core/IconButton'\nimport {\n Menu as MenuIcon,\n Close as CloseIcon,\n Brightness4 as Brightness4Icon,\n Brightness5 as Brightness5Icon,\n BrightnessAuto as BrightnessAutoIcon,\n} from '@material-ui/icons'\nimport { echoHost } from 'utils/Hosts'\nimport Div100vh from 'react-div-100vh'\nimport axios from 'axios'\nimport TorrentList from 'components/TorrentList'\nimport DonateSnackbar from 'components/Donate'\nimport DonateDialog from 'components/Donate/DonateDialog'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { ThemeProvider as MuiThemeProvider } from '@material-ui/core/styles'\nimport { ThemeProvider as StyledComponentsThemeProvider } from 'styled-components'\nimport { useQuery } from 'react-query'\nimport { getTorrents } from 'utils/Utils'\nimport GlobalStyle from 'style/GlobalStyle'\n\nimport { AppWrapper, AppHeader, HeaderToggle } from './style'\nimport Sidebar from './Sidebar'\nimport { lightTheme, THEME_MODES, useMaterialUITheme } from '../../style/materialUISetup'\nimport getStyledComponentsTheme from '../../style/getStyledComponentsTheme'\n\nexport const DarkModeContext = createContext()\n\nexport default function App() {\n const [isDrawerOpen, setIsDrawerOpen] = useState(false)\n const [isDonationDialogOpen, setIsDonationDialogOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n\n const [isDarkMode, currentThemeMode, updateThemeMode, muiTheme] = useMaterialUITheme()\n const [currentLang, changeLang] = useChangeLanguage()\n const [isOffline, setIsOffline] = useState(false)\n const { data: torrents, isLoading } = useQuery('torrents', getTorrents, {\n retry: 1,\n refetchInterval: 1000,\n onError: () => setIsOffline(true),\n onSuccess: () => setIsOffline(false),\n })\n\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n return (\n <>\n \n\n \n \n \n \n\n {/* Div100vh - iOS WebKit fix */}\n \n \n \n setIsDrawerOpen(!isDrawerOpen)}\n style={{ marginRight: '6px' }}\n >\n {isDrawerOpen ? : }\n \n\n \n TorrServer {torrServerVersion}\n \n\n \n {\n if (currentThemeMode === THEME_MODES.LIGHT) updateThemeMode(THEME_MODES.DARK)\n if (currentThemeMode === THEME_MODES.DARK) updateThemeMode(THEME_MODES.AUTO)\n if (currentThemeMode === THEME_MODES.AUTO) updateThemeMode(THEME_MODES.LIGHT)\n }}\n >\n {currentThemeMode === THEME_MODES.LIGHT ? (\n \n ) : currentThemeMode === THEME_MODES.DARK ? (\n \n ) : (\n \n )}\n \n\n (currentLang === 'en' ? changeLang('ru') : changeLang('en'))}>\n {currentLang === 'en' ? 'EN' : 'RU'}\n \n \n \n\n \n\n \n\n \n {isDonationDialogOpen && setIsDonationDialogOpen(false)} />}\n \n\n {!JSON.parse(localStorage.getItem('snackbarIsClosed')) && }\n \n \n \n \n \n \n )\n}\n","import { mainColors, themeColors } from './colors'\n\nexport default type => ({ ...themeColors[type], ...mainColors[type] })\n","import { StrictMode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { QueryClientProvider, QueryClient } from 'react-query'\n\nimport App from './components/App'\nimport 'i18n'\n\nconst queryClient = new QueryClient()\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'),\n)\n"],"sourceRoot":""} \ No newline at end of file diff --git a/server/web/pages/template/route.go b/server/web/pages/template/route.go index dde993b..2ef1b19 100644 --- a/server/web/pages/template/route.go +++ b/server/web/pages/template/route.go @@ -9,28 +9,8 @@ func RouteWebPages(route *gin.RouterGroup) { c.Data(200, "text/html; charset=utf-8", Indexhtml) }) - route.GET("/static/js/2.97916048.chunk.js.LICENSE.txt", func(c *gin.Context) { - c.Data(200, "text/plain; charset=utf-8", Staticjs297916048chunkjsLICENSEtxt) - }) - - - route.GET("/static/js/main.57bd6fc7.chunk.js", func(c *gin.Context) { - c.Data(200, "application/javascript", Staticjsmain57bd6fc7chunkjs) - }) - - - route.GET("/static/js/runtime-main.8bda5920.js", func(c *gin.Context) { - c.Data(200, "application/javascript", Staticjsruntimemain8bda5920js) - }) - - - route.GET("/android-chrome-192x192.png", func(c *gin.Context) { - c.Data(200, "image/png", Androidchrome192x192png) - }) - - - route.GET("/favicon-16x16.png", func(c *gin.Context) { - c.Data(200, "image/png", Favicon16x16png) + route.GET("/browserconfig.xml", func(c *gin.Context) { + c.Data(200, "application/xml", Browserconfigxml) }) @@ -39,63 +19,83 @@ func RouteWebPages(route *gin.RouterGroup) { }) - route.GET("/favicon.ico", func(c *gin.Context) { - c.Data(200, "image/x-icon", Faviconico) - }) - - - route.GET("/site.webmanifest", func(c *gin.Context) { - c.Data(200, "application/manifest+json", Sitewebmanifest) - }) - - route.GET("/index.html", func(c *gin.Context) { c.Data(200, "text/html; charset=utf-8", Indexhtml) }) - route.GET("/static/js/2.97916048.chunk.js.map", func(c *gin.Context) { - c.Data(200, "application/json", Staticjs297916048chunkjsmap) - }) - - - route.GET("/static/js/main.57bd6fc7.chunk.js.map", func(c *gin.Context) { - c.Data(200, "application/json", Staticjsmain57bd6fc7chunkjsmap) - }) - - - route.GET("/android-chrome-512x512.png", func(c *gin.Context) { - c.Data(200, "image/png", Androidchrome512x512png) - }) - - - route.GET("/apple-touch-icon.png", func(c *gin.Context) { - c.Data(200, "image/png", Appletouchiconpng) - }) - - route.GET("/mstile-150x150.png", func(c *gin.Context) { c.Data(200, "image/png", Mstile150x150png) }) - route.GET("/asset-manifest.json", func(c *gin.Context) { - c.Data(200, "application/json", Assetmanifestjson) - }) - - - route.GET("/browserconfig.xml", func(c *gin.Context) { - c.Data(200, "application/xml", Browserconfigxml) - }) - - route.GET("/static/js/2.97916048.chunk.js", func(c *gin.Context) { c.Data(200, "application/javascript", Staticjs297916048chunkjs) }) + route.GET("/static/js/main.b6b3aa76.chunk.js", func(c *gin.Context) { + c.Data(200, "application/javascript", Staticjsmainb6b3aa76chunkjs) + }) + + route.GET("/static/js/runtime-main.8bda5920.js.map", func(c *gin.Context) { c.Data(200, "application/json", Staticjsruntimemain8bda5920jsmap) }) + + route.GET("/android-chrome-512x512.png", func(c *gin.Context) { + c.Data(200, "image/png", Androidchrome512x512png) + }) + + + route.GET("/site.webmanifest", func(c *gin.Context) { + c.Data(200, "application/manifest+json", Sitewebmanifest) + }) + + + route.GET("/android-chrome-192x192.png", func(c *gin.Context) { + c.Data(200, "image/png", Androidchrome192x192png) + }) + + + route.GET("/apple-touch-icon.png", func(c *gin.Context) { + c.Data(200, "image/png", Appletouchiconpng) + }) + + + route.GET("/asset-manifest.json", func(c *gin.Context) { + c.Data(200, "application/json", Assetmanifestjson) + }) + + + route.GET("/favicon-16x16.png", func(c *gin.Context) { + c.Data(200, "image/png", Favicon16x16png) + }) + + + route.GET("/favicon.ico", func(c *gin.Context) { + c.Data(200, "image/x-icon", Faviconico) + }) + + + route.GET("/static/js/2.97916048.chunk.js.LICENSE.txt", func(c *gin.Context) { + c.Data(200, "text/plain; charset=utf-8", Staticjs297916048chunkjsLICENSEtxt) + }) + + + route.GET("/static/js/2.97916048.chunk.js.map", func(c *gin.Context) { + c.Data(200, "application/json", Staticjs297916048chunkjsmap) + }) + + + route.GET("/static/js/main.b6b3aa76.chunk.js.map", func(c *gin.Context) { + c.Data(200, "application/json", Staticjsmainb6b3aa76chunkjsmap) + }) + + + route.GET("/static/js/runtime-main.8bda5920.js", func(c *gin.Context) { + c.Data(200, "application/javascript", Staticjsruntimemain8bda5920js) + }) + } \ No newline at end of file diff --git a/web/src/components/DialogTorrentDetailsContent/TorrentCache/index.jsx b/web/src/components/DialogTorrentDetailsContent/TorrentCache/index.jsx index d958c46..99af7c9 100644 --- a/web/src/components/DialogTorrentDetailsContent/TorrentCache/index.jsx +++ b/web/src/components/DialogTorrentDetailsContent/TorrentCache/index.jsx @@ -65,7 +65,6 @@ const TorrentCache = ({ cache, isMini }) => { source.forEach(({ percentage, priority, isReader, isReaderRange }, i) => { const inProgress = percentage > 0 && percentage < 100 const isCompleted = percentage === 100 - const peacePriority = priority const currentRow = i % piecesInOneRow const currentColumn = Math.floor(i / piecesInOneRow) const fixBlurStroke = borderWidth % 2 === 0 ? 0 : 0.5 @@ -92,13 +91,13 @@ const TorrentCache = ({ cache, isMini }) => { ctx.strokeRect(0, 0, pieceSize, pieceSize) ctx.setTransform(1, 0, 0, 1, 0, 0) - if (peacePriority > 0) { + if (priority > 0) { let info = '' - if (peacePriority === 1) info = '*' - else if (peacePriority === 2) info = 'H' - else if (peacePriority === 3) info = 'R' - else if (peacePriority === 4) info = 'N' - else if (peacePriority === 5) info = 'A' + if (priority === 1) info = '*' + else if (priority === 2) info = 'H' + else if (priority === 3) info = 'R' + else if (priority === 4) info = 'N' + else if (priority === 5) info = 'A' ctx.font = isMini ? '12px monospace' : '10px monospace' const xpad = isMini ? pieceSize * 0.34 : pieceSize * 0.28 const ypad = isMini ? pieceSize * 0.69 : pieceSize * 0.78 From 00439e64cfca01bf22201bd352bcf79f5c899af8 Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Fri, 20 Aug 2021 14:19:23 +0300 Subject: [PATCH 2/4] expose playlist to main screen and move edit to poster --- web/src/components/TorrentCard/index.jsx | 18 ++++++++++++------ web/src/components/TorrentCard/style.js | 1 + web/src/locales/en/translation.json | 1 + web/src/locales/ru/translation.json | 1 + 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/web/src/components/TorrentCard/index.jsx b/web/src/components/TorrentCard/index.jsx index f533a6b..97044da 100644 --- a/web/src/components/TorrentCard/index.jsx +++ b/web/src/components/TorrentCard/index.jsx @@ -1,12 +1,12 @@ import { forwardRef, memo, useState } from 'react' import { UnfoldMore as UnfoldMoreIcon, - Edit as EditIcon, + PlayArrow as PlayArrowIcon, Close as CloseIcon, Delete as DeleteIcon, } from '@material-ui/icons' import { getPeerString, humanizeSize, humanizeSpeed, removeRedundantCharacters } from 'utils/Utils' -import { torrentsHost } from 'utils/Hosts' +import { playlistTorrHost, torrentsHost } from 'utils/Hosts' import { NoImageIcon } from 'icons' import DialogTorrentDetailsContent from 'components/DialogTorrentDetailsContent' import Dialog from '@material-ui/core/Dialog' @@ -59,10 +59,12 @@ const Torrent = ({ torrent }) => { const handleClickOpenEditDialog = () => setIsEditDialogOpen(true) const handleCloseEditDialog = () => setIsEditDialogOpen(false) + const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(parsedTitle || 'file')}.m3u?link=${hash}&m3u` + return ( <> - + {poster ? poster : } @@ -72,9 +74,13 @@ const Torrent = ({ torrent }) => { {t('Details')} - - - {t('Edit')} + { + window.open(fullPlaylistLink, '_blank') + }} + > + + {t('Playlist')} dropTorrent(torrent)}> diff --git a/web/src/components/TorrentCard/style.js b/web/src/components/TorrentCard/style.js index bbc4eb7..5c14d06 100644 --- a/web/src/components/TorrentCard/style.js +++ b/web/src/components/TorrentCard/style.js @@ -37,6 +37,7 @@ export const TorrentCardPoster = styled.div` border-radius: 5px; overflow: hidden; text-align: center; + cursor: pointer; ${({ isPoster, diff --git a/web/src/locales/en/translation.json b/web/src/locales/en/translation.json index 96cce51..9be6afc 100644 --- a/web/src/locales/en/translation.json +++ b/web/src/locales/en/translation.json @@ -71,6 +71,7 @@ "Peers": "Peers", "PiecesCount": "Pieces count", "PiecesLength": "Pieces length", + "Playlist": "Playlist", "Preload": "Preload", "ProjectSource": "Project page", "Releases": "TorrServer Releases", diff --git a/web/src/locales/ru/translation.json b/web/src/locales/ru/translation.json index 14bd608..cbcb007 100644 --- a/web/src/locales/ru/translation.json +++ b/web/src/locales/ru/translation.json @@ -71,6 +71,7 @@ "Peers": "Пиры", "PiecesCount": "Кол-во блоков", "PiecesLength": "Размер блока", + "Playlist": "Плейлист", "Preload": "Предзагр.", "ProjectSource": "Сайт проекта", "Releases": "Релизы TorrServer", From 2b768ede4a28b906abf1b157098e21106c543ff7 Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Fri, 20 Aug 2021 14:20:10 +0300 Subject: [PATCH 3/4] update web --- server/web/pages/template/html.go | 20 ++--- .../pages/template/pages/asset-manifest.json | 14 ++-- server/web/pages/template/pages/index.html | 2 +- ....97916048.chunk.js => 2.5a98d9f9.chunk.js} | 6 +- ...SE.txt => 2.5a98d9f9.chunk.js.LICENSE.txt} | 0 .../pages/static/js/2.5a98d9f9.chunk.js.map | 1 + .../pages/static/js/2.97916048.chunk.js.map | 1 - .../pages/static/js/main.823c0d3a.chunk.js | 2 + .../static/js/main.823c0d3a.chunk.js.map | 1 + .../pages/static/js/main.b6b3aa76.chunk.js | 2 - .../static/js/main.b6b3aa76.chunk.js.map | 1 - server/web/pages/template/route.go | 80 +++++++++---------- 12 files changed, 65 insertions(+), 65 deletions(-) rename server/web/pages/template/pages/static/js/{2.97916048.chunk.js => 2.5a98d9f9.chunk.js} (82%) rename server/web/pages/template/pages/static/js/{2.97916048.chunk.js.LICENSE.txt => 2.5a98d9f9.chunk.js.LICENSE.txt} (100%) create mode 100644 server/web/pages/template/pages/static/js/2.5a98d9f9.chunk.js.map delete mode 100644 server/web/pages/template/pages/static/js/2.97916048.chunk.js.map create mode 100644 server/web/pages/template/pages/static/js/main.823c0d3a.chunk.js create mode 100644 server/web/pages/template/pages/static/js/main.823c0d3a.chunk.js.map delete mode 100644 server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js delete mode 100644 server/web/pages/template/pages/static/js/main.b6b3aa76.chunk.js.map diff --git a/server/web/pages/template/html.go b/server/web/pages/template/html.go index 16e5d3d..c24bf00 100644 --- a/server/web/pages/template/html.go +++ b/server/web/pages/template/html.go @@ -49,24 +49,24 @@ var Mstile150x150png []byte var Sitewebmanifest []byte -//go:embed pages/static/js/2.97916048.chunk.js -var Staticjs297916048chunkjs []byte +//go:embed pages/static/js/2.5a98d9f9.chunk.js +var Staticjs25a98d9f9chunkjs []byte -//go:embed pages/static/js/2.97916048.chunk.js.LICENSE.txt -var Staticjs297916048chunkjsLICENSEtxt []byte +//go:embed pages/static/js/2.5a98d9f9.chunk.js.LICENSE.txt +var Staticjs25a98d9f9chunkjsLICENSEtxt []byte -//go:embed pages/static/js/2.97916048.chunk.js.map -var Staticjs297916048chunkjsmap []byte +//go:embed pages/static/js/2.5a98d9f9.chunk.js.map +var Staticjs25a98d9f9chunkjsmap []byte -//go:embed pages/static/js/main.b6b3aa76.chunk.js -var Staticjsmainb6b3aa76chunkjs []byte +//go:embed pages/static/js/main.823c0d3a.chunk.js +var Staticjsmain823c0d3achunkjs []byte -//go:embed pages/static/js/main.b6b3aa76.chunk.js.map -var Staticjsmainb6b3aa76chunkjsmap []byte +//go:embed pages/static/js/main.823c0d3a.chunk.js.map +var Staticjsmain823c0d3achunkjsmap []byte //go:embed pages/static/js/runtime-main.8bda5920.js diff --git a/server/web/pages/template/pages/asset-manifest.json b/server/web/pages/template/pages/asset-manifest.json index f976a43..c52d1b1 100644 --- a/server/web/pages/template/pages/asset-manifest.json +++ b/server/web/pages/template/pages/asset-manifest.json @@ -1,17 +1,17 @@ { "files": { - "main.js": "/static/js/main.b6b3aa76.chunk.js", - "main.js.map": "/static/js/main.b6b3aa76.chunk.js.map", + "main.js": "/static/js/main.823c0d3a.chunk.js", + "main.js.map": "/static/js/main.823c0d3a.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.8bda5920.js", "runtime-main.js.map": "/static/js/runtime-main.8bda5920.js.map", - "static/js/2.97916048.chunk.js": "/static/js/2.97916048.chunk.js", - "static/js/2.97916048.chunk.js.map": "/static/js/2.97916048.chunk.js.map", + "static/js/2.5a98d9f9.chunk.js": "/static/js/2.5a98d9f9.chunk.js", + "static/js/2.5a98d9f9.chunk.js.map": "/static/js/2.5a98d9f9.chunk.js.map", "index.html": "/index.html", - "static/js/2.97916048.chunk.js.LICENSE.txt": "/static/js/2.97916048.chunk.js.LICENSE.txt" + "static/js/2.5a98d9f9.chunk.js.LICENSE.txt": "/static/js/2.5a98d9f9.chunk.js.LICENSE.txt" }, "entrypoints": [ "static/js/runtime-main.8bda5920.js", - "static/js/2.97916048.chunk.js", - "static/js/main.b6b3aa76.chunk.js" + "static/js/2.5a98d9f9.chunk.js", + "static/js/main.823c0d3a.chunk.js" ] } \ No newline at end of file diff --git a/server/web/pages/template/pages/index.html b/server/web/pages/template/pages/index.html index 3a584b2..3a30fed 100644 --- a/server/web/pages/template/pages/index.html +++ b/server/web/pages/template/pages/index.html @@ -1 +1 @@ -TorrServer
\ No newline at end of file +TorrServer
\ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/2.97916048.chunk.js b/server/web/pages/template/pages/static/js/2.5a98d9f9.chunk.js similarity index 82% rename from server/web/pages/template/pages/static/js/2.97916048.chunk.js rename to server/web/pages/template/pages/static/js/2.5a98d9f9.chunk.js index 1286acf..08f57e4 100644 --- a/server/web/pages/template/pages/static/js/2.97916048.chunk.js +++ b/server/web/pages/template/pages/static/js/2.5a98d9f9.chunk.js @@ -1,3 +1,3 @@ -/*! For license information please see 2.97916048.chunk.js.LICENSE.txt */ -(this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(207)},function(e,t,n){"use strict";e.exports=n(229)},function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t1?t-1:0),r=1;r0?" Args: "+n.join(", "):""))}var C=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&E(16,""+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var i=r;i=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,i=r;i=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(x))return r}}(n),i=void 0!==o?o.nextSibling:null;r.setAttribute(x,"active"),r.setAttribute("data-styled-version","5.3.0");var a=D();return a&&r.setAttribute("nonce",a),n.insertBefore(r,i),r},z=function(){function e(e){var t=this.element=F(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(l+=e+",")})),r+=""+s+u+'{content:"'+l+'"}/*!sc*/\n'}}}return r}(this)},e}(),q=/(a)(d)/gi,$=function(e){return String.fromCharCode(e+(e>25?39:97))};function K(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=$(t%52)+n;return($(t%52)+n).replace(q,"$1-$2")}var Y=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},Q=function(e){return Y(5381,e)};function X(e){for(var t=0;t>>0);if(!t.hasNameForId(r,a)){var s=n(i,"."+a,void 0,r);t.insertRules(r,a,s)}o.push(a),this.staticRulesId=a}else{for(var u=this.rules.length,l=Y(this.baseHash,n.hash),c="",f=0;f>>0);if(!t.hasNameForId(r,v)){var m=n(c,"."+v,void 0,r);t.insertRules(r,v,m)}o.push(v)}}return o.join(" ")},e}(),Z=/^\s*\/\/.*$/gm,ee=[":","[",".","#"];function te(e){var t,n,r,o,i=void 0===e?g:e,a=i.options,s=void 0===a?g:a,l=i.plugins,c=void 0===l?m:l,f=new u.a(s),d=[],p=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(n,r,o,i,a,s,u,l,c,f){switch(n){case 1:if(0===c&&64===r.charCodeAt(0))return e(r+";"),"";break;case 2:if(0===l)return r+"/*|*/";break;case 3:switch(l){case 102:case 112:return e(o[0]+r),"";default:return r+(0===f?"/*|*/":"")}case-2:r.split("/*|*/}").forEach(t)}}}((function(e){d.push(e)})),h=function(e,r,i){return 0===r&&-1!==ee.indexOf(i[n.length])||i.match(o)?e:"."+t};function v(e,i,a,s){void 0===s&&(s="&");var u=e.replace(Z,""),l=i&&a?a+" "+i+" { "+u+" }":u;return t=s,n=i,r=new RegExp("\\"+n+"\\b","g"),o=new RegExp("(\\"+n+"\\b){2,}"),f(a||!i?"":i,l)}return f.use([].concat(c,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,h))},p,function(e){if(-2===e){var t=d;return d=[],t}}])),v.hash=c.length?c.reduce((function(e,t){return t.name||E(15),Y(e,t.name)}),5381).toString():"",v}var ne=i.a.createContext(),re=(ne.Consumer,i.a.createContext()),oe=(re.Consumer,new V),ie=te();function ae(){return Object(o.useContext)(ne)||oe}function se(){return Object(o.useContext)(re)||ie}function ue(e){var t=Object(o.useState)(e.stylisPlugins),n=t[0],r=t[1],a=ae(),u=Object(o.useMemo)((function(){var t=a;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=Object(o.useMemo)((function(){return te({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return Object(o.useEffect)((function(){s()(n,e.stylisPlugins)||r(e.stylisPlugins)}),[e.stylisPlugins]),i.a.createElement(ne.Provider,{value:u},i.a.createElement(re.Provider,{value:l},e.children))}var le=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=ie);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,"@keyframes"))},this.toString=function(){return E(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=ie),this.name+e.hash},e}(),ce=/([A-Z])/,fe=/([A-Z])/g,de=/^ms-/,pe=function(e){return"-"+e.toLowerCase()};function he(e){return ce.test(e)?e.replace(fe,pe).replace(de,"-ms-"):e}var ve=function(e){return null==e||!1===e||""===e};function me(e,t,n,r){if(Array.isArray(e)){for(var o,i=[],a=0,s=e.length;a1?t-1:0),r=1;r?@[\\\]^`{|}~-]+/g,we=/(^-|-$)/g;function xe(e){return e.replace(ye,"-").replace(we,"")}var Oe=function(e){return K(Q(e)>>>0)};function Se(e){return"string"==typeof e&&!0}var ke=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},Ee=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Ce(e,t,n){var r=e[n];ke(t)&&ke(r)?je(r,t):e[n]=t}function je(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(o[n]=e[n]);return o}(t,["componentId"]),i=r&&r+"-"+(Se(e)?e:xe(y(e)));return Te(e,p({},o,{attrs:O,componentId:i}),n)},Object.defineProperty(k,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?je({},e.defaultProps,t):t}}),k.toString=function(){return"."+k.styledComponentId},a&&d()(k,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),k}var Ae=function(e){return function e(t,n,o){if(void 0===o&&(o=g),!Object(r.isValidElementType)(n))return E(1,String(n));var i=function(){return t(n,o,ge.apply(void 0,arguments))};return i.withConfig=function(r){return e(t,n,p({},o,{},r))},i.attrs=function(r){return e(t,n,p({},o,{attrs:Array.prototype.concat(o.attrs,r).filter(Boolean)}))},i}(Te,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Ae[e]=Ae(e)}));var Le=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=X(e),V.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(me(this.rules,t,n,r).join(""),""),i=this.componentId+e;n.insertRules(i,i,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&V.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function Me(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r"+t+""},this.getStyleTags=function(){return e.sealed?E(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return E(2);var n=((t={})[x]="",t["data-styled-version"]="5.3.0",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),r=D();return r&&(n.nonce=r),[i.a.createElement("style",p({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new V({isServer:!0}),this.sealed=!1}var t=e.prototype;t.collectStyles=function(e){return this.sealed?E(2):i.a.createElement(ue,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return E(3)}}();t.d=Ae}).call(this,n(51))},function(e,t,n){"use strict";function r(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(44);function o(e,t){if(null==e)return{};var n,o,i=Object(r.a)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t,n){"use strict";function r(e){var t,n,o="";if("string"===typeof e||"number"===typeof e)o+=e;else if("object"===typeof e)if(Array.isArray(e))for(t=0;t1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var i=t.defaultTheme,s=t.withTheme,d=void 0!==s&&s,p=t.name,h=Object(o.a)(t,["defaultTheme","withTheme","name"]);var v=p,m=Object(l.a)(e,Object(r.a)({defaultTheme:i,Component:n,name:p||n.displayName,classNamePrefix:v},h)),g=a.a.forwardRef((function(e,t){e.classes;var s,u=e.innerRef,l=Object(o.a)(e,["classes","innerRef"]),h=m(Object(r.a)({},n.defaultProps,e)),v=l;return("string"===typeof p||d)&&(s=Object(f.a)()||i,p&&(v=Object(c.a)({theme:s,name:p,props:l})),d&&!v.theme&&(v.theme=s)),a.a.createElement(n,Object(r.a)({ref:u||t,classes:h},v))}));return u()(g,n),g}},p=n(71);t.a=function(e,t){return d(e,Object(r.a)({defaultTheme:p.a},t))}},function(e,t,n){"use strict";n.d(t,"e",(function(){return o})),n.d(t,"i",(function(){return i})),n.d(t,"b",(function(){return a})),n.d(t,"f",(function(){return s})),n.d(t,"a",(function(){return u})),n.d(t,"q",(function(){return l})),n.d(t,"k",(function(){return c})),n.d(t,"j",(function(){return f})),n.d(t,"h",(function(){return d})),n.d(t,"g",(function(){return p})),n.d(t,"d",(function(){return h})),n.d(t,"c",(function(){return v})),n.d(t,"l",(function(){return m})),n.d(t,"m",(function(){return b})),n.d(t,"o",(function(){return y})),n.d(t,"p",(function(){return S})),n.d(t,"n",(function(){return k}));var r=n(2),o="undefined"===typeof window;function i(){}function a(e,t){return"function"===typeof e?e(t):e}function s(e){return"number"===typeof e&&e>=0&&e!==1/0}function u(e){return Array.isArray(e)?e:[e]}function l(e,t){return Math.max(e+(t||0)-Date.now(),0)}function c(e,t,n){return O(e)?"function"===typeof t?Object(r.a)({},n,{queryKey:e,queryFn:t}):Object(r.a)({},t,{queryKey:e}):e}function f(e,t,n){return O(e)?[Object(r.a)({},t,{queryKey:e}),n]:[e||{},t]}function d(e,t){var n,r=e.active,o=e.exact,i=e.fetching,a=e.inactive,s=e.predicate,u=e.queryKey,l=e.stale;if(O(u))if(o){if(t.queryHash!==h(u,t.options))return!1}else if(!m(t.queryKey,u))return!1;return!1===a||r&&!a?n=!0:(!1===r||a&&!r)&&(n=!1),("boolean"!==typeof n||t.isActive()===n)&&(("boolean"!==typeof l||t.isStale()===l)&&(("boolean"!==typeof i||t.isFetching()===i)&&!(s&&!s(t))))}function p(e,t){var n=e.exact,r=e.fetching,o=e.predicate,i=e.mutationKey;if(O(i)){if(!t.options.mutationKey)return!1;if(n){if(v(t.options.mutationKey)!==v(i))return!1}else if(!m(t.options.mutationKey,i))return!1}return("boolean"!==typeof r||"loading"===t.state.status===r)&&!(o&&!o(t))}function h(e,t){return((null==t?void 0:t.queryKeyHashFn)||v)(e)}function v(e){var t,n=u(e);return t=n,JSON.stringify(t,(function(e,t){return w(t)?Object.keys(t).sort().reduce((function(e,n){return e[n]=t[n],e}),{}):t}))}function m(e,t){return g(u(e),u(t))}function g(e,t){return e===t||typeof e===typeof t&&(!(!e||!t||"object"!==typeof e||"object"!==typeof t)&&!Object.keys(t).some((function(n){return!g(e[n],t[n])})))}function b(e,t){if(e===t)return e;var n=Array.isArray(e)&&Array.isArray(t);if(n||w(e)&&w(t)){for(var r=n?e.length:Object.keys(e).length,o=n?t:Object.keys(t),i=o.length,a=n?[]:{},s=0,u=0;u1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),n)}function i(e){if(e.type)return e;if("#"===e.charAt(0))return i(function(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla"].indexOf(n))throw new Error(Object(r.a)(3,e));var o=e.substring(t+1,e.length-1).split(",");return{type:n,values:o=o.map((function(e){return parseFloat(e)}))}}function a(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")?n=n.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(t,"(").concat(n.join(", "),")")}function s(e,t){var n=u(e),r=u(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function u(e){var t="hsl"===(e=i(e)).type?i(function(e){var t=(e=i(e)).values,n=t[0],r=t[1]/100,o=t[2]/100,s=r*Math.min(o,1-o),u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return o-s*Math.max(Math.min(t-3,9-t,1),-1)},l="rgb",c=[Math.round(255*u(0)),Math.round(255*u(8)),Math.round(255*u(4))];return"hsla"===e.type&&(l+="a",c.push(t[3])),a({type:l,values:c})}(e)).values:e.values;return t=t.map((function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return u(e)>.5?f(e,t):d(e,t)}function c(e,t){return e=i(e),t=o(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),e.values[3]=t,a(e)}function f(e,t){if(e=i(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return a(e)}function d(e,t){if(e=i(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return a(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var r=n(2),o=n(0),i=n.n(o),a=n(5),s=(n(7),n(6)),u=n(8),l=n(11),c=o.forwardRef((function(e,t){var n=e.children,i=e.classes,u=e.className,c=e.color,f=void 0===c?"inherit":c,d=e.component,p=void 0===d?"svg":d,h=e.fontSize,v=void 0===h?"default":h,m=e.htmlColor,g=e.titleAccess,b=e.viewBox,y=void 0===b?"0 0 24 24":b,w=Object(a.a)(e,["children","classes","className","color","component","fontSize","htmlColor","titleAccess","viewBox"]);return o.createElement(p,Object(r.a)({className:Object(s.a)(i.root,u,"inherit"!==f&&i["color".concat(Object(l.a)(f))],"default"!==v&&i["fontSize".concat(Object(l.a)(v))]),focusable:"false",viewBox:y,color:m,"aria-hidden":!g||void 0,role:g?"img":void 0,ref:t},w),n,g?o.createElement("title",null,g):null)}));c.muiName="SvgIcon";var f=Object(u.a)((function(e){return{root:{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:"currentColor",flexShrink:0,fontSize:e.typography.pxToRem(24),transition:e.transitions.create("fill",{duration:e.transitions.duration.shorter})},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorAction:{color:e.palette.action.active},colorError:{color:e.palette.error.main},colorDisabled:{color:e.palette.action.disabled},fontSizeInherit:{fontSize:"inherit"},fontSizeSmall:{fontSize:e.typography.pxToRem(20)},fontSizeLarge:{fontSize:e.typography.pxToRem(35)}}}),{name:"MuiSvgIcon"})(c);function d(e,t){var n=function(t,n){return i.a.createElement(f,Object(r.a)({ref:n},t),e)};return n.muiName=f.muiName,i.a.memo(i.a.forwardRef(n))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),o="undefined"!==typeof window?r.useLayoutEffect:r.useEffect;function i(e){var t=r.useRef(e);return o((function(){t.current=e})),r.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(208)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(9),o=new(function(){function e(){this.queue=[],this.transactions=0,this.notifyFn=function(e){e()},this.batchNotifyFn=function(e){e()}}var t=e.prototype;return t.batch=function(e){this.transactions++;var t=e();return this.transactions--,this.transactions||this.flush(),t},t.schedule=function(e){var t=this;this.transactions?this.queue.push(e):Object(r.n)((function(){t.notifyFn(e)}))},t.batchCalls=function(e){var t=this;return function(){for(var n=arguments.length,r=new Array(n),o=0;o=0&&o<1?(s=i,u=a):o>=1&&o<2?(s=a,u=i):o>=2&&o<3?(u=i,l=a):o>=3&&o<4?(u=a,l=i):o>=4&&o<5?(s=a,l=i):o>=5&&o<6&&(s=i,l=a);var c=n-i/2;return r(s+c,u+c,l+c)}var h={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var v=/^#[a-fA-F0-9]{6}$/,m=/^#[a-fA-F0-9]{8}$/,g=/^#[a-fA-F0-9]{3}$/,b=/^#[a-fA-F0-9]{4}$/,y=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,w=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,x=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,O=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function S(e){if("string"!==typeof e)throw new c(3);var t=function(e){if("string"!==typeof e)return e;var t=e.toLowerCase();return h[t]?"#"+h[t]:e}(e);if(t.match(v))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(m)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(g))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(b)){var r=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:r}}var o=y.exec(t);if(o)return{red:parseInt(""+o[1],10),green:parseInt(""+o[2],10),blue:parseInt(""+o[3],10)};var i=w.exec(t.substring(0,50));if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])};var a=x.exec(t);if(a){var s="rgb("+p(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",u=y.exec(s);if(!u)throw new c(4,t,s);return{red:parseInt(""+u[1],10),green:parseInt(""+u[2],10),blue:parseInt(""+u[3],10)}}var l=O.exec(t.substring(0,50));if(l){var f="rgb("+p(parseInt(""+l[1],10),parseInt(""+l[2],10)/100,parseInt(""+l[3],10)/100)+")",d=y.exec(f);if(!d)throw new c(4,t,f);return{red:parseInt(""+d[1],10),green:parseInt(""+d[2],10),blue:parseInt(""+d[3],10),alpha:parseFloat(""+l[4])}}throw new c(5)}var k=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function E(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function C(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return k("#"+E(e)+E(t)+E(n));if("object"===typeof e&&void 0===t&&void 0===n)return k("#"+E(e.red)+E(e.green)+E(e.blue));throw new c(6)}function j(e,t,n,r){if("string"===typeof e&&"number"===typeof t){var o=S(e);return"rgba("+o.red+","+o.green+","+o.blue+","+t+")"}if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?C(e,t,n):"rgba("+e+","+t+","+n+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?C(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new c(7)}},,,function(e,t,n){"use strict";function r(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,s=void 0===n?i.standard:n,u=t.easing,l=void 0===u?o.easeInOut:u,c=t.delay,f=void 0===c?0:c;Object(r.a)(t,["duration","easing","delay"]);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"===typeof s?s:a(s)," ").concat(l," ").concat("string"===typeof f?f:a(f))})).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(136),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return"undefined"===typeof e}function s(e){return null!==e&&"object"===typeof e}function u(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:166;function r(){for(var r=arguments.length,o=new Array(r),i=0;i=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function h(e,t){if(u.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return U(e).length;t=(""+t).toLowerCase(),r=!0}}function v(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return C(this,t,n);case"ascii":return _(this,t,n);case"latin1":case"binary":return R(this,t,n);case"base64":return E(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,o){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"===typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"===typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var c=-1;for(i=n;is&&(n=s-u),i=n;i>=0;i--){for(var f=!0,d=0;do&&(r=o):r=o;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function E(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function C(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:l>223?3:l>191?2:1;if(o+f<=n)switch(f){case 1:l<128&&(c=l);break;case 2:128===(192&(i=e[o+1]))&&(u=(31&l)<<6|63&i)>127&&(c=u);break;case 3:i=e[o+1],a=e[o+2],128===(192&i)&&128===(192&a)&&(u=(15&l)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128===(192&i)&&128===(192&a)&&128===(192&s)&&(u=(15&l)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,f=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),o+=f}return function(e){var t=e.length;if(t<=j)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},u.prototype.compare=function(e,t,n,r,o){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),l=this.slice(r,o),c=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return O(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var j=4096;function _(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function M(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function N(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function I(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function D(e,t,n,r,i){return i||I(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,i){return i||I(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},u.prototype.readUInt8=function(e,t){return t||A(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||A(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||A(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||A(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||A(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return t||A(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||A(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||A(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||A(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||A(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||A(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||A(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||A(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||A(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return D(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return D(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(z,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(31))},function(e,t,n){"use strict";function r(e){var t=e.props,n=e.states,r=e.muiFormControl;return n.reduce((function(e,n){return e[n]=t[n],r&&"undefined"===typeof t[n]&&(e[n]=r[n]),e}),{})}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(177);var o=n(103),i=n(178);function a(e,t){return Object(r.a)(e)||function(e,t){var n=e&&("undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(u){s=!0,o=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}}(e,t)||Object(o.a)(e,t)||Object(i.a)()}},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"a",(function(){return o}));var r=function(e){return e.scrollTop};function o(e,t){var n=e.timeout,r=e.style,o=void 0===r?{}:r;return{duration:o.transitionDuration||"number"===typeof n?n:n[t.mode]||0,delay:o.transitionDelay}}},function(e,t,n){var r=n(147),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){"function"===typeof e?e(t):e&&(e.current=t)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(){for(var e=arguments.length,t=new Array(e),n=0;n0},t.onSubscribe=function(){},t.onUnsubscribe=function(){},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(82);var o=n(179),i=n(103);function a(e){return function(e){if(Array.isArray(e))return Object(r.a)(e)}(e)||Object(o.a)(e)||Object(i.a)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(e,t,n){"use strict";n.d(t,"b",(function(){return i}));var r=n(0),o=r.createContext();function i(){return r.useContext(o)}t.a=o},function(e,t,n){"use strict";var r=n(0),o=r.createContext({});t.a=o},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"===typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"===typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,l=[],c=!1,f=-1;function d(){c&&u&&(c=!1,u.length?l=u.concat(l):f=-1,l.length&&p())}function p(){if(!c){var e=s(d);c=!0;for(var t=l.length;t;){for(u=l,l=[];++f1)for(var n=1;n1&&void 0!==arguments[1]&&arguments[1];return e&&(r(e.value)&&""!==e.value||t&&r(e.defaultValue)&&""!==e.defaultValue)}function i(e){return e.startAdornment}n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return i}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(9),o=console||{error:r.i,warn:r.i,log:r.i};function i(){return o}},function(e,t,n){"use strict";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(2),o=n(5),i=n(0),a=(n(7),n(6)),s=n(8),u=n(11),l={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},c=i.forwardRef((function(e,t){var n=e.align,s=void 0===n?"inherit":n,c=e.classes,f=e.className,d=e.color,p=void 0===d?"initial":d,h=e.component,v=e.display,m=void 0===v?"initial":v,g=e.gutterBottom,b=void 0!==g&&g,y=e.noWrap,w=void 0!==y&&y,x=e.paragraph,O=void 0!==x&&x,S=e.variant,k=void 0===S?"body1":S,E=e.variantMapping,C=void 0===E?l:E,j=Object(o.a)(e,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","variant","variantMapping"]),_=h||(O?"p":C[k]||l[k])||"span";return i.createElement(_,Object(r.a)({className:Object(a.a)(c.root,f,"inherit"!==k&&c[k],"initial"!==p&&c["color".concat(Object(u.a)(p))],w&&c.noWrap,b&&c.gutterBottom,O&&c.paragraph,"inherit"!==s&&c["align".concat(Object(u.a)(s))],"initial"!==m&&c["display".concat(Object(u.a)(m))]),ref:t},j))}));t.a=Object(s.a)((function(e){return{root:{margin:0},body2:e.typography.body2,body1:e.typography.body1,caption:e.typography.caption,button:e.typography.button,h1:e.typography.h1,h2:e.typography.h2,h3:e.typography.h3,h4:e.typography.h4,h5:e.typography.h5,h6:e.typography.h6,subtitle1:e.typography.subtitle1,subtitle2:e.typography.subtitle2,overline:e.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorTextPrimary:{color:e.palette.text.primary},colorTextSecondary:{color:e.palette.text.secondary},colorError:{color:e.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}}),{name:"MuiTypography"})(c)},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(125).default;function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}e.exports=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var u=a?Object.getOwnPropertyDescriptor(e,s):null;u&&(u.get||u.set)?Object.defineProperty(i,s,u):i[s]=e[s]}return i.default=e,n&&n.set(e,i),i},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(383)},function(e,t,n){var r=n(256),o=n(261);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){"use strict";var r=n(97),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=Object.create(n(80));i.inherits=n(60);var a=n(159),s=n(163);i.inherits(f,a);for(var u=o(s.prototype),l=0;le.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};p=f(f({},p),e)}(e.options.react),function(e){d=e}(e)}}},,,,,,function(e,t,n){var r=n(246),o=n(247),i=n(248),a=n(249),s=n(250);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0?e["announce-list"].forEach((function(e){e.forEach((function(e){n.announce.push(e.toString())}))})):e.announce&&n.announce.push(e.announce.toString());t.isBuffer(e["url-list"])&&(e["url-list"]=e["url-list"].length>0?[e["url-list"]]:[]);n.urlList=(e["url-list"]||[]).map((function(e){return e.toString()})),n.announce=Array.from(new Set(n.announce)),n.urlList=Array.from(new Set(n.urlList));var o=e.info.files||[e.info];n.files=o.map((function(e,t){var r=[].concat(n.name,e["path.utf-8"]||e.path||[]).map((function(e){return e.toString()}));return{path:u.join.apply(null,[u.sep].concat(r)).slice(1),name:r[r.length-1],length:e.length,offset:o.slice(0,t).reduce(d,0)}})),n.length=o.reduce(d,0);var i=n.files[n.files.length-1];return n.pieceLength=e.info["piece length"],n.lastPieceLength=(i.offset+i.length)%n.pieceLength||n.pieceLength,n.pieces=function(e){for(var t=[],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=t.pulsate,o=void 0!==r&&r,i=t.center,s=void 0===i?a||t.pulsate:i,u=t.fakeElement,l=void 0!==u&&u;if("mousedown"===e.type&&g.current)g.current=!1;else{"touchstart"===e.type&&(g.current=!0);var c,f,d,p=l?null:w.current,h=p?p.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(s||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(h.width/2),f=Math.round(h.height/2);else{var v=e.touches?e.touches[0]:e,m=v.clientX,O=v.clientY;c=Math.round(m-h.left),f=Math.round(O-h.top)}if(s)(d=Math.sqrt((2*Math.pow(h.width,2)+Math.pow(h.height,2))/3))%2===0&&(d+=1);else{var S=2*Math.max(Math.abs((p?p.clientWidth:0)-c),c)+2,k=2*Math.max(Math.abs((p?p.clientHeight:0)-f),f)+2;d=Math.sqrt(Math.pow(S,2)+Math.pow(k,2))}e.touches?null===y.current&&(y.current=function(){x({pulsate:o,rippleX:c,rippleY:f,rippleSize:d,cb:n})},b.current=setTimeout((function(){y.current&&(y.current(),y.current=null)}),80)):x({pulsate:o,rippleX:c,rippleY:f,rippleSize:d,cb:n})}}),[a,x]),k=i.useCallback((function(){O({},{pulsate:!0})}),[O]),C=i.useCallback((function(e,t){if(clearTimeout(b.current),"touchend"===e.type&&y.current)return e.persist(),y.current(),y.current=null,void(b.current=setTimeout((function(){C(e,t)})));y.current=null,h((function(e){return e.length>0?e.slice(1):e})),m.current=t}),[]);return i.useImperativeHandle(t,(function(){return{pulsate:k,start:O,stop:C}}),[k,O,C]),i.createElement("span",Object(r.a)({className:Object(u.a)(s.root,l),ref:w},c),i.createElement(S,{component:null,exit:!0},d))})),j=Object(f.a)((function(e){return{root:{overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"},ripple:{opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"$enter ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},ripplePulsate:{animationDuration:"".concat(e.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"$exit ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},childPulsate:{position:"absolute",left:0,top:0,animation:"$pulsate 2500ms ".concat(e.transitions.easing.easeInOut," 200ms infinite")},"@keyframes enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}}),{flip:!1,name:"MuiTouchRipple"})(i.memo(C)),_=i.forwardRef((function(e,t){var n=e.action,a=e.buttonRef,f=e.centerRipple,p=void 0!==f&&f,h=e.children,v=e.classes,m=e.className,g=e.component,b=void 0===g?"button":g,y=e.disabled,w=void 0!==y&&y,x=e.disableRipple,O=void 0!==x&&x,S=e.disableTouchRipple,k=void 0!==S&&S,E=e.focusRipple,C=void 0!==E&&E,_=e.focusVisibleClassName,R=e.onBlur,P=e.onClick,T=e.onFocus,A=e.onFocusVisible,L=e.onKeyDown,M=e.onKeyUp,N=e.onMouseDown,I=e.onMouseLeave,D=e.onMouseUp,F=e.onTouchEnd,z=e.onTouchMove,B=e.onTouchStart,U=e.onDragLeave,H=e.tabIndex,W=void 0===H?0:H,V=e.TouchRippleProps,q=e.type,$=void 0===q?"button":q,K=Object(o.a)(e,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","tabIndex","TouchRippleProps","type"]),Y=i.useRef(null);var Q=i.useRef(null),X=i.useState(!1),G=X[0],J=X[1];w&&G&&J(!1);var Z=Object(d.a)(),ee=Z.isFocusVisible,te=Z.onBlurVisible,ne=Z.ref;function re(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;return Object(c.a)((function(r){return t&&t(r),!n&&Q.current&&Q.current[e](r),!0}))}i.useImperativeHandle(n,(function(){return{focusVisible:function(){J(!0),Y.current.focus()}}}),[]),i.useEffect((function(){G&&C&&!O&&Q.current.pulsate()}),[O,C,G]);var oe=re("start",N),ie=re("stop",U),ae=re("stop",D),se=re("stop",(function(e){G&&e.preventDefault(),I&&I(e)})),ue=re("start",B),le=re("stop",F),ce=re("stop",z),fe=re("stop",(function(e){G&&(te(e),J(!1)),R&&R(e)}),!1),de=Object(c.a)((function(e){Y.current||(Y.current=e.currentTarget),ee(e)&&(J(!0),A&&A(e)),T&&T(e)})),pe=function(){var e=s.findDOMNode(Y.current);return b&&"button"!==b&&!("A"===e.tagName&&e.href)},he=i.useRef(!1),ve=Object(c.a)((function(e){C&&!he.current&&G&&Q.current&&" "===e.key&&(he.current=!0,e.persist(),Q.current.stop(e,(function(){Q.current.start(e)}))),e.target===e.currentTarget&&pe()&&" "===e.key&&e.preventDefault(),L&&L(e),e.target===e.currentTarget&&pe()&&"Enter"===e.key&&!w&&(e.preventDefault(),P&&P(e))})),me=Object(c.a)((function(e){C&&" "===e.key&&Q.current&&G&&!e.defaultPrevented&&(he.current=!1,e.persist(),Q.current.stop(e,(function(){Q.current.pulsate(e)}))),M&&M(e),P&&e.target===e.currentTarget&&pe()&&" "===e.key&&!e.defaultPrevented&&P(e)})),ge=b;"button"===ge&&K.href&&(ge="a");var be={};"button"===ge?(be.type=$,be.disabled=w):("a"===ge&&K.href||(be.role="button"),be["aria-disabled"]=w);var ye=Object(l.a)(a,t),we=Object(l.a)(ne,Y),xe=Object(l.a)(ye,we),Oe=i.useState(!1),Se=Oe[0],ke=Oe[1];i.useEffect((function(){ke(!0)}),[]);var Ee=Se&&!O&&!w;return i.createElement(ge,Object(r.a)({className:Object(u.a)(v.root,m,G&&[v.focusVisible,_],w&&v.disabled),onBlur:fe,onClick:P,onFocus:de,onKeyDown:ve,onKeyUp:me,onMouseDown:oe,onMouseLeave:se,onMouseUp:ae,onDragLeave:ie,onTouchEnd:le,onTouchMove:ce,onTouchStart:ue,ref:xe,tabIndex:w?-1:W},be,K),h,Ee?i.createElement(j,Object(r.a)({ref:Q,center:p},V)):null)}));t.a=Object(f.a)({root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}},disabled:{},focusVisible:{}},{name:"MuiButtonBase"})(_)},,,,function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,s,u=a(e),l=1;l",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),f=["%","/","?",";","#"].concat(c),d=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(166);function y(e,t,n){if(e&&o.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=-1!==i&&i127?L+="x":L+=A[M];if(!L.match(p)){var I=P.slice(0,j),D=P.slice(j+1),F=A.match(h);F&&(I.push(F[1]),D.unshift(F[2])),D.length&&(y="/"+D.join(".")+y),this.hostname=I.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=r.toASCII(this.hostname));var z=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+z,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!v[O])for(j=0,T=c.length;j0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!S.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var E=S.slice(-1)[0],C=(n.host||e.host||S.length>1)&&("."===E||".."===E)||""===E,j=0,_=S.length;_>=0;_--)"."===(E=S[_])?S.splice(_,1):".."===E?(S.splice(_,1),j++):j&&(S.splice(_,1),j--);if(!x&&!O)for(;j--;j)S.unshift("..");!x||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),C&&"/"!==S.join("/").substr(-1)&&S.push("");var R,P=""===S[0]||S[0]&&"/"===S[0].charAt(0);k&&(n.hostname=n.host=P?"":S.length?S.shift():"",(R=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift()));return(x=x||n.host&&S.length)&&!P&&S.unshift(""),S.length?n.pathname=S.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){function n(t){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(38),o=n(14);function i(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};Object(a.a)(this,e),this.init(t,n)}return Object(s.a)(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||v,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),r=1;r-1?e.replace(/###/g,"."):e}function o(){return!e||"string"===typeof e}for(var i="string"!==typeof t?[].concat(t):t.split(".");i.length>1;){if(o())return{};var a=r(i.shift());!e[a]&&n&&(e[a]=new n),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return o()?{}:{obj:e,k:r(i.shift())}}function O(e,t,n){var r=x(e,t,Object);r.obj[r.k]=n}function S(e,t){var n=x(e,t),r=n.obj,o=n.k;if(r)return r[o]}function k(e,t,n){var r=S(e,n);return void 0!==r?r:S(t,n)}function E(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"===typeof e[r]||e[r]instanceof String||"string"===typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):E(e[r],t[r],n):e[r]=t[r]);return e}function C(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var j={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function _(e){return"string"===typeof e?e.replace(/[&<>"'\/]/g,(function(e){return j[e]})):e}var R="undefined"!==typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1;function P(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),o=e,i=0;ii+a;)a++,u=o[s=r.slice(i,i+a).join(n)];if(void 0===u)return;if("string"===typeof u)return u;if(s&&"string"===typeof u[s])return u[s];var l=r.slice(i+a).join(n);return l?P(u,l,n):void 0}o=o[r[i]]}return o}}var T=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return Object(a.a)(this,t),n=f(this,Object(d.a)(t).call(this)),R&&g.call(Object(c.a)(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),void 0===n.options.ignoreJSONStructure&&(n.options.ignoreJSONStructure=!0),n}return h(t,e),Object(s.a)(t,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure,a=[e,t];n&&"string"!==typeof n&&(a=a.concat(n)),n&&"string"===typeof n&&(a=a.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(a=e.split("."));var s=S(this.data,a);return s||!i||"string"!==typeof n?s:P(this.data&&this.data[e]&&this.data[e][t],n,o)}},{key:"addResource",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},i=this.options.keySeparator;void 0===i&&(i=".");var a=[e,t];n&&(a=a.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(r=t,t=(a=e.split("."))[1]),this.addNamespaces(t),O(this.data,a,r),o.silent||this.emit("added",e,t,n,r)}},{key:"addResources",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)"string"!==typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},s=[e,t];e.indexOf(".")>-1&&(r=n,n=t,t=(s=e.split("."))[1]),this.addNamespaces(t);var u=S(this.data,s)||{};r?E(u,n,o):u=i({},u,n),O(this.data,s,u),a.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?i({},{},this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"toJSON",value:function(){return this.data}}]),t}(g),A={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,r,o){var i=this;return e.forEach((function(e){i.processors[e]&&(t=i.processors[e].process(t,n,r,o))})),t}},L={},M=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(a.a)(this,t),n=f(this,Object(d.a)(t).call(this)),R&&g.call(Object(c.a)(n)),w(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,Object(c.a)(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=m.create("translator"),n}return h(t,e),Object(s.a)(t,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=t.ns||this.options.defaultNS;if(n&&e.indexOf(n)>-1){var i=e.match(this.interpolator.nestingRegexp);if(i&&i.length>0)return{key:e,namespaces:o};var a=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),e=a.join(r)}return"string"===typeof o&&(o=[o]),{key:e,namespaces:o}}},{key:"translate",value:function(e,n,o){var a=this;if("object"!==Object(r.a)(n)&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),n||(n={}),void 0===e||null===e)return"";Array.isArray(e)||(e=[String(e)]);var s=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,u=this.extractFromKey(e[e.length-1],n),l=u.key,c=u.namespaces,f=c[c.length-1],d=n.lng||this.language,p=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var h=n.nsSeparator||this.options.nsSeparator;return f+h+l}return l}var v=this.resolve(e,n),m=v&&v.res,g=v&&v.usedKey||l,b=v&&v.exactUsedKey||l,y=Object.prototype.toString.apply(m),w=["[object Number]","[object Function]","[object RegExp]"],x=void 0!==n.joinArrays?n.joinArrays:this.options.joinArrays,O=!this.i18nFormat||this.i18nFormat.handleAsObject,S="string"!==typeof m&&"boolean"!==typeof m&&"number"!==typeof m;if(O&&m&&S&&w.indexOf(y)<0&&("string"!==typeof x||"[object Array]"!==y)){if(!n.returnObjects&&!this.options.returnObjects)return this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,m,i({},n,{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");if(s){var k="[object Array]"===y,E=k?[]:{},C=k?b:g;for(var j in m)if(Object.prototype.hasOwnProperty.call(m,j)){var _="".concat(C).concat(s).concat(j);E[j]=this.translate(_,i({},n,{joinArrays:!1,ns:c})),E[j]===_&&(E[j]=m[j])}m=E}}else if(O&&"string"===typeof x&&"[object Array]"===y)(m=m.join(x))&&(m=this.extendTranslation(m,e,n,o));else{var R=!1,P=!1,T=void 0!==n.count&&"string"!==typeof n.count,A=t.hasDefaultValue(n),L=T?this.pluralResolver.getSuffix(d,n.count):"",M=n["defaultValue".concat(L)]||n.defaultValue;!this.isValidLookup(m)&&A&&(R=!0,m=M),this.isValidLookup(m)||(P=!0,m=l);var N=A&&M!==m&&this.options.updateMissing;if(P||R||N){if(this.logger.log(N?"updateKey":"missingKey",d,f,l,N?M:m),s){var I=this.resolve(l,i({},n,{keySeparator:!1}));I&&I.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var D=[],F=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if("fallback"===this.options.saveMissingTo&&F&&F[0])for(var z=0;z1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e&&(e=[e]),e.forEach((function(e){if(!a.isValidLookup(t)){var u=a.extractFromKey(e,s),l=u.key;n=l;var c=u.namespaces;a.options.fallbackNS&&(c=c.concat(a.options.fallbackNS));var f=void 0!==s.count&&"string"!==typeof s.count,d=void 0!==s.context&&"string"===typeof s.context&&""!==s.context,p=s.lngs?s.lngs:a.languageUtils.toResolveHierarchy(s.lng||a.language,s.fallbackLng);c.forEach((function(e){a.isValidLookup(t)||(i=e,!L["".concat(p[0],"-").concat(e)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(i)&&(L["".concat(p[0],"-").concat(e)]=!0,a.logger.warn('key "'.concat(n,'" for languages "').concat(p.join(", "),'" won\'t get resolved as namespace "').concat(i,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),p.forEach((function(n){if(!a.isValidLookup(t)){o=n;var i,u,c=l,p=[c];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(p,l,n,e,s);else f&&(i=a.pluralResolver.getSuffix(n,s.count)),f&&d&&p.push(c+i),d&&p.push(c+="".concat(a.options.contextSeparator).concat(s.context)),f&&p.push(c+=i);for(;u=p.pop();)a.isValidLookup(t)||(r=u,t=a.getResource(n,e,u,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:r,usedLng:o,usedNS:i}}},{key:"isValidLookup",value:function(e){return void 0!==e&&!(!this.options.returnNull&&null===e)&&!(!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&void 0!==e[n])return!0;return!1}}]),t}(g);function N(e){return e.charAt(0).toUpperCase()+e.slice(1)}var I=function(){function e(t){Object(a.a)(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=m.create("languageUtils")}return Object(s.a)(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"===typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=N(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=N(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=N(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isWhitelisted",value:function(e){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(e)}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var r=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(r)||(t=r)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var r=n.getLanguagePartFromCode(e);if(n.isSupportedCode(r))return t=r;t=n.options.supportedLngs.find((function(e){if(0===e.indexOf(r))return e}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"===typeof e&&(e=e(t)),"string"===typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,r=this.getFallbackCodes(t||this.options.fallbackLng||[],e),o=[],i=function(e){e&&(n.isSupportedCode(e)?o.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"===typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(e))):"string"===typeof e&&i(this.formatLanguageCode(e)),r.forEach((function(e){o.indexOf(e)<0&&i(n.formatLanguageCode(e))})),o}}]),e}(),D=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],F={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}};function z(){var e={};return D.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:F[t.fc]}}))})),e}var B=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(a.a)(this,e),this.languageUtils=t,this.options=n,this.logger=m.create("pluralResolver"),this.rules=z()}return Object(s.a)(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=this.getRule(e);return t&&t.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){return this.getSuffixes(e).map((function(e){return t+e}))}},{key:"getSuffixes",value:function(e){var t=this,n=this.getRule(e);return n?n.numbers.map((function(n){return t.getSuffix(e,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=this,r=this.getRule(e);if(r){var o=r.noAbs?r.plurals(t):r.plurals(Math.abs(t)),i=r.numbers[o];this.options.simplifyPluralSuffix&&2===r.numbers.length&&1===r.numbers[0]&&(2===i?i="plural":1===i&&(i=""));var a=function(){return n.options.prepend&&i.toString()?n.options.prepend+i.toString():i.toString()};return"v1"===this.options.compatibilityJSON?1===i?"":"number"===typeof i?"_plural_".concat(i.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===r.numbers.length&&1===r.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),U=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(a.a)(this,e),this.logger=m.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return Object(s.a)(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:_,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?C(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?C(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?C(t.nestingPrefix):t.nestingPrefixEscaped||C("$t("),this.nestingSuffix=t.nestingSuffix?C(t.nestingSuffix):t.nestingSuffixEscaped||C(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,r){var o,a,s,u=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var f=function(e){if(e.indexOf(u.formatSeparator)<0){var o=k(t,l,e);return u.alwaysFormat?u.format(o,void 0,n,i({},r,t,{interpolationkey:e})):o}var a=e.split(u.formatSeparator),s=a.shift().trim(),c=a.join(u.formatSeparator).trim();return u.format(k(t,l,s),c,n,i({},r,t,{interpolationkey:s}))};this.resetRegExp();var d=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return u.escapeValue?c(u.escape(e)):c(e)}}].forEach((function(t){for(s=0;o=t.regex.exec(e);){if(void 0===(a=f(o[1].trim())))if("function"===typeof d){var n=d(e,o,r);a="string"===typeof n?n:""}else{if(p){a=o[0];continue}u.logger.warn("missed to pass in variable ".concat(o[1]," for interpolating ").concat(e)),a=""}else"string"===typeof a||u.useRawValueToEscape||(a=y(a));var i=t.safeValue(a);if(e=e.replace(o[0],i),p?(t.regex.lastIndex+=i.length,t.regex.lastIndex-=o[0].length):t.regex.lastIndex=0,++s>=u.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,r,o=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=i({},a);function u(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),o="{".concat(r[1]);e=r[0],o=(o=this.interpolate(o,s)).replace(/'/g,'"');try{s=JSON.parse(o),t&&(s=i({},t,s))}catch(a){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),a),"".concat(e).concat(n).concat(o)}return delete s.defaultValue,e}for(s.applyPostProcessor=!1,delete s.defaultValue;n=this.nestingRegexp.exec(e);){var l=[],c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var f=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=f.shift(),l=f,c=!0}if((r=t(u.call(this,n[1].trim(),s),s))&&n[0]===e&&"string"!==typeof r)return r;"string"!==typeof r&&(r=y(r)),r||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),r=""),c&&(r=l.reduce((function(e,t){return o.format(e,t,a.lng,i({},a,{interpolationkey:n[1].trim()}))}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}]),e}();var H=function(e){function t(e,n,r){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Object(a.a)(this,t),o=f(this,Object(d.a)(t).call(this)),R&&g.call(Object(c.a)(o)),o.backend=e,o.store=n,o.services=r,o.languageUtils=r.languageUtils,o.options=i,o.logger=m.create("backendConnector"),o.state={},o.queue=[],o.backend&&o.backend.init&&o.backend.init(r,i.backend,i),o}return h(t,e),Object(s.a)(t,[{key:"queueLoad",value:function(e,t,n,r){var o=this,i=[],a=[],s=[],u=[];return e.forEach((function(e){var r=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&o.store.hasResourceBundle(e,t)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?a.indexOf(s)<0&&a.push(s):(o.state[s]=1,r=!1,a.indexOf(s)<0&&a.push(s),i.indexOf(s)<0&&i.push(s),u.indexOf(t)<0&&u.push(t)))})),r||s.push(e)})),(i.length||a.length)&&this.queue.push({pending:a,loaded:{},errors:[],callback:r}),{toLoad:i,pending:a,toLoadLanguages:s,toLoadNamespaces:u}}},{key:"loaded",value:function(e,t,n){var r=e.split("|"),o=r[0],i=r[1];t&&this.emit("failedLoading",o,i,t),n&&this.store.addResourceBundle(o,i,n),this.state[e]=t?-1:2;var a={};this.queue.forEach((function(n){!function(e,t,n,r){var o=x(e,t,Object),i=o.obj,a=o.k;i[a]=i[a]||[],r&&(i[a]=i[a].concat(n)),r||i[a].push(n)}(n.loaded,[o],i),function(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}(n.pending,e),t&&n.errors.push(t),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach((function(e){a[e]||(a[e]=[]),n.loaded[e].length&&n.loaded[e].forEach((function(t){a[e].indexOf(t)<0&&a[e].push(t)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[n](e,t,(function(s,u){s&&u&&o<5?setTimeout((function(){r.read.call(r,e,t,n,o+1,2*i,a)}),i):a(s,u)})):a(null,{})}},{key:"prepareLoading",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"===typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"===typeof t&&(t=[t]);var i=this.queueLoad(e,t,r,o);if(!i.toLoad.length)return i.pending.length||o(),null;i.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("|"),o=r[0],i=r[1];this.read(o,i,"read",void 0,void 0,(function(r,a){r&&t.logger.warn("".concat(n,"loading namespace ").concat(i," for language ").concat(o," failed"),r),!r&&a&&t.logger.log("".concat(n,"loaded namespace ").concat(i," for language ").concat(o),a),t.loaded(e,r,a)}))}},{key:"saveMissing",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):void 0!==n&&null!==n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(e,t,n,r,null,i({},a,{isUpdate:o})),e&&e[0]&&this.store.addResource(e[0],t,n,r))}}]),t}(g);function W(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===Object(r.a)(e[1])&&(t=e[1]),"string"===typeof e[1]&&(t.defaultValue=e[1]),"string"===typeof e[2]&&(t.tDescription=e[2]),"object"===Object(r.a)(e[2])||"object"===Object(r.a)(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,r){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function V(e){return"string"===typeof e.ns&&(e.ns=[e.ns]),"string"===typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"===typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function q(){}var $=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(Object(a.a)(this,t),e=f(this,Object(d.a)(t).call(this)),R&&g.call(Object(c.a)(e)),e.options=V(n),e.services={},e.logger=m,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),f(e,Object(c.a)(e));setTimeout((function(){e.init(n,r)}),0)}return e}return h(t,e),Object(s.a)(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;function r(e){return e?"function"===typeof e?new e:e:null}if("function"===typeof t&&(n=t,t={}),t.whitelist&&!t.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),t.nonExplicitWhitelist&&!t.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=i({},W(),this.options,V(t)),this.format=this.options.interpolation.format,n||(n=q),!this.options.isClone){this.modules.logger?m.init(r(this.modules.logger),this.options):m.init(null,this.options);var o=new I(this.options);this.store=new T(this.options.resources,this.options);var a=this.services;a.logger=m,a.resourceStore=this.store,a.languageUtils=o,a.pluralResolver=new B(o,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new U(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new H(r(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o0&&"dev"!==s[0]&&(this.options.lng=s[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var u=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];u.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));var l=["addResource","addResources","addResourceBundle","removeResourceBundle"];l.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var c=b(),f=function(){var t=function(t,r){e.isInitialized&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),c.resolve(r),n(t,r)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?f():setTimeout(f,0),c}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:q,r=n,o="string"===typeof e?e:this.language;if("function"===typeof e&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return r();var i=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){i.indexOf(e)<0&&i.push(e)}))};if(o)a(o);else{var s=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);s.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(i,this.options.ns,r)}else r(null)}},{key:"reloadResources",value:function(e,t,n){var r=b();return e||(e=this.languages),t||(t=this.options.ns),n||(n=q),this.services.backendConnector.reload(e,t,(function(e){r.resolve(),n(e)})),r}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&A.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var r=b();this.emit("languageChanging",e);var o=function(o){e||o||!n.services.languageDetector||(o=[]);var i="string"===typeof o?o:n.services.languageUtils.getBestMatchFromCodes(o);i&&(n.language||(n.language=i,n.languages=n.services.languageUtils.toResolveHierarchy(i)),n.translator.language||n.translator.changeLanguage(i),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(i)),n.loadResources(i,(function(e){!function(e,o){o?(n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o),n.translator.changeLanguage(o),n.isLanguageChangingTo=void 0,n.emit("languageChanged",o),n.logger.log("languageChanged",o)):n.isLanguageChangingTo=void 0,r.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,i)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(o):o(e):o(this.services.languageDetector.detect()),r}},{key:"getFixedT",value:function(e,t){var n=this,o=function e(t,o){var a;if("object"!==Object(r.a)(o)){for(var s=arguments.length,u=new Array(s>2?s-2:0),l=2;l1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var r=this.languages[0],o=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;var a=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};if(n.precheck){var s=n.precheck(this,a);if(void 0!==s)return s}return!!this.hasResourceBundle(r,e)||(!this.services.backendConnector.backend||!(!a(r,e)||o&&!a(i,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,r=b();return this.options.ns?("string"===typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){r.resolve(),t&&t(e)})),r):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=b();"string"===typeof e&&(e=[e]);var r=this.options.preload||[],o=e.filter((function(e){return r.indexOf(e)<0}));return o.length?(this.options.preload=r.concat(o),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),!e)return"rtl";return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr"}},{key:"createInstance",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(e,n)}},{key:"cloneInstance",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:q,o=i({},this.options,n,{isClone:!0}),a=new t(o),s=["store","services","language"];return s.forEach((function(t){a[t]=e[t]})),a.services=i({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new M(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){s.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){s.headers[e]=r.merge(i)})),e.exports=s}).call(this,n(51))},function(e,t,n){"use strict";var r=n(35),o=n(217),i=n(219),a=n(137),s=n(220),u=n(223),l=n(224),c=n(141);e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",v=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+v)}var m=s(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),a(m,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in p?u(p.getAllResponseHeaders()):null,i={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:r,config:e,request:p};o(t,n,i),p=null}},p.onabort=function(){p&&(n(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){n(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||l(m))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){"undefined"===typeof f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(b){if("json"!==e.responseType)throw b}"function"===typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),n(e),p=null)})),f||(f=null),p.send(f)}))}},function(e,t,n){"use strict";var r=n(218);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";var r=n(35);e.exports=function(e,t){t=t||{};var n={},o=["url","method","data"],i=["headers","auth","proxy","params"],a=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],s=["validateStatus"];function u(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function l(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=u(void 0,e[o])):n[o]=u(e[o],t[o])}r.forEach(o,(function(e){r.isUndefined(t[e])||(n[e]=u(void 0,t[e]))})),r.forEach(i,l),r.forEach(a,(function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=u(void 0,e[o])):n[o]=u(void 0,t[o])})),r.forEach(s,(function(r){r in t?n[r]=u(e[r],t[r]):r in e&&(n[r]=u(void 0,e[r]))}));var c=o.concat(i).concat(a).concat(s),f=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===c.indexOf(e)}));return r.forEach(f,l),n}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);nc))return!1;var d=u.get(e),p=u.get(t);if(d&&p)return d==t&&p==e;var h=-1,v=!0,m=2&n?new r:void 0;for(u.set(e,t),u.set(t,e);++h-1&&e%1==0&&e<=9007199254740991}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){(function(e){var r=n(334),o=n(157),i=n(343),a=n(344),s=n(124),u=t;u.request=function(t,n){t="string"===typeof t?s.parse(t):i(t);var o=-1===e.location.protocol.search(/^https?:$/)?"http:":"",a=t.protocol||o,u=t.hostname||t.host,l=t.port,c=t.path||"/";u&&-1!==u.indexOf(":")&&(u="["+u+"]"),t.url=(u?a+"//"+u:"")+(l?":"+l:"")+c,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var f=new r(t);return n&&f.on("response",n),f},u.get=function(e,t){var n=u.request(e,t);return n.end(),n},u.ClientRequest=r,u.IncomingMessage=o.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent,u.STATUS_CODES=a,u.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}).call(this,n(31))},function(e,t,n){(function(e){t.fetch=s(e.fetch)&&s(e.ReadableStream),t.writableStream=s(e.WritableStream),t.abortController=s(e.AbortController),t.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),t.blobConstructor=!0}catch(u){}var n;function r(){if(void 0!==n)return n;if(e.XMLHttpRequest){n=new e.XMLHttpRequest;try{n.open("GET",e.XDomainRequest?"/":"https://example.com")}catch(u){n=null}}else n=null;return n}function o(e){var t=r();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(u){}return!1}var i="undefined"!==typeof e.ArrayBuffer,a=i&&s(e.ArrayBuffer.prototype.slice);function s(e){return"function"===typeof e}t.arraybuffer=t.fetch||i&&o("arraybuffer"),t.msstream=!t.fetch&&a&&o("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&i&&o("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!r()&&s(r().overrideMimeType),t.vbArray=s(e.VBArray),n=null}).call(this,n(31))},function(e,t,n){(function(e,r,o){var i=n(156),a=n(60),s=n(158),u=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},l=t.IncomingMessage=function(t,n,a,u){var l=this;if(s.Readable.call(l),l._mode=a,l.headers={},l.rawHeaders=[],l.trailers={},l.rawTrailers=[],l.on("end",(function(){e.nextTick((function(){l.emit("close")}))})),"fetch"===a){if(l._fetchResponse=n,l.url=n.url,l.statusCode=n.status,l.statusMessage=n.statusText,n.headers.forEach((function(e,t){l.headers[t.toLowerCase()]=e,l.rawHeaders.push(t,e)})),i.writableStream){var c=new WritableStream({write:function(e){return new Promise((function(t,n){l._destroyed?n():l.push(new o(e))?t():l._resumeFetch=t}))},close:function(){r.clearTimeout(u),l._destroyed||l.push(null)},abort:function(e){l._destroyed||l.emit("error",e)}});try{return void n.body.pipeTo(c).catch((function(e){r.clearTimeout(u),l._destroyed||l.emit("error",e)}))}catch(h){}}var f=n.body.getReader();!function e(){f.read().then((function(t){if(!l._destroyed){if(t.done)return r.clearTimeout(u),void l.push(null);l.push(new o(t.value)),e()}})).catch((function(e){r.clearTimeout(u),l._destroyed||l.emit("error",e)}))}()}else{if(l._xhr=t,l._pos=0,l.url=t.responseURL,l.statusCode=t.status,l.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach((function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var n=t[1].toLowerCase();"set-cookie"===n?(void 0===l.headers[n]&&(l.headers[n]=[]),l.headers[n].push(t[2])):void 0!==l.headers[n]?l.headers[n]+=", "+t[2]:l.headers[n]=t[2],l.rawHeaders.push(t[1],t[2])}})),l._charset="x-user-defined",!i.overrideMimeType){var d=l.rawHeaders["mime-type"];if(d){var p=d.match(/;\s*charset=([^;])(;|$)/);p&&(l._charset=p[1].toLowerCase())}l._charset||(l._charset="utf-8")}}};a(l,s.Readable),l.prototype._read=function(){var e=this._resumeFetch;e&&(this._resumeFetch=null,e())},l.prototype._onXHRProgress=function(){var e=this,t=e._xhr,n=null;switch(e._mode){case"text:vbarray":if(t.readyState!==u.DONE)break;try{n=new r.VBArray(t.responseBody).toArray()}catch(c){}if(null!==n){e.push(new o(n));break}case"text":try{n=t.responseText}catch(c){e._mode="text:vbarray";break}if(n.length>e._pos){var i=n.substr(e._pos);if("x-user-defined"===e._charset){for(var a=new o(i.length),s=0;se._pos&&(e.push(new o(new Uint8Array(l.result.slice(e._pos)))),e._pos=l.result.byteLength)},l.onload=function(){e.push(null)},l.readAsArrayBuffer(n)}e._xhr.readyState===u.DONE&&"ms-stream"!==e._mode&&e.push(null)}}).call(this,n(51),n(31),n(39).Buffer)},function(e,t,n){(t=e.exports=n(159)).Stream=t,t.Readable=t,t.Writable=n(163),t.Duplex=n(69),t.Transform=n(165),t.PassThrough=n(341)},function(e,t,n){"use strict";(function(t,r){var o=n(97);e.exports=y;var i,a=n(154);y.ReadableState=b;n(160).EventEmitter;var s=function(e,t){return e.listeners(t).length},u=n(161),l=n(123).Buffer,c=t.Uint8Array||function(){};var f=Object.create(n(80));f.inherits=n(60);var d=n(335),p=void 0;p=d&&d.debuglog?d.debuglog("stream"):function(){};var h,v=n(336),m=n(162);f.inherits(y,u);var g=["error","close","destroy","pause","resume"];function b(e,t){e=e||{};var r=t instanceof(i=i||n(69));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=n(164).StringDecoder),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function y(e){if(i=i||n(69),!(this instanceof y))return new y(e);this._readableState=new b(e,this),this.readable=!0,e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function w(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,k(e)}(e,a)):(o||(i=function(e,t){var n;r=t,l.isBuffer(r)||r instanceof c||"string"===typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"===typeof t||a.objectMode||Object.getPrototypeOf(t)===l.prototype||(t=function(e){return l.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):x(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?x(e,a,t,!1):C(e,a)):x(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=O?e=O:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(E,e):E(e))}function E(e){p("emit readable"),e.emit("readable"),P(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(j,e,t))}function j(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=l.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function A(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function M(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?A(this):k(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&A(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?T(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&A(this)),null!==r&&this.emit("data",r),r},y.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},y.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var u=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?c:y;function l(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",g),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",m),e.removeListener("unpipe",l),n.removeListener("end",c),n.removeListener("end",y),n.removeListener("data",v),d=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function c(){p("onend"),e.end()}i.endEmitted?o.nextTick(u):n.once("end",u),e.on("unpipe",l);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var d=!1;var h=!1;function v(t){p("ondata"),h=!1,!1!==e.write(t)||h||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==M(i.pipes,e))&&!d&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,h=!0),n.pause())}function m(t){p("onerror",t),y(),e.removeListener("error",m),0===s(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",b),y()}function b(){p("onfinish"),e.removeListener("close",g),y()}function y(){p("unpipe"),n.unpipe(e)}return n.on("data",v),function(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",m),e.once("close",g),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},y.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,console&&console.warn&&console.warn(s)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=d.bind(r);return o.listener=n,r.wrapFn=o,o}function h(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"===typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[e];if(void 0===u)return!1;if("function"===typeof u)i(u,this,t);else{var l=u.length,c=m(u,l);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):v.call(e,t)},s.prototype.listenerCount=v,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(160).EventEmitter},function(e,t,n){"use strict";var r=n(97);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";(function(t,r,o){var i=n(97);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,u=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=g;var l=Object.create(n(80));l.inherits=n(60);var c={deprecate:n(340)},f=n(161),d=n(123).Buffer,p=o.Uint8Array||function(){};var h,v=n(162);function m(){}function g(e,t){s=s||n(69),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,l=e.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(l||0===l)?l:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),k(e,t))}(e,n,r,t,o);else{var a=O(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||x(e,n),r?u(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(69),!h.call(b,this)&&!(this instanceof s))return new b(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.final&&(this._final=e.final)),f.call(this)}function y(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),k(e,t)}function x(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,u=!0;n;)o[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;o.allBuffers=u,y(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,c=n.encoding,f=n.callback;if(y(e,t,!1,t.objectMode?1:l.length,l,c,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function O(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),k(e,t)}))}function k(e,t){var n=O(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"===typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(S,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}l.inherits(b,f),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,"buffer",{get:c.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"===typeof Symbol&&Symbol.hasInstance&&"function"===typeof Function.prototype[Symbol.hasInstance]?(h=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!h.call(this,e)||this===b&&(e&&e._writableState instanceof g)}})):h=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,d.isBuffer(r)||r instanceof p);return s&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"===typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!==typeof n&&(n=m),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"===typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=d.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"===typeof e?(n=e,e=null,t=null):"function"===typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,k(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=v.destroy,b.prototype._undestroy=v.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(51),n(338).setImmediate,n(31))},function(e,t,n){"use strict";var r=n(122).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!==typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=l,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=c,this.end=f,t=3;break;default:return this.write=d,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"\ufffd";if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"\ufffd";if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"\ufffd"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function c(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";e.exports=a;var r=n(69),o=Object.create(n(80));function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length0;e+=1);return e},l=function(e,t){var n=new Int32Array(e,t+320,5),r=new Int32Array(5),o=new DataView(r.buffer);return o.setInt32(0,n[0],!1),o.setInt32(4,n[1],!1),o.setInt32(8,n[2],!1),o.setInt32(12,n[3],!1),o.setInt32(16,n[4],!1),r},c=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(t=t||65536)%64>0)throw new Error("Chunk size must be a multiple of 128 bit");this._offset=0,this._maxChunkLen=t,this._padMaxChunkLen=u(t),this._heap=new ArrayBuffer(a(this._padMaxChunkLen+320+20)),this._h32=new Int32Array(this._heap),this._h8=new Int8Array(this._heap),this._core=new r({Int32Array:Int32Array},{},this._heap)}return e.prototype._initState=function(e,t){this._offset=0;var n=new Int32Array(e,t+320,5);n[0]=1732584193,n[1]=-271733879,n[2]=-1732584194,n[3]=271733878,n[4]=-1009589776},e.prototype._padChunk=function(e,t){var n=u(e),r=new Int32Array(this._heap,0,n>>2);return function(e,t){var n=new Uint8Array(e.buffer),r=t%4,o=t-r;switch(r){case 0:n[o+3]=0;case 1:n[o+2]=0;case 2:n[o+1]=0;case 3:n[o+0]=0}for(var i=1+(t>>2);i>2]|=128<<24-(t%4<<3),e[14+(2+(t>>2)&-16)]=n/(1<<29)|0,e[15+(2+(t>>2)&-16)]=n<<3}(r,e,t),n},e.prototype._write=function(e,t,n,r){s(e,this._h8,this._h32,t,n,r||0)},e.prototype._coreCall=function(e,t,n,r,o){var i=n;this._write(e,t,n),o&&(i=this._padChunk(n,r)),this._core.hash(i,this._padMaxChunkLen)},e.prototype.rawDigest=function(e){var t=e.byteLength||e.length||e.size||0;this._initState(this._heap,this._padMaxChunkLen);var n=0,r=this._maxChunkLen;for(n=0;t>n+r;n+=r)this._coreCall(e,n,r,t,!1);return this._coreCall(e,n,t-n,t,!0),l(this._heap,this._padMaxChunkLen)},e.prototype.digest=function(e){return i(this.rawDigest(e).buffer)},e.prototype.digestFromString=function(e){return this.digest(e)},e.prototype.digestFromBuffer=function(e){return this.digest(e)},e.prototype.digestFromArrayBuffer=function(e){return this.digest(e)},e.prototype.resetState=function(){return this._initState(this._heap,this._padMaxChunkLen),this},e.prototype.append=function(e){var t=0,n=e.byteLength||e.length||e.size||0,r=this._offset%this._maxChunkLen,o=void 0;for(this._offset+=n;t0}),!1)}e.exports=function(e,t){t=t||{};var o={main:n.m},i=t.all?{main:Object.keys(o)}:function(e,t){for(var n={main:[t]},r={main:[]},o={main:{}};u(n);)for(var i=Object.keys(n),a=0;a>2]|0;s=r[t+324>>2]|0;l=r[t+328>>2]|0;f=r[t+332>>2]|0;p=r[t+336>>2]|0;for(n=0;(n|0)<(e|0);n=n+64|0){a=i;u=s;c=l;d=f;h=p;for(o=0;(o|0)<64;o=o+4|0){m=r[n+o>>2]|0;v=((i<<5|i>>>27)+(s&l|~s&f)|0)+((m+p|0)+1518500249|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[e+o>>2]=m}for(o=e+64|0;(o|0)<(e+80|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s&l|~s&f)|0)+((m+p|0)+1518500249|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}for(o=e+80|0;(o|0)<(e+160|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s^l^f)|0)+((m+p|0)+1859775393|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}for(o=e+160|0;(o|0)<(e+240|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s&l|s&f|l&f)|0)+((m+p|0)-1894007588|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}for(o=e+240|0;(o|0)<(e+320|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s^l^f)|0)+((m+p|0)-899497514|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}i=i+a|0;s=s+u|0;l=l+c|0;f=f+d|0;p=p+h|0}r[t+320>>2]=i;r[t+324>>2]=s;r[t+328>>2]=l;r[t+332>>2]=f;r[t+336>>2]=p}return{hash:o}}},function(e,t){var n=this,r=void 0;"undefined"!==typeof self&&"undefined"!==typeof self.FileReaderSync&&(r=new self.FileReaderSync);var o=function(e,t,n,r,o,i){var a=void 0,s=i%4,u=(o+s)%4,l=o-u;switch(s){case 0:t[i]=e[r+3];case 1:t[i+1-(s<<1)|0]=e[r+2];case 2:t[i+2-(s<<1)|0]=e[r+1];case 3:t[i+3-(s<<1)|0]=e[r]}if(!(o>2|0]=e[r+a]<<24|e[r+a+1]<<16|e[r+a+2]<<8|e[r+a+3];switch(u){case 3:t[i+l+1|0]=e[r+l+2];case 2:t[i+l+2|0]=e[r+l+1];case 1:t[i+l+3|0]=e[r+l]}}};e.exports=function(e,t,i,a,s,u){if("string"===typeof e)return function(e,t,n,r,o,i){var a=void 0,s=i%4,u=(o+s)%4,l=o-u;switch(s){case 0:t[i]=e.charCodeAt(r+3);case 1:t[i+1-(s<<1)|0]=e.charCodeAt(r+2);case 2:t[i+2-(s<<1)|0]=e.charCodeAt(r+1);case 3:t[i+3-(s<<1)|0]=e.charCodeAt(r)}if(!(o>2]=e.charCodeAt(r+a)<<24|e.charCodeAt(r+a+1)<<16|e.charCodeAt(r+a+2)<<8|e.charCodeAt(r+a+3);switch(u){case 3:t[i+l+1|0]=e.charCodeAt(r+l+2);case 2:t[i+l+2|0]=e.charCodeAt(r+l+1);case 1:t[i+l+3|0]=e.charCodeAt(r+l)}}}(e,t,i,a,s,u);if(e instanceof Array)return o(e,t,i,a,s,u);if(n&&n.Buffer&&n.Buffer.isBuffer(e))return o(e,t,i,a,s,u);if(e instanceof ArrayBuffer)return o(new Uint8Array(e),t,i,a,s,u);if(e.buffer instanceof ArrayBuffer)return o(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t,i,a,s,u);if(e instanceof Blob)return function(e,t,n,o,i,a){var s=void 0,u=a%4,l=(i+u)%4,c=i-l,f=new Uint8Array(r.readAsArrayBuffer(e.slice(o,o+i)));switch(u){case 0:t[a]=f[3];case 1:t[a+1-(u<<1)|0]=f[2];case 2:t[a+2-(u<<1)|0]=f[1];case 3:t[a+3-(u<<1)|0]=f[0]}if(!(i>2|0]=f[s]<<24|f[s+1]<<16|f[s+2]<<8|f[s+3];switch(l){case 3:t[a+c+1|0]=f[c+2];case 2:t[a+c+2|0]=f[c+1];case 1:t[a+c+3|0]=f[c]}}}(e,t,i,a,s,u);throw new Error("Unsupported data type.")}},function(e,t,n){var r=function(){function e(e,t){for(var n=0;n overrides the height property of the style prop"));var d=i(i({},n),{height:f?f+"px":"100vh"});return o.a.createElement("div",i({ref:t,style:d},u))}));function l(){var e;return c()?(null===(e=document.documentElement)||void 0===e?void 0:e.clientHeight)||window.innerHeight:null}function c(){return"undefined"!==typeof window&&"undefined"!==typeof document}u.displayName="Div100vh",t.a=u},function(e,t,n){"use strict";var r=n(34),o=n(29),i=[],a=i.forEach,s=i.slice;function u(e){return a.call(s.call(arguments,1),(function(t){if(t)for(var n in t)void 0===e[n]&&(e[n]=t[n])})),e}var l=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,c=function(e,t,n){var r=n||{};r.path=r.path||"/";var o=e+"="+encodeURIComponent(t);if(r.maxAge>0){var i=r.maxAge-0;if(isNaN(i))throw new Error("maxAge should be a Number");o+="; Max-Age="+Math.floor(i)}if(r.domain){if(!l.test(r.domain))throw new TypeError("option domain is invalid");o+="; Domain="+r.domain}if(r.path){if(!l.test(r.path))throw new TypeError("option path is invalid");o+="; Path="+r.path}if(r.expires){if("function"!==typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");o+="; Expires="+r.expires.toUTCString()}if(r.httpOnly&&(o+="; HttpOnly"),r.secure&&(o+="; Secure"),r.sameSite)switch("string"===typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return o},f=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{path:"/",sameSite:"strict"};n&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+60*n*1e3)),r&&(o.domain=r),document.cookie=c(e,encodeURIComponent(t),o)},d=function(e){for(var t=e+"=",n=document.cookie.split(";"),r=0;r0)n[r].substring(0,o)===e.lookupQuerystring&&(t=n[r].substring(o+1))}return t}},v=null,m=function(){if(null!==v)return v;try{v="undefined"!==window&&null!==window.localStorage;var e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch(t){v=!1}return v},g={name:"localStorage",lookup:function(e){var t;if(e.lookupLocalStorage&&m()){var n=window.localStorage.getItem(e.lookupLocalStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupLocalStorage&&m()&&window.localStorage.setItem(t.lookupLocalStorage,e)}},b=null,y=function(){if(null!==b)return b;try{b="undefined"!==window&&null!==window.sessionStorage;var e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch(t){b=!1}return b},w={name:"sessionStorage",lookup:function(e){var t;if(e.lookupSessionStorage&&y()){var n=window.sessionStorage.getItem(e.lookupSessionStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupSessionStorage&&y()&&window.sessionStorage.setItem(t.lookupSessionStorage,e)}},x={name:"navigator",lookup:function(e){var t=[];if("undefined"!==typeof navigator){if(navigator.languages)for(var n=0;n0?t:void 0}},O={name:"htmlTag",lookup:function(e){var t,n=e.htmlTag||("undefined"!==typeof document?document.documentElement:null);return n&&"function"===typeof n.getAttribute&&(t=n.getAttribute("lang")),t}},S={name:"path",lookup:function(e){var t;if("undefined"!==typeof window){var n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(n instanceof Array)if("number"===typeof e.lookupFromPathIndex){if("string"!==typeof n[e.lookupFromPathIndex])return;t=n[e.lookupFromPathIndex].replace("/","")}else t=n[0].replace("/","")}return t}},k={name:"subdomain",lookup:function(e){var t;if("undefined"!==typeof window){var n=window.location.href.match(/(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi);n instanceof Array&&(t="number"===typeof e.lookupFromSubdomainIndex?n[e.lookupFromSubdomainIndex].replace("http://","").replace("https://","").replace(".",""):n[0].replace("http://","").replace("https://","").replace(".",""))}return t}};var E=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return Object(o.a)(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.services=e,this.options=u(t,this.options||{},{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(p),this.addDetector(h),this.addDetector(g),this.addDetector(w),this.addDetector(x),this.addDetector(O),this.addDetector(S),this.addDetector(k)}},{key:"addDetector",value:function(e){this.detectors[e.name]=e}},{key:"detect",value:function(e){var t=this;e||(e=this.options.order);var n=[];return e.forEach((function(e){if(t.detectors[e]){var r=t.detectors[e].lookup(t.options);r&&"string"===typeof r&&(r=[r]),r&&(n=n.concat(r))}})),this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}},{key:"cacheUserLanguage",value:function(e,t){var n=this;t||(t=this.options.caches),t&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||t.forEach((function(t){n.detectors[t]&&n.detectors[t].cacheUserLanguage(e,n.options)})))}}]),e}();E.type="languageDetector",t.a=E},,,function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(e,t){for(var n=0;n-1&&(n.client={top:e.clientTop,left:e.clientLeft,width:e.clientWidth,height:e.clientHeight}),t.indexOf("offset")>-1&&(n.offset={top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth,height:e.offsetHeight}),t.indexOf("scroll")>-1&&(n.scroll={top:e.scrollTop,left:e.scrollLeft,width:e.scrollWidth,height:e.scrollHeight}),t.indexOf("bounds")>-1){var r=e.getBoundingClientRect();n.bounds={top:r.top,right:r.right,bottom:r.bottom,left:r.left,width:r.width,height:r.height}}if(t.indexOf("margin")>-1){var o=getComputedStyle(e);n.margin={top:o?parseInt(o.marginTop):0,right:o?parseInt(o.marginRight):0,bottom:o?parseInt(o.marginBottom):0,left:o?parseInt(o.marginLeft):0}}return n}function p(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||window}var h=function(e){return function(t){var n,s;return s=n=function(n){function s(){for(var t,r=arguments.length,o=new Array(r),i=0;i0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;a.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),l=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),x="undefined"!==typeof WeakMap?new WeakMap:new n,O=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=u.getInstance(),r=new w(t,n,this);x.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=x.get(this))[e].apply(t,arguments)}}));var S="undefined"!==typeof o.ResizeObserver?o.ResizeObserver:O;t.a=S}).call(this,n(31))},function(e,t){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;up)&&(z=(H=H.replace(" ",":")).length),0r&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(m,"$1"+e.trim());case 58:return e.trim()+t.replace(m,"$1"+e.trim());default:if(0<1*n&&0u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102r.charCodeAt(0)&&(r=r.trim()),r=[r],0=t||n<0||m&&e-h>=c}function x(){var e=o();if(w(e))return O(e);d=setTimeout(x,function(e){var n=t-(e-p);return m?s(n,c-(e-h)):n}(e))}function O(e){return d=void 0,g&&u?b(e):(u=l=void 0,f)}function S(){var e=o(),n=w(e);if(u=arguments,l=this,p=e,n){if(void 0===d)return y(p);if(m)return clearTimeout(d),d=setTimeout(x,t),b(p)}return void 0===d&&(d=setTimeout(x,t)),f}return t=i(t)||0,r(n)&&(v=!!n.leading,c=(m="maxWait"in n)?a(i(n.maxWait)||0,t):c,g="trailing"in n?!!n.trailing:g),S.cancel=function(){void 0!==d&&clearTimeout(d),h=0,u=p=l=d=void 0},S.flush=function(){return void 0===d?f:O(o())},S}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(","),r=e.name||"",o=(e.type||"").toLowerCase(),i=o.replace(/\/.*$/,"");return n.some((function(e){var t=e.trim().toLowerCase();return"."===t.charAt(0)?r.toLowerCase().endsWith(t):t.endsWith("/*")?i===t.replace(/\/.*$/,""):o===t}))}return!0}},function(e,t,n){"use strict";n.d(t,"b",(function(){return u})),n.d(t,"a",(function(){return l}));var r=n(0),o=n.n(r),i=o.a.createContext(void 0),a=o.a.createContext(!1);function s(e){return e&&"undefined"!==typeof window?(window.ReactQueryClientContext||(window.ReactQueryClientContext=i),window.ReactQueryClientContext):i}var u=function(){var e=o.a.useContext(s(o.a.useContext(a)));if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},l=function(e){var t=e.client,n=e.contextSharing,r=void 0!==n&&n,i=e.children;o.a.useEffect((function(){return t.mount(),function(){t.unmount()}}),[t]);var u=s(r);return o.a.createElement(a.Provider,{value:r},o.a.createElement(u.Provider,{value:t},i))}},function(e,t,n){"use strict";var r=n(65),o=n(66);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(67)).default)(i.createElement("path",{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"}),"CreditCard");t.default=a},function(e,t,n){"use strict";var r=n(65),o=n(66);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(67)).default)(i.createElement("path",{d:"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"}),"LibraryAdd");t.default=a},function(e,t,n){"use strict";var r=n(168);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"SwipeableViewsContext",{enumerable:!0,get:function(){return o.SwipeableViewsContext}});var o=r(n(364))},function(e,t,n){"use strict";var r=n(65),o=n(66);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(67)).default)(i.createElement("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}),"Settings");t.default=a},function(e,t,n){"use strict";var r=n(65),o=n(66);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(67)).default)(i.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");t.default=a},function(e,t,n){"use strict";var r=n(65),o=n(66);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(67)).default)(i.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}),"Info");t.default=a},function(e,t,n){"use strict";var r=n(14),o=n(5),i=n(427),a=n(2),s=["xs","sm","md","lg","xl"];function u(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,r=e.unit,i=void 0===r?"px":r,u=e.step,l=void 0===u?5:u,c=Object(o.a)(e,["values","unit","step"]);function f(e){var t="number"===typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(i,")")}function d(e,t){var r=s.indexOf(t);return r===s.length-1?f(e):"@media (min-width:".concat("number"===typeof n[e]?n[e]:e).concat(i,") and ")+"(max-width:".concat((-1!==r&&"number"===typeof n[s[r+1]]?n[s[r+1]]:t)-l/100).concat(i,")")}return Object(a.a)({keys:s,values:n,up:f,down:function(e){var t=s.indexOf(e)+1,r=n[s[t]];return t===s.length?f("xs"):"@media (max-width:".concat(("number"===typeof r&&t>0?r:e)-l/100).concat(i,")")},between:d,only:function(e){return d(e,e)},width:function(e){return n[e]}},c)}function l(e,t,n){var o;return Object(a.a)({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(a.a)({paddingLeft:t(2),paddingRight:t(2)},n,Object(r.a)({},e.up("sm"),Object(a.a)({paddingLeft:t(3),paddingRight:t(3)},n[e.up("sm")])))},toolbar:(o={minHeight:56},Object(r.a)(o,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),Object(r.a)(o,e.up("sm"),{minHeight:64}),o)},n)}var c=n(198),f={black:"#000",white:"#fff"},d={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},p={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},h={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},v={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},m={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},g={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},b={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},y=n(15),w={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:f.white,default:d[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},x={text:{primary:f.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:d[800],default:"#303030"},action:{active:f.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function O(e,t,n,r){var o=r.light||r,i=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=Object(y.e)(e.main,o):"dark"===t&&(e.dark=Object(y.a)(e.main,i)))}function S(e){var t=e.primary,n=void 0===t?{light:p[300],main:p[500],dark:p[700]}:t,r=e.secondary,s=void 0===r?{light:h.A200,main:h.A400,dark:h.A700}:r,u=e.error,l=void 0===u?{light:v[300],main:v[500],dark:v[700]}:u,S=e.warning,k=void 0===S?{light:m[300],main:m[500],dark:m[700]}:S,E=e.info,C=void 0===E?{light:g[300],main:g[500],dark:g[700]}:E,j=e.success,_=void 0===j?{light:b[300],main:b[500],dark:b[700]}:j,R=e.type,P=void 0===R?"light":R,T=e.contrastThreshold,A=void 0===T?3:T,L=e.tonalOffset,M=void 0===L?.2:L,N=Object(o.a)(e,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function I(e){return Object(y.d)(e,x.text.primary)>=A?x.text.primary:w.text.primary}var D=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;if(!(e=Object(a.a)({},e)).main&&e[t]&&(e.main=e[t]),!e.main)throw new Error(Object(c.a)(4,t));if("string"!==typeof e.main)throw new Error(Object(c.a)(5,JSON.stringify(e.main)));return O(e,"light",n,M),O(e,"dark",r,M),e.contrastText||(e.contrastText=I(e.main)),e},F={dark:x,light:w};return Object(i.a)(Object(a.a)({common:f,type:P,primary:D(n),secondary:D(s,"A400","A200","A700"),error:D(l),warning:D(k),info:D(C),success:D(_),grey:d,contrastThreshold:A,getContrastText:I,augmentColor:D,tonalOffset:M},F[P]),N)}function k(e){return Math.round(1e5*e)/1e5}var E={textTransform:"uppercase"},C='"Roboto", "Helvetica", "Arial", sans-serif';function j(e,t){var n="function"===typeof t?t(e):t,r=n.fontFamily,s=void 0===r?C:r,u=n.fontSize,l=void 0===u?14:u,c=n.fontWeightLight,f=void 0===c?300:c,d=n.fontWeightRegular,p=void 0===d?400:d,h=n.fontWeightMedium,v=void 0===h?500:h,m=n.fontWeightBold,g=void 0===m?700:m,b=n.htmlFontSize,y=void 0===b?16:b,w=n.allVariants,x=n.pxToRem,O=Object(o.a)(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]);var S=l/14,j=x||function(e){return"".concat(e/y*S,"rem")},_=function(e,t,n,r,o){return Object(a.a)({fontFamily:s,fontWeight:e,fontSize:j(t),lineHeight:n},s===C?{letterSpacing:"".concat(k(r/t),"em")}:{},o,w)},R={h1:_(f,96,1.167,-1.5),h2:_(f,60,1.2,-.5),h3:_(p,48,1.167,0),h4:_(p,34,1.235,.25),h5:_(p,24,1.334,0),h6:_(v,20,1.6,.15),subtitle1:_(p,16,1.75,.15),subtitle2:_(v,14,1.57,.1),body1:_(p,16,1.5,.15),body2:_(p,14,1.43,.15),button:_(v,14,1.75,.4,E),caption:_(p,12,1.66,.4),overline:_(p,12,2.66,1,E)};return Object(i.a)(Object(a.a)({htmlFontSize:y,pxToRem:j,round:k,fontFamily:s,fontSize:l,fontWeightLight:f,fontWeightRegular:p,fontWeightMedium:v,fontWeightBold:g},R),O,{clone:!1})}function _(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var R=["none",_(0,2,1,-1,0,1,1,0,0,1,3,0),_(0,3,1,-2,0,2,2,0,0,1,5,0),_(0,3,3,-2,0,3,4,0,0,1,8,0),_(0,2,4,-1,0,4,5,0,0,1,10,0),_(0,3,5,-1,0,5,8,0,0,1,14,0),_(0,3,5,-1,0,6,10,0,0,1,18,0),_(0,4,5,-2,0,7,10,1,0,2,16,1),_(0,5,5,-3,0,8,10,1,0,3,14,2),_(0,5,6,-3,0,9,12,1,0,3,16,2),_(0,6,6,-3,0,10,14,1,0,4,18,3),_(0,6,7,-4,0,11,15,1,0,4,20,3),_(0,7,8,-4,0,12,17,2,0,5,22,4),_(0,7,8,-4,0,13,19,2,0,5,24,4),_(0,7,9,-4,0,14,21,2,0,5,26,4),_(0,8,9,-5,0,15,22,2,0,6,28,5),_(0,8,10,-5,0,16,24,2,0,6,30,5),_(0,8,11,-5,0,17,26,2,0,6,32,5),_(0,9,11,-5,0,18,28,2,0,7,34,6),_(0,9,12,-6,0,19,29,2,0,7,36,6),_(0,10,13,-6,0,20,31,3,0,8,38,7),_(0,10,13,-6,0,21,33,3,0,8,40,7),_(0,10,14,-6,0,22,35,3,0,8,42,7),_(0,11,14,-7,0,23,36,3,0,9,44,8),_(0,11,15,-7,0,24,38,3,0,9,46,8)],P={borderRadius:4},T=n(41),A=(n(48),n(38));n(7);var L=function(e,t){return t?Object(i.a)(e,t,{clone:!1}):e},M={xs:0,sm:600,md:960,lg:1280,xl:1920},N={keys:["xs","sm","md","lg","xl"],up:function(e){return"@media (min-width:".concat(M[e],"px)")}};var I={m:"margin",p:"padding"},D={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},F={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},z=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}((function(e){if(e.length>2){if(!F[e])return[e];e=F[e]}var t=e.split(""),n=Object(T.a)(t,2),r=n[0],o=n[1],i=I[r],a=D[o]||"";return Array.isArray(a)?a.map((function(e){return i+e})):[i+a]})),B=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function U(e){var t=e.spacing||8;return"number"===typeof t?function(e){return t*e}:Array.isArray(t)?function(e){return t[e]}:"function"===typeof t?t:function(){}}function H(e,t){return function(n){return e.reduce((function(e,r){return e[r]=function(e,t){if("string"===typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"===typeof n?-n:"-".concat(n)}(t,n),e}),{})}}function W(e){var t=U(e.theme);return Object.keys(e).map((function(n){if(-1===B.indexOf(n))return null;var r=H(z(n),t),o=e[n];return function(e,t,n){if(Array.isArray(t)){var r=e.theme.breakpoints||N;return t.reduce((function(e,o,i){return e[r.up(r.keys[i])]=n(t[i]),e}),{})}if("object"===Object(A.a)(t)){var o=e.theme.breakpoints||N;return Object.keys(t).reduce((function(e,r){return e[o.up(r)]=n(t[r]),e}),{})}return n(t)}(e,o,r)})).reduce(L,{})}W.propTypes={},W.filterProps=B;function V(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=U({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,r=e.mixins,a=void 0===r?{}:r,s=e.palette,c=void 0===s?{}:s,f=e.spacing,d=e.typography,p=void 0===d?{}:d,h=Object(o.a)(e,["breakpoints","mixins","palette","spacing","typography"]),v=S(c),m=u(n),g=V(f),b=Object(i.a)({breakpoints:m,direction:"ltr",mixins:l(m,g,a),overrides:{},palette:v,props:{},shadows:R,typography:j(v,p),spacing:g,shape:P,transitions:q.a,zIndex:$.a},h),y=arguments.length,w=new Array(y>1?y-1:0),x=1;x0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}Object.create;var c=new Map([["avi","video/avi"],["gif","image/gif"],["ico","image/x-icon"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["mkv","video/x-matroska"],["mov","video/quicktime"],["mp4","video/mp4"],["pdf","application/pdf"],["png","image/png"],["zip","application/zip"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"]]);function f(e,t){var n=function(e){var t=e.name;if(t&&-1!==t.lastIndexOf(".")&&!e.type){var n=t.split(".").pop().toLowerCase(),r=c.get(n);r&&Object.defineProperty(e,"type",{value:r,writable:!1,configurable:!1,enumerable:!0})}return e}(e);if("string"!==typeof n.path){var r=e.webkitRelativePath;Object.defineProperty(n,"path",{value:"string"===typeof t?t:"string"===typeof r&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return n}var d=[".DS_Store","Thumbs.db"];function p(e){return(null!==e.target&&e.target.files?m(e.target.files):[]).map((function(e){return f(e)}))}function h(e,t){return s(this,void 0,void 0,(function(){var n;return u(this,(function(r){switch(r.label){case 0:return e.items?(n=m(e.items).filter((function(e){return"file"===e.kind})),"drop"!==t?[2,n]:[4,Promise.all(n.map(g))]):[3,2];case 1:return[2,v(b(r.sent()))];case 2:return[2,v(m(e.files).map((function(e){return f(e)})))]}}))}))}function v(e){return e.filter((function(e){return-1===d.indexOf(e.name)}))}function m(e){for(var t=[],n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nn)return[!1,_(n)];if(e.sizen)return[!1,_(n)]}return[!0,null]}function L(e){return void 0!==e&&null!==e}function M(e){var t=e.files,n=e.accept,r=e.minSize,o=e.maxSize,i=e.multiple,a=e.maxFiles;return!(!i&&t.length>1||i&&a>=1&&t.length>a)&&t.every((function(e){var t=E(T(e,n),1)[0],i=E(A(e,r,o),1)[0];return t&&i}))}function N(e){return"function"===typeof e.isPropagationStopped?e.isPropagationStopped():"undefined"!==typeof e.cancelBubble&&e.cancelBubble}function I(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,(function(e){return"Files"===e||"application/x-moz-file"===e})):!!e.target&&!!e.target.files}function D(e){e.preventDefault()}function F(e){return-1!==e.indexOf("MSIE")||-1!==e.indexOf("Trident/")}function z(e){return-1!==e.indexOf("Edge/")}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator.userAgent;return F(e)||z(e)}function U(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),o=1;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var X=Object(r.forwardRef)((function(e,t){var n=e.children,i=Z(Q(e,["children"])),a=i.open,s=Q(i,["open"]);return Object(r.useImperativeHandle)(t,(function(){return{open:a}}),[a]),o.a.createElement(r.Fragment,null,n(K(K({},s),{},{open:a})))}));X.displayName="Dropzone";var G={disabled:!1,getFilesFromEvent:function(e){return s(this,void 0,void 0,(function(){return u(this,(function(t){return[2,(n=e,n.dataTransfer&&e.dataTransfer?h(e.dataTransfer,e.type):p(e))];var n}))}))},maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null};X.defaultProps=G,X.propTypes={children:a.a.func,accept:a.a.oneOfType([a.a.string,a.a.arrayOf(a.a.string)]),multiple:a.a.bool,preventDropOnDocument:a.a.bool,noClick:a.a.bool,noKeyboard:a.a.bool,noDrag:a.a.bool,noDragEventsBubbling:a.a.bool,minSize:a.a.number,maxSize:a.a.number,maxFiles:a.a.number,disabled:a.a.bool,getFilesFromEvent:a.a.func,onFileDialogCancel:a.a.func,onDragEnter:a.a.func,onDragLeave:a.a.func,onDragOver:a.a.func,onDrop:a.a.func,onDropAccepted:a.a.func,onDropRejected:a.a.func,validator:a.a.func};var J={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function Z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=K(K({},G),e),n=t.accept,o=t.disabled,i=t.getFilesFromEvent,a=t.maxSize,s=t.minSize,u=t.multiple,l=t.maxFiles,c=t.onDragEnter,f=t.onDragLeave,d=t.onDragOver,p=t.onDrop,h=t.onDropAccepted,v=t.onDropRejected,m=t.onFileDialogCancel,g=t.preventDropOnDocument,b=t.noClick,y=t.noKeyboard,w=t.noDrag,x=t.noDragEventsBubbling,O=t.validator,S=Object(r.useRef)(null),k=Object(r.useRef)(null),E=Object(r.useReducer)(ee,J),C=W(E,2),j=C[0],_=C[1],R=j.isFocused,L=j.isFileDialogActive,F=j.draggedFiles,z=Object(r.useCallback)((function(){k.current&&(_({type:"openDialog"}),k.current.value=null,k.current.click())}),[_]),V=function(){L&&setTimeout((function(){k.current&&(k.current.files.length||(_({type:"closeDialog"}),"function"===typeof m&&m()))}),300)};Object(r.useEffect)((function(){return window.addEventListener("focus",V,!1),function(){window.removeEventListener("focus",V,!1)}}),[k,L,m]);var q=Object(r.useCallback)((function(e){S.current&&S.current.isEqualNode(e.target)&&(32!==e.keyCode&&13!==e.keyCode||(e.preventDefault(),z()))}),[S,k]),$=Object(r.useCallback)((function(){_({type:"focus"})}),[]),X=Object(r.useCallback)((function(){_({type:"blur"})}),[]),Z=Object(r.useCallback)((function(){b||(B()?setTimeout(z,0):z())}),[k,b]),te=Object(r.useRef)([]),ne=function(e){S.current&&S.current.contains(e.target)||(e.preventDefault(),te.current=[])};Object(r.useEffect)((function(){return g&&(document.addEventListener("dragover",D,!1),document.addEventListener("drop",ne,!1)),function(){g&&(document.removeEventListener("dragover",D),document.removeEventListener("drop",ne))}}),[S,g]);var re=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),ce(e),te.current=[].concat(H(te.current),[e.target]),I(e)&&Promise.resolve(i(e)).then((function(t){N(e)&&!x||(_({draggedFiles:t,isDragActive:!0,type:"setDraggedFiles"}),c&&c(e))}))}),[i,c,x]),oe=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),ce(e);var t=I(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect="copy"}catch(n){}return t&&d&&d(e),!1}),[d,x]),ie=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),ce(e);var t=te.current.filter((function(e){return S.current&&S.current.contains(e)})),n=t.indexOf(e.target);-1!==n&&t.splice(n,1),te.current=t,t.length>0||(_({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),I(e)&&f&&f(e))}),[S,f,x]),ae=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),ce(e),te.current=[],I(e)&&Promise.resolve(i(e)).then((function(t){if(!N(e)||x){var r=[],o=[];t.forEach((function(e){var t=W(T(e,n),2),i=t[0],u=t[1],l=W(A(e,s,a),2),c=l[0],f=l[1],d=O?O(e):null;if(i&&c&&!d)r.push(e);else{var p=[u,f];d&&(p=p.concat(d)),o.push({file:e,errors:p.filter((function(e){return e}))})}})),(!u&&r.length>1||u&&l>=1&&r.length>l)&&(r.forEach((function(e){o.push({file:e,errors:[P]})})),r.splice(0)),_({acceptedFiles:r,fileRejections:o,type:"setFiles"}),p&&p(r,o,e),o.length>0&&v&&v(o,e),r.length>0&&h&&h(r,e)}})),_({type:"reset"})}),[u,n,s,a,l,i,p,h,v,x]),se=function(e){return o?null:e},ue=function(e){return y?null:se(e)},le=function(e){return w?null:se(e)},ce=function(e){x&&e.stopPropagation()},fe=Object(r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,n=void 0===t?"ref":t,r=e.onKeyDown,i=e.onFocus,a=e.onBlur,s=e.onClick,u=e.onDragEnter,l=e.onDragOver,c=e.onDragLeave,f=e.onDrop,d=Q(e,["refKey","onKeyDown","onFocus","onBlur","onClick","onDragEnter","onDragOver","onDragLeave","onDrop"]);return K(K(Y({onKeyDown:ue(U(r,q)),onFocus:ue(U(i,$)),onBlur:ue(U(a,X)),onClick:se(U(s,Z)),onDragEnter:le(U(u,re)),onDragOver:le(U(l,oe)),onDragLeave:le(U(c,ie)),onDrop:le(U(f,ae))},n,S),o||y?{}:{tabIndex:0}),d)}}),[S,q,$,X,Z,re,oe,ie,ae,y,w,o]),de=Object(r.useCallback)((function(e){e.stopPropagation()}),[]),pe=Object(r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,r=void 0===t?"ref":t,o=e.onChange,i=e.onClick,a=Q(e,["refKey","onChange","onClick"]),s=Y({accept:n,multiple:u,type:"file",style:{display:"none"},onChange:se(U(o,ae)),onClick:se(U(i,de)),autoComplete:"off",tabIndex:-1},r,k);return K(K({},s),a)}}),[k,n,u,ae,o]),he=F.length,ve=he>0&&M({files:F,accept:n,minSize:s,maxSize:a,multiple:u,maxFiles:l}),me=he>0&&!ve;return K(K({},j),{},{isDragAccept:ve,isDragReject:me,isFocused:R&&!o,getRootProps:fe,getInputProps:pe,rootRef:S,inputRef:k,open:se(z)})}function ee(e,t){switch(t.type){case"focus":return K(K({},e),{},{isFocused:!0});case"blur":return K(K({},e),{},{isFocused:!1});case"openDialog":return K(K({},e),{},{isFileDialogActive:!0});case"closeDialog":return K(K({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var n=t.isDragActive,r=t.draggedFiles;return K(K({},e),{},{draggedFiles:r,isDragActive:n});case"setFiles":return K(K({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return K(K({},e),{},{isFileDialogActive:!1,isDragActive:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]});default:return e}}},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e){for(var t="https://material-ui.com/production-error/?code="+e,n=1;n0&&Math.abs((e.outerHeightStyle||0)-f)>1||e.overflow!==d)?(S.current+=1,{overflow:d,outerHeightStyle:f}):e}))}),[s,b,e.placeholder]);a.useEffect((function(){var e=Object(p.a)((function(){S.current=0,j()}));return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}}),[j]),v((function(){j()})),a.useEffect((function(){S.current=0}),[f]);return a.createElement(a.Fragment,null,a.createElement("textarea",Object(o.a)({value:f,onChange:function(e){S.current=0,y||j(),n&&n(e)},ref:x,rows:b,style:Object(o.a)({height:E.outerHeightStyle,overflow:E.overflow?"hidden":null},c)},g)),a.createElement("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:O,tabIndex:-1,style:Object(o.a)({},m,c)}))})),b=n(61),y="undefined"===typeof window?a.useEffect:a.useLayoutEffect,w=a.forwardRef((function(e,t){var n=e["aria-describedby"],c=e.autoComplete,p=e.autoFocus,h=e.classes,v=e.className,m=(e.color,e.defaultValue),w=e.disabled,x=e.endAdornment,O=(e.error,e.fullWidth),S=void 0!==O&&O,k=e.id,E=e.inputComponent,C=void 0===E?"input":E,j=e.inputProps,_=void 0===j?{}:j,R=e.inputRef,P=(e.margin,e.multiline),T=void 0!==P&&P,A=e.name,L=e.onBlur,M=e.onChange,N=e.onClick,I=e.onFocus,D=e.onKeyDown,F=e.onKeyUp,z=e.placeholder,B=e.readOnly,U=e.renderSuffix,H=e.rows,W=e.rowsMax,V=e.rowsMin,q=e.startAdornment,$=e.type,K=void 0===$?"text":$,Y=e.value,Q=Object(r.a)(e,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","startAdornment","type","value"]),X=null!=_.value?_.value:Y,G=a.useRef(null!=X).current,J=a.useRef(),Z=a.useCallback((function(e){0}),[]),ee=Object(d.a)(_.ref,Z),te=Object(d.a)(R,ee),ne=Object(d.a)(J,te),re=a.useState(!1),oe=re[0],ie=re[1],ae=Object(l.b)();var se=Object(u.a)({props:e,muiFormControl:ae,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});se.focused=ae?ae.focused:oe,a.useEffect((function(){!ae&&w&&oe&&(ie(!1),L&&L())}),[ae,w,oe,L]);var ue=ae&&ae.onFilled,le=ae&&ae.onEmpty,ce=a.useCallback((function(e){Object(b.b)(e)?ue&&ue():le&&le()}),[ue,le]);y((function(){G&&ce({value:X})}),[X,ce,G]);a.useEffect((function(){ce(J.current)}),[]);var fe=C,de=Object(o.a)({},_,{ref:ne});"string"!==typeof fe?de=Object(o.a)({inputRef:ne,type:K},de,{ref:null}):T?!H||W||V?(de=Object(o.a)({rows:H,rowsMax:W},de),fe=g):fe="textarea":de=Object(o.a)({type:K},de);return a.useEffect((function(){ae&&ae.setAdornedStart(Boolean(q))}),[ae,q]),a.createElement("div",Object(o.a)({className:Object(s.a)(h.root,h["color".concat(Object(f.a)(se.color||"primary"))],v,se.disabled&&h.disabled,se.error&&h.error,S&&h.fullWidth,se.focused&&h.focused,ae&&h.formControl,T&&h.multiline,q&&h.adornedStart,x&&h.adornedEnd,"dense"===se.margin&&h.marginDense),onClick:function(e){J.current&&e.currentTarget===e.target&&J.current.focus(),N&&N(e)},ref:t},Q),q,a.createElement(l.a.Provider,{value:null},a.createElement(fe,Object(o.a)({"aria-invalid":se.error,"aria-describedby":n,autoComplete:c,autoFocus:p,defaultValue:m,disabled:se.disabled,id:k,onAnimationStart:function(e){ce("mui-auto-fill-cancel"===e.animationName?J.current:{value:"x"})},name:A,placeholder:z,readOnly:B,required:se.required,rows:H,value:X,onKeyDown:D,onKeyUp:F},de,{className:Object(s.a)(h.input,_.className,se.disabled&&h.disabled,T&&h.inputMultiline,se.hiddenLabel&&h.inputHiddenLabel,q&&h.inputAdornedStart,x&&h.inputAdornedEnd,"search"===K&&h.inputTypeSearch,"dense"===se.margin&&h.inputMarginDense),onBlur:function(e){L&&L(e),_.onBlur&&_.onBlur(e),ae&&ae.onBlur?ae.onBlur(e):ie(!1)},onChange:function(e){if(!G){var t=e.target||J.current;if(null==t)throw new Error(Object(i.a)(1));ce({value:t.value})}for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o