airdcpp-webui 2.13.0-beta.4 → 2.13.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.html +1 -1
- package/dist/js/{223.6be6d28c189b00574f35.chunk.js → 223.339879525b9d883969f0.chunk.js} +2 -2
- package/dist/js/223.339879525b9d883969f0.chunk.js.gz +0 -0
- package/dist/js/{223.6be6d28c189b00574f35.chunk.js.map → 223.339879525b9d883969f0.chunk.js.map} +1 -1
- package/dist/js/{544.d99a4d4069f20166b937.chunk.js → 544.b32d041604495053bca1.chunk.js} +1 -1
- package/dist/js/544.b32d041604495053bca1.chunk.js.gz +0 -0
- package/dist/js/{544.d99a4d4069f20166b937.chunk.js.map → 544.b32d041604495053bca1.chunk.js.map} +1 -1
- package/dist/js/{794.3f1ced06bd544ae73da6.chunk.js → 794.865da5ca4b99bf761055.chunk.js} +2 -2
- package/dist/js/794.865da5ca4b99bf761055.chunk.js.gz +0 -0
- package/dist/js/794.865da5ca4b99bf761055.chunk.js.map +1 -0
- package/dist/js/favorite-hubs.fd60b576631ff25814fe.chunk.js +2 -0
- package/dist/js/favorite-hubs.fd60b576631ff25814fe.chunk.js.gz +0 -0
- package/dist/js/favorite-hubs.fd60b576631ff25814fe.chunk.js.map +1 -0
- package/dist/js/filelists.1a47603f6b61852d18f8.chunk.js +2 -0
- package/dist/js/filelists.1a47603f6b61852d18f8.chunk.js.gz +0 -0
- package/dist/js/filelists.1a47603f6b61852d18f8.chunk.js.map +1 -0
- package/dist/js/{home.5f2411d4aa3246c2601f.chunk.js → home.8c48468bfa50df12e408.chunk.js} +3 -3
- package/dist/js/home.8c48468bfa50df12e408.chunk.js.gz +0 -0
- package/dist/js/home.8c48468bfa50df12e408.chunk.js.map +1 -0
- package/dist/js/{hubs.764d8d1abaee9f78f44a.chunk.js → hubs.3de899399a970dd9c173.chunk.js} +1 -1
- package/dist/js/hubs.3de899399a970dd9c173.chunk.js.gz +0 -0
- package/dist/js/{hubs.764d8d1abaee9f78f44a.chunk.js.map → hubs.3de899399a970dd9c173.chunk.js.map} +1 -1
- package/dist/js/locales/ca-webui-main-json.94f153eb573bb1577f8c.chunk.js +1 -0
- package/dist/js/locales/ca-webui-main-json.94f153eb573bb1577f8c.chunk.js.gz +0 -0
- package/dist/js/locales/{da-webui-main-json.eb0a4bae769f6aee4bd0.chunk.js → da-webui-main-json.ca9f289c8aa5901d18b9.chunk.js} +1 -1
- package/dist/js/locales/da-webui-main-json.ca9f289c8aa5901d18b9.chunk.js.gz +0 -0
- package/dist/js/locales/{de-webui-main-json.965cdd5f4f4bd9c95862.chunk.js → de-webui-main-json.9047a1d7d315099ddbe7.chunk.js} +1 -1
- package/dist/js/locales/de-webui-main-json.9047a1d7d315099ddbe7.chunk.js.gz +0 -0
- package/dist/js/locales/{en-webui-main-json.5d7006152fbd84f6def9.chunk.js → en-webui-main-json.67a773ebc5e3494eb051.chunk.js} +1 -1
- package/dist/js/locales/en-webui-main-json.67a773ebc5e3494eb051.chunk.js.gz +0 -0
- package/dist/js/locales/{es-webui-main-json.85d6d3a21a00b15fdb32.chunk.js → es-webui-main-json.8e576eafb5b6a27515e5.chunk.js} +1 -1
- package/dist/js/locales/es-webui-main-json.8e576eafb5b6a27515e5.chunk.js.gz +0 -0
- package/dist/js/locales/{eu-webui-main-json.d719c37626cb960d887e.chunk.js → eu-webui-main-json.88a05148312a0ab87d0f.chunk.js} +1 -1
- package/dist/js/locales/eu-webui-main-json.88a05148312a0ab87d0f.chunk.js.gz +0 -0
- package/dist/js/locales/{fi-webui-main-json.cfafe8b333f680908c7c.chunk.js → fi-webui-main-json.d0132001b2ab71d91849.chunk.js} +1 -1
- package/dist/js/locales/fi-webui-main-json.d0132001b2ab71d91849.chunk.js.gz +0 -0
- package/dist/js/locales/{fr-webui-main-json.b531890c464acae600af.chunk.js → fr-webui-main-json.e4097896401446b1dac4.chunk.js} +1 -1
- package/dist/js/locales/fr-webui-main-json.e4097896401446b1dac4.chunk.js.gz +0 -0
- package/dist/js/locales/{nl-webui-main-json.d7334522200cb4ccc89b.chunk.js → nl-webui-main-json.1d51a3408c4ea0934248.chunk.js} +1 -1
- package/dist/js/locales/nl-webui-main-json.1d51a3408c4ea0934248.chunk.js.gz +0 -0
- package/dist/js/locales/{pt-br-webui-main-json.83c68effad4bf9e5fc04.chunk.js → pt-br-webui-main-json.e26c89370b12b7c6bdbd.chunk.js} +1 -1
- package/dist/js/locales/pt-br-webui-main-json.e26c89370b12b7c6bdbd.chunk.js.gz +0 -0
- package/dist/js/locales/{pt-webui-main-json.9eb3071dba3b77f39a0a.chunk.js → pt-webui-main-json.6f1e5d0e3bb48f6e5ffb.chunk.js} +1 -1
- package/dist/js/locales/pt-webui-main-json.6f1e5d0e3bb48f6e5ffb.chunk.js.gz +0 -0
- package/dist/js/locales/{ro-webui-main-json.07d8014418182764e63f.chunk.js → ro-webui-main-json.c6004505ec260e3b9c21.chunk.js} +1 -1
- package/dist/js/locales/ro-webui-main-json.c6004505ec260e3b9c21.chunk.js.gz +0 -0
- package/dist/js/locales/{sv-webui-main-json.6add822af89dd0d3372a.chunk.js → sv-webui-main-json.700da599befa12ac9ad7.chunk.js} +1 -1
- package/dist/js/locales/sv-webui-main-json.700da599befa12ac9ad7.chunk.js.gz +0 -0
- package/dist/js/{main.414ff2b0f70c8ab15720.entry.js → main.099702709df789fa30f3.entry.js} +3 -3
- package/dist/js/main.099702709df789fa30f3.entry.js.gz +0 -0
- package/dist/js/{main.414ff2b0f70c8ab15720.entry.js.map → main.099702709df789fa30f3.entry.js.map} +1 -1
- package/dist/js/queue.f37a8666d1e2039feffc.chunk.js +2 -0
- package/dist/js/queue.f37a8666d1e2039feffc.chunk.js.gz +0 -0
- package/dist/js/queue.f37a8666d1e2039feffc.chunk.js.map +1 -0
- package/dist/js/{search.15a617d6040e1d03cd3d.chunk.js → search.6e3fdbce6f52bd72880f.chunk.js} +1 -1
- package/dist/js/search.6e3fdbce6f52bd72880f.chunk.js.gz +0 -0
- package/dist/js/{search.15a617d6040e1d03cd3d.chunk.js.map → search.6e3fdbce6f52bd72880f.chunk.js.map} +1 -1
- package/dist/js/settings.0b33a4322b5d830ed3c6.chunk.js +2 -0
- package/dist/js/settings.0b33a4322b5d830ed3c6.chunk.js.gz +0 -0
- package/dist/js/settings.0b33a4322b5d830ed3c6.chunk.js.map +1 -0
- package/dist/js/share.1228a22e1be6550d60ca.chunk.js +2 -0
- package/dist/js/share.1228a22e1be6550d60ca.chunk.js.gz +0 -0
- package/dist/js/share.1228a22e1be6550d60ca.chunk.js.map +1 -0
- package/dist/js/transfers.10e7c184bdc77f52a0cd.chunk.js +2 -0
- package/dist/js/transfers.10e7c184bdc77f52a0cd.chunk.js.gz +0 -0
- package/dist/js/transfers.10e7c184bdc77f52a0cd.chunk.js.map +1 -0
- package/dist/sw.js +1 -1
- package/dist/sw.js.gz +0 -0
- package/package.json +1 -1
- package/dist/js/223.6be6d28c189b00574f35.chunk.js.gz +0 -0
- package/dist/js/544.d99a4d4069f20166b937.chunk.js.gz +0 -0
- package/dist/js/794.3f1ced06bd544ae73da6.chunk.js.gz +0 -0
- package/dist/js/794.3f1ced06bd544ae73da6.chunk.js.map +0 -1
- package/dist/js/favorite-hubs.3dde3b9bcdf0d8266d13.chunk.js +0 -2
- package/dist/js/favorite-hubs.3dde3b9bcdf0d8266d13.chunk.js.gz +0 -0
- package/dist/js/favorite-hubs.3dde3b9bcdf0d8266d13.chunk.js.map +0 -1
- package/dist/js/filelists.e541c709579a8451293b.chunk.js +0 -2
- package/dist/js/filelists.e541c709579a8451293b.chunk.js.gz +0 -0
- package/dist/js/filelists.e541c709579a8451293b.chunk.js.map +0 -1
- package/dist/js/home.5f2411d4aa3246c2601f.chunk.js.gz +0 -0
- package/dist/js/home.5f2411d4aa3246c2601f.chunk.js.map +0 -1
- package/dist/js/hubs.764d8d1abaee9f78f44a.chunk.js.gz +0 -0
- package/dist/js/locales/ca-webui-main-json.ec6ee5857766b8c555c3.chunk.js +0 -1
- package/dist/js/locales/ca-webui-main-json.ec6ee5857766b8c555c3.chunk.js.gz +0 -0
- package/dist/js/locales/da-webui-main-json.eb0a4bae769f6aee4bd0.chunk.js.gz +0 -0
- package/dist/js/locales/de-webui-main-json.965cdd5f4f4bd9c95862.chunk.js.gz +0 -0
- package/dist/js/locales/en-webui-main-json.5d7006152fbd84f6def9.chunk.js.gz +0 -0
- package/dist/js/locales/es-webui-main-json.85d6d3a21a00b15fdb32.chunk.js.gz +0 -0
- package/dist/js/locales/eu-webui-main-json.d719c37626cb960d887e.chunk.js.gz +0 -0
- package/dist/js/locales/fi-webui-main-json.cfafe8b333f680908c7c.chunk.js.gz +0 -0
- package/dist/js/locales/fr-webui-main-json.b531890c464acae600af.chunk.js.gz +0 -0
- package/dist/js/locales/nl-webui-main-json.d7334522200cb4ccc89b.chunk.js.gz +0 -0
- package/dist/js/locales/pt-br-webui-main-json.83c68effad4bf9e5fc04.chunk.js.gz +0 -0
- package/dist/js/locales/pt-webui-main-json.9eb3071dba3b77f39a0a.chunk.js.gz +0 -0
- package/dist/js/locales/ro-webui-main-json.07d8014418182764e63f.chunk.js.gz +0 -0
- package/dist/js/locales/sv-webui-main-json.6add822af89dd0d3372a.chunk.js.gz +0 -0
- package/dist/js/main.414ff2b0f70c8ab15720.entry.js.gz +0 -0
- package/dist/js/queue.df33f14925fec02d507a.chunk.js +0 -2
- package/dist/js/queue.df33f14925fec02d507a.chunk.js.gz +0 -0
- package/dist/js/queue.df33f14925fec02d507a.chunk.js.map +0 -1
- package/dist/js/search.15a617d6040e1d03cd3d.chunk.js.gz +0 -0
- package/dist/js/settings.f0711b74bc5231b909a6.chunk.js +0 -2
- package/dist/js/settings.f0711b74bc5231b909a6.chunk.js.gz +0 -0
- package/dist/js/settings.f0711b74bc5231b909a6.chunk.js.map +0 -1
- package/dist/js/share.943f7da94757758be815.chunk.js +0 -2
- package/dist/js/share.943f7da94757758be815.chunk.js.gz +0 -0
- package/dist/js/share.943f7da94757758be815.chunk.js.map +0 -1
- package/dist/js/transfers.73dbe525c625e1a5e32c.chunk.js +0 -2
- package/dist/js/transfers.73dbe525c625e1a5e32c.chunk.js.gz +0 -0
- package/dist/js/transfers.73dbe525c625e1a5e32c.chunk.js.map +0 -1
- /package/dist/js/{home.5f2411d4aa3246c2601f.chunk.js.LICENSE.txt → home.8c48468bfa50df12e408.chunk.js.LICENSE.txt} +0 -0
- /package/dist/js/{main.414ff2b0f70c8ab15720.entry.js.LICENSE.txt → main.099702709df789fa30f3.entry.js.LICENSE.txt} +0 -0
package/dist/js/{544.d99a4d4069f20166b937.chunk.js.map → 544.b32d041604495053bca1.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js/544.d99a4d4069f20166b937.chunk.js","mappings":"kKAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,wtBAqCtC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iDAAiD,MAAQ,GAAG,SAAW,qPAAqP,eAAiB,CAAC,ytBAAytB,WAAa,MAEllC,S,yTCxBA,MAAMC,EAAkB,CAACC,EAA6BC,IAChDD,EAASE,YAAc,EAClBF,EAASG,KAGX,KAAKF,GAAE,QAAU,YAAa,KAAWG,QAAS,CACvDC,aAAc,qBACdC,QAAS,CACPC,WAAW,QAAWP,EAASE,WAAYD,SAKpCO,EAAwC,EACnDR,WACAS,kBACAR,QAEA,iBAAKS,UAAU,OAAM,WACnB,SAACC,EAAA,EAAI,CAACC,KAAMC,EAAA,EAAcC,UAC1B,gBAAKJ,UAAU,UAAS,UACtB,eAAGK,QAAS,IAAMN,EAAgBT,EAASG,MAAK,UAC7CH,EAASG,MACV,iBAAMO,UAAU,YAAW,SAAEX,EAAgBC,EAAUC,aChBzDe,GAAmB,EAAAC,EAAA,IACvB,UAAkB,gBAAER,EAAe,UAAES,EAAS,EAAEjB,IAC9C,OACE,gBAAKS,UAAU,kBAAiB,SAC7BQ,EAAUC,KAAKnB,IACd,SAACQ,EAAY,CAEXR,SAAUA,EACVS,gBAAiBA,EACjBR,EAAGA,GAHED,EAASG,SAQxB,GACA,CACEiB,KAAM,CACJF,UAAW,EAAGG,SAASC,IACrBA,EAAOC,KAAKC,EAAA,EAAoBC,cAAe,CAAEJ,aAezD,EAV2CK,GACd,IAAvBA,EAAML,MAAMM,QAEZ,SAACC,EAAA,EAAO,CAACC,OAAO,QAAU,sBAAuBH,EAAMzB,EAAG,KAAWG,WAIlE,SAACY,EAAgB,iBAAKU,I,kCClC/B,MAAMI,UAAyB,EAAAC,UAA/B,c,oBASE,KAAAC,aAAgBC,IACd,MAAM,gBAAExB,EAAe,EAAER,GAAMiC,KAAKR,MACpC,OACE,UAAC,WAAc,YACb,iBAAKhB,UAAU,QAAO,WACpB,SAACC,EAAA,EAAI,CAACC,KAAMC,EAAA,EAAcsB,WACzBF,EAAOG,SAGV,gBAAK1B,UAAU,UAAS,UACtB,SAAC,EAAQ,CAACW,MAAOY,EAAOZ,MAAOZ,gBAAiBA,EAAiBR,EAAGA,QAPnDgC,EAAOG,KAU7B,CAeL,CAZE,MAAAC,GACE,MAAM,aAAEC,EAAY,EAAErC,GAAMiC,KAAKR,MACjC,OAA4B,IAAxBY,EAAaX,QACR,SAACC,EAAA,EAAO,CAACC,OAAO,QAAU,sBAAuB5B,EAAG,KAAWG,WAItE,SAACmC,EAAA,GAAS,CAAC7B,UAAU,0BAAyB,SAC3C4B,EAAanB,IAAIe,KAAKF,eAG7B,EAnCO,EAAAQ,UAAY,CAEjB/B,gBAAiB,SAAegC,WAGhCH,aAAc,UAAgBG,YAiClC,U,eCjDA,MAAMC,EAAmB,CACvBC,EACAC,EACA3C,IAEK2C,EAIE,IACFD,GACH,UAACE,EAAA,EAAY,CAAc9B,QAAS6B,EAAY,WAC7C,QAAU,SAAU3C,EAAG,KAAWG,SACnC,SAACO,EAAA,EAAI,CAACC,KAAMC,EAAA,EAAciC,WAFV,WALXH,EAYEI,EAAsD,EACjEJ,YACAd,QACAe,eACA3C,IACA+C,eAEA,iBAAKtC,UAAU,gBAAe,WAC5B,SAACuC,EAAA,EAAQ,CAACC,WAAW,EAAMC,QAAStB,EAAK,SACtCa,EAAiBC,EAAWC,EAAc3C,MAE7C,gBAAKS,UAAU,0BAAyB,SAAEsC,O,0BC9BvC,MAAMI,EAAsD,EACjET,YACAd,QACAe,eACA3C,IACA+C,eAEA,UAACK,EAAA,GAAI,CAAC3C,UAAU,gBAAe,WAC7B,iBAAKA,UAAU,mBAAkB,WAC/B,gBAAKA,UAAU,iCAAgC,SAAEiC,MAC9CC,IACD,SAACU,EAAA,EAAM,CACL5C,UAAU,cACVyC,SAAS,QAAU,SAAUlD,EAAG,KAAWG,QAC3CW,QAAS6B,EACThC,KAAMC,EAAA,EAAciC,aAI1B,gBAAKpC,UAAU,+BAA8B,UAC3C,gBAAKA,UAAU,0BAAyB,SAAEsC,SCqBnCO,EAA+C7B,IAC1D,MAAM,EAAEzB,IAAM,WACPuD,EAAkBC,IAAuB,IAAAC,UAAS,WAEnDC,EAAW,WAAc,KAC7B,MAAM,aAAEC,EAAY,WAAEC,EAAU,cAAEC,EAAa,SAAEC,GAAarC,EAK9D,MClC+B,CAAC1B,IAClC,MAAM,WAAE6D,EAAU,cAAEC,EAAa,aAAEF,EAAY,UAAEI,GAAchE,EA6C/D,MA3CoC,CAClC,CACEoC,KAAM,WACN6B,IAAK,UACLC,KAAMN,EACNO,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAQ,CAACoB,MAAOuC,EAAcnD,gBAAiBA,EAAiBR,EAAGA,KAGxE,CACEmC,KAAM,SACN6B,IAAK,SACLC,KAAML,EACNM,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAgB,CACfqC,aAAcuB,EACdpD,gBAAiBA,EACjBR,EAAGA,KAIT,CACEmC,KAAM,YACN6B,IAAK,YACLC,KAAMJ,EACNK,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAgB,CACfqC,aAAcwB,EACdrD,gBAAiBA,EACjBR,EAAGA,KAIT,CACEmC,KAAM,QACN6B,IAAK,QACLC,KAAMF,EACNG,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAQ,CAACoB,MAAO2C,EAAWvD,gBAAiBA,EAAiBR,EAAGA,KAKxD,EDZNmE,CAAoB,CACzBR,eACAC,aACAC,gBACAE,UARgBD,EAASM,KACvBN,EAASM,KAAKhD,MAAMF,KAAKhB,IAAS,QAAcA,KAChD,IAOF,GACD,IAEGmE,EAAgBX,EAASY,MAAMC,GAAMA,EAAEP,MAAQT,IACrD,IAAKc,EACH,OAAO,KAGT,MAAM3B,EAAYgB,EAASxC,KAAKqD,GAzCd,EAClBC,EACAH,EACAvD,EACAd,KAEA,SAAC4C,EAAA,EAAY,CAEX9B,QAAS,IAAMA,EAAQ0D,EAAQR,KAC/BS,OAAQJ,IAAkBG,EAAQR,IAAG,UAErC,gCACGhE,GAAE,QAAUwE,EAAQR,IAAK,KAAW7D,QAASqE,EAAQrC,QACnDqC,EAAQP,OAAQ,gBAAKxD,UAAU,iBAAgB,SAAE+D,EAAQP,KAAKvC,aAN9D8C,EAAQR,KAmCbU,CAAYH,EAAGhB,EAAkBC,EAAqBxD,KAGlD8B,GAAY,UAAoBgB,EAAuBK,EAC7D,OACE,SAACrB,EAAS,CAERY,UAAWA,EACXd,MAAOyC,EAAclC,KACrBQ,aAAclB,EAAMkB,aACpB3C,EAAGA,EAAC,UAEJ,SAACqE,EAAcH,UAAS,CAAClE,EAAGA,EAAGQ,gBAAiBiB,EAAMjB,mBANjD6D,EAAcL,IAQtB,E,uJEhFCW,GAAU,CAAC,EAEfA,GAAQC,kBAAoB,KAC5BD,GAAQE,cAAgB,IACxBF,GAAQG,OAAS,SAAc,KAAM,QACrCH,GAAQI,OAAS,IACjBJ,GAAQK,mBAAqB,KAEhB,IAAI,KAASL,IAKJ,MAAW,KAAQM,QAAS,KAAQA,OC4B1D,MA+GA,IAAe,EAAAC,EAAA,IACb,EAAAlE,EAAA,IAhHuCS,IACvC,MAAM,EAAEzB,IAAM,UACRmF,GAAW,WAEX,gBACJ3E,EAAe,SACfsD,EAAQ,WACRsB,EAAU,OACVC,EAAM,QACNC,EAAO,aACP3B,EAAY,cACZE,EAAa,WACbD,EAAU,YACV2B,GAEE9D,EADC+D,E,yUAAK,CACN/D,EAXE,0HAaAgE,EAAsC,CAAOC,EAAYC,KAAmB,O,OAAD,E,OAAA,E,EAAA,YAC/E,UACQnF,EACJsD,EACEsB,EAAaA,EAAWC,EAAOO,eAAiBnE,QAASoE,EAC3D,CACEC,YAAeH,GAAkC7B,EAAS3B,KAC1D4D,iBAAkBL,EAClBM,SAAU,KAAsBC,SAElCX,EAEJ,CAAE,MAAOY,GACPC,EAAA,EAAoBC,MAAM,CACxBxE,MAAO5B,GAAE,QAAU,iBAAkB,KAAWG,QAAS,CACvDC,aAAc,yCACdC,QAAS,CACPgG,KAAMvC,KAGVwC,QAASJ,EAAEI,SAEf,EAEA,SACE,KAAM,OAAW,KAAkBC,aAAcb,IACjD1F,GAGFuF,GACF,E,YA9BiF,K,6QA8BhF,EAWKiB,EAAqC,CACzCC,UAAW3C,EAAS3B,KACpBP,OAAO,QAAU,WAAY5B,EAAG,KAAWG,QAC3CQ,KAAMC,EAAA,EAAc8F,SACpBC,UAAU,GAGNC,EAAuBC,EAAA,EAAWC,UAAU,KAAeC,iBACjE,OACE,UAAC,KAAM,YACL,SAAC,KAAK,CACJ7G,KAAM,SACN8G,SACE,SAAC,IAAiB,eAChBC,UAAW,CAAC/G,EAAMgH,EAAeC,IAC/B1B,EAAeyB,EAAeC,GAEhCC,YA1BmB,MAC3B,MAAMlH,EAAOyD,EAAajC,OAAS,EAAIiC,EAAaA,EAAajC,OAAS,GAAK,GAC/E,MAA4B,cAArBoC,EAASuD,KAAKxH,GAAqBK,EAAOA,EAAO4D,EAAS3B,IAAI,EAwBhDmF,GACbC,WACuB,cAArBzD,EAASuD,KAAKxH,GACV,KAAsB2H,UACtB,KAAsBC,KAE5BC,UAAWnG,EAAA,EAAoBoG,kBAC/BC,gBAAgB,QAAU,WAAY5H,EAAG,KAAWG,SAChDqG,OAIV,SAAC,KAAK,CACJqB,OAAK,EACLb,SACE,SAACc,EAAA,EAAU,eACTrH,UAAU,kBACVsH,YAAY,GACRvB,EACAhB,EAAK,WAET,SAAClC,EAAY,CACX9C,gBAAiBiF,EACjB9C,aAAciE,EA5CL,KACnBzB,EAAS,SAAS,OA2C4CU,EACpDlC,aAAcA,EACdE,cAAeA,EACfD,WAAYA,EACZE,SAAUA,WAMrB,GAOiB,CAChB3C,KAAM,CACJyC,WAAYoE,EAAA,EAAeC,sBAC3BpE,cAAeqE,EAAA,EAA2BC,wBAC1CxE,aAAcyE,EAAA,GAAiBC,YAAc,IAAM,KAAkB9B,aACrEzC,SAAU,EAAGuB,SAAQiD,kBAAkBjH,IAC9BiH,EAAejD,EAAOO,eAAiBvE,MAIpD,4B,qICjKF,MAAMkH,EAAcC,GACZA,IAIC,SAAC,KAAK,CAACC,SAAS,QAAU,KAAM,KAAWtI,QAAO,iBAG9CuI,EAA0B,EACrC9G,QACA4G,OACA/H,YACAkI,aAAa,OACbC,aAEA,iBAAKnI,UAAW,IAAW,SAAUA,GAAU,WAC7C,gBAAKA,UAAW,IAAWmI,EAAS,UAAYD,EAAY,qBAAoB,UAC9E,gBAAKlI,UAAU,iBAAiBoI,MAAO,CAAEC,SAAU,UAAU,SAC1DlH,OAGHgH,IAAU,gBAAKnI,UAAU,eAAc,SAAE8H,EAAWC,QAQ7CO,EAAgC,EAAGnH,YAC9C,gBAAKnB,UAAU,SAAQ,UACrB,gBAAKA,UAAU,sBAAqB,UAClC,gBAAKA,UAAU,yBAAwB,SAAEmB,QAUlCwB,EAA6B,I,IAAA,UACxC3C,EAAS,SACTsC,EAAQ,QACRiG,EAAO,UACPC,GAAS,EACNzD,E,yUAAK,GALgC,gDAMpC,OACJ,8BACE/E,UAAW,IACT,UAEA,CAAE,CAAC,GAAGuI,cAAqBA,GAC3B,CAAEC,UAAWA,GACbxI,IAEE+E,EAAK,UAERzC,IAEJ,C,mCC7ED,MAAMmG,EAAa,uBACnB,GACEA,WAAYA,EAEZf,wBAAyBe,EAAa,iBACtCC,gBAAiBD,EAEjBE,oBAAqB,+B,6DCJhB,MAAMC,EAAa,CAAC3B,EAAmBc,IACrC,IAAclH,KAAK,GAAG,KAAiB+G,eAAeX,IAAa,CACxE4B,OAAQd,G","sources":["webpack://airdcpp-webui/./src/components/download/style.css","webpack://airdcpp-webui/./src/components/download/layout/sections/PathListItem.tsx","webpack://airdcpp-webui/./src/components/download/layout/sections/PathList.tsx","webpack://airdcpp-webui/./src/components/download/layout/sections/AccordionTargets.tsx","webpack://airdcpp-webui/./src/components/download/layout/MobileDownloadLayout.tsx","webpack://airdcpp-webui/./src/components/download/layout/NormalDownloadLayout.tsx","webpack://airdcpp-webui/./src/components/download/layout/DownloadView.tsx","webpack://airdcpp-webui/./src/components/download/layout/sections/sections.tsx","webpack://airdcpp-webui/./src/components/download/style.css?6643","webpack://airdcpp-webui/./src/components/download/DownloadDialog.tsx","webpack://airdcpp-webui/./src/components/semantic/Grid.tsx","webpack://airdcpp-webui/./src/constants/FavoriteDirectoryConstants.ts","webpack://airdcpp-webui/./src/services/api/HistoryApi.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.download-dialog .accordion.download-targets {\n overflow-y: auto;\n}\n\n.download-dialog .main-content,\n.download-dialog .mobile.layout {\n display: flex;\n flex-direction: column;\n}\n\n.download-dialog .main-content .list {\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.download-dialog .content > div,\n.download-dialog .ui.grid .column,\n.download-dialog .main-content {\n height: 100%;\n}\n\n.download-dialog .download-handler {\n display: flex;\n align-items: baseline;\n}\n\n.download-dialog .disk-info {\n color: black;\n font-size: 90%;\n font-style: italic;\n}\n\n.download-dialog .normal.layout .four.wide.column {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/download/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAgB;AAClB;;AAEA;;EAEE,aAAa;EACb,sBAAsB;AACxB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA;;;EAGE,YAAY;AACd;;AAEA;EACE,aAAa;EACb,qBAAqB;AACvB;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AAChC\",\"sourcesContent\":[\".download-dialog .accordion.download-targets {\\n overflow-y: auto;\\n}\\n\\n.download-dialog .main-content,\\n.download-dialog .mobile.layout {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.download-dialog .main-content .list {\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n\\n.download-dialog .content > div,\\n.download-dialog .ui.grid .column,\\n.download-dialog .main-content {\\n height: 100%;\\n}\\n\\n.download-dialog .download-handler {\\n display: flex;\\n align-items: baseline;\\n}\\n\\n.download-dialog .disk-info {\\n color: black;\\n font-size: 90%;\\n font-style: italic;\\n}\\n\\n.download-dialog .normal.layout .four.wide.column {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//import PropTypes from 'prop-types';\nimport * as React from 'react';\n\nimport IconConstants from 'constants/IconConstants';\n\nimport Icon from 'components/semantic/Icon';\n\nimport { toI18nKey } from 'utils/TranslationUtils';\nimport { formatSize } from 'utils/ValueFormat';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\nimport { PathDownloadHandler } from '../../types';\n\ninterface PathItemProps {\n pathInfo: API.DiskSpaceInfo;\n downloadHandler: PathDownloadHandler;\n t: UI.TranslateF;\n}\n\nconst formatFreeSpace = (pathInfo: API.DiskSpaceInfo, t: UI.TranslateF) => {\n if (pathInfo.free_space <= 0) {\n return pathInfo.path;\n }\n\n return ` (${t(toI18nKey('spaceFree', UI.Modules.COMMON), {\n defaultValue: '{{freeSpace}} free',\n replace: {\n freeSpace: formatSize(pathInfo.free_space, t),\n },\n })})`;\n};\n\nexport const PathListItem: React.FC<PathItemProps> = ({\n pathInfo,\n downloadHandler,\n t,\n}) => (\n <div className=\"item\">\n <Icon icon={IconConstants.FOLDER} />\n <div className=\"content\">\n <a onClick={() => downloadHandler(pathInfo.path)}>\n {pathInfo.path}\n <span className=\"disk-info\">{formatFreeSpace(pathInfo, t)}</span>\n </a>\n </div>\n </div>\n);\n","import FilesystemConstants from 'constants/FilesystemConstants';\r\n\r\nimport DataProviderDecorator from 'decorators/DataProviderDecorator';\r\n\r\nimport Message from 'components/semantic/Message';\r\n\r\nimport { translate } from 'utils/TranslationUtils';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { PathDownloadHandler } from '../../types';\r\nimport { PathListItem } from './PathListItem';\r\n\r\ninterface PathListProps {\r\n // Function handling the path selection\r\n downloadHandler: PathDownloadHandler;\r\n\r\n // Array of paths to list\r\n paths: string[];\r\n t: UI.TranslateF;\r\n}\r\n\r\ninterface PathListDataProps {\r\n pathInfos: API.DiskSpaceInfo[];\r\n}\r\n\r\nconst PathListWithData = DataProviderDecorator<PathListProps, PathListDataProps>(\r\n function PathList({ downloadHandler, pathInfos, t }) {\r\n return (\r\n <div className=\"ui relaxed list\">\r\n {pathInfos.map((pathInfo) => (\r\n <PathListItem\r\n key={pathInfo.path}\r\n pathInfo={pathInfo}\r\n downloadHandler={downloadHandler}\r\n t={t}\r\n />\r\n ))}\r\n </div>\r\n );\r\n },\r\n {\r\n urls: {\r\n pathInfos: ({ paths }, socket) =>\r\n socket.post(FilesystemConstants.DISK_INFO_URL, { paths }),\r\n },\r\n },\r\n);\r\n\r\nconst PathList: React.FC<PathListProps> = (props) => {\r\n if (props.paths.length === 0) {\r\n return (\r\n <Message title={translate('No paths to display', props.t, UI.Modules.COMMON)} />\r\n );\r\n }\r\n\r\n return <PathListWithData {...props} />;\r\n};\r\n\r\nexport default PathList;\r\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport IconConstants from 'constants/IconConstants';\n\nimport Accordion from 'components/semantic/Accordion';\nimport Icon from 'components/semantic/Icon';\nimport Message from 'components/semantic/Message';\n\nimport { translate } from 'utils/TranslationUtils';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\nimport { PathDownloadHandler } from '../../types';\n\nimport PathList from './PathList';\n\ninterface AccordionTargetsProps {\n groupedPaths: API.GroupedPath[];\n downloadHandler: PathDownloadHandler;\n t: UI.TranslateF;\n}\n\nclass AccordionTargets extends Component<AccordionTargetsProps> {\n static propTypes = {\n // Function handling the path selection. Receives the selected path as argument.\n downloadHandler: PropTypes.func.isRequired,\n\n // Grouped paths to list\n groupedPaths: PropTypes.array.isRequired,\n };\n\n formatParent = (parent: API.GroupedPath) => {\n const { downloadHandler, t } = this.props;\n return (\n <React.Fragment key={parent.name}>\n <div className=\"title\">\n <Icon icon={IconConstants.DROPDOWN} />\n {parent.name}\n </div>\n\n <div className=\"content\">\n <PathList paths={parent.paths} downloadHandler={downloadHandler} t={t} />\n </div>\n </React.Fragment>\n );\n };\n\n render() {\n const { groupedPaths, t } = this.props;\n if (groupedPaths.length === 0) {\n return <Message title={translate('No paths to display', t, UI.Modules.COMMON)} />;\n }\n\n return (\n <Accordion className=\"styled download-targets\">\n {groupedPaths.map(this.formatParent)}\n </Accordion>\n );\n }\n}\n\nexport default AccordionTargets;\n","import * as React from 'react';\r\n\r\nimport { translate } from 'utils/TranslationUtils';\r\n\r\nimport Dropdown from 'components/semantic/Dropdown';\r\nimport MenuItemLink from 'components/semantic/MenuItemLink';\r\n\r\nimport * as UI from 'types/ui';\r\n\r\nimport Icon from 'components/semantic/Icon';\r\nimport { BrowseHandler, DownloadLayoutProps } from '../types';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nconst appendBrowseItem = (\r\n menuItems: React.ReactNode[],\r\n handleBrowse: BrowseHandler,\r\n t: UI.TranslateF,\r\n) => {\r\n if (!handleBrowse) {\r\n return menuItems;\r\n }\r\n\r\n return [\r\n ...menuItems,\r\n <MenuItemLink key=\"browse\" onClick={handleBrowse}>\r\n {translate('Browse', t, UI.Modules.COMMON)}\r\n <Icon icon={IconConstants.BROWSE} />\r\n </MenuItemLink>,\r\n ];\r\n};\r\n\r\nexport const MobileDownloadLayout: React.FC<DownloadLayoutProps> = ({\r\n menuItems,\r\n title,\r\n handleBrowse,\r\n t,\r\n children,\r\n}) => (\r\n <div className=\"mobile layout\">\r\n <Dropdown selection={true} caption={title}>\r\n {appendBrowseItem(menuItems, handleBrowse, t)}\r\n </Dropdown>\r\n <div className=\"ui segment main-content\">{children}</div>\r\n </div>\r\n);\r\n","import * as React from 'react';\n\nimport IconConstants from 'constants/IconConstants';\n\nimport { translate } from 'utils/TranslationUtils';\n\nimport Button from 'components/semantic/Button';\nimport { Grid } from 'components/semantic/Grid';\n\nimport * as UI from 'types/ui';\nimport { DownloadLayoutProps } from '../types';\n\nexport const NormalDownloadLayout: React.FC<DownloadLayoutProps> = ({\n menuItems,\n title,\n handleBrowse,\n t,\n children,\n}) => (\n <Grid className=\"normal layout\">\n <div className=\"four wide column\">\n <div className=\"ui vertical fluid tabular menu\">{menuItems}</div>\n {!!handleBrowse && (\n <Button\n className=\"fluid basic\"\n caption={translate('Browse', t, UI.Modules.COMMON)}\n onClick={handleBrowse}\n icon={IconConstants.BROWSE}\n />\n )}\n </div>\n <div className=\"twelve wide stretched column\">\n <div className=\"ui segment main-content\">{children}</div>\n </div>\n </Grid>\n);\n","import { useState } from 'react';\r\nimport * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { getParentPath } from 'utils/FileUtils';\r\nimport { useMobileLayout } from 'utils/BrowserUtils';\r\nimport { toI18nKey } from 'utils/TranslationUtils';\r\n\r\nimport MenuItemLink from 'components/semantic/MenuItemLink';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { getDownloadSections, DownloadSection } from './sections';\r\nimport { BrowseHandler, PathDownloadHandler } from '../types';\r\n\r\nimport { MobileDownloadLayout } from './MobileDownloadLayout';\r\nimport { NormalDownloadLayout } from './NormalDownloadLayout';\r\n\r\nexport interface DownloadDataProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> {\r\n sharePaths: API.GroupedPath[];\r\n favoritePaths: API.GroupedPath[];\r\n historyPaths: string[];\r\n itemInfo: ItemT;\r\n}\r\n\r\nexport interface DownloadLayoutProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> extends DownloadDataProps<ItemT> {\r\n downloadHandler: PathDownloadHandler;\r\n handleBrowse: BrowseHandler;\r\n}\r\n\r\nconst getMenuItem = (\r\n section: DownloadSection,\r\n activeSection: string,\r\n onClick: (key: string) => void,\r\n t: UI.TranslateF,\r\n) => (\r\n <MenuItemLink\r\n key={section.key}\r\n onClick={() => onClick(section.key)}\r\n active={activeSection === section.key}\r\n >\r\n <>\r\n {t(toI18nKey(section.key, UI.Modules.COMMON), section.name)}\r\n {!!section.list && <div className=\"ui small label\">{section.list.length}</div>}\r\n </>\r\n </MenuItemLink>\r\n);\r\n\r\nexport const DownloadView: React.FC<DownloadLayoutProps> = (props) => {\r\n const { t } = useTranslation();\r\n const [activeSectionKey, setActiveSectionKey] = useState('history');\r\n\r\n const sections = React.useMemo(() => {\r\n const { historyPaths, sharePaths, favoritePaths, itemInfo } = props;\r\n const dupePaths = itemInfo.dupe\r\n ? itemInfo.dupe.paths.map((path) => getParentPath(path))\r\n : [];\r\n\r\n return getDownloadSections({\r\n historyPaths,\r\n sharePaths,\r\n favoritePaths,\r\n dupePaths,\r\n });\r\n }, []);\r\n\r\n const activeSection = sections.find((s) => s.key === activeSectionKey);\r\n if (!activeSection) {\r\n return null;\r\n }\r\n\r\n const menuItems = sections.map((s) =>\r\n getMenuItem(s, activeSectionKey, setActiveSectionKey, t),\r\n );\r\n\r\n const Component = useMobileLayout() ? MobileDownloadLayout : NormalDownloadLayout;\r\n return (\r\n <Component\r\n key={activeSection.key} // Ensure that section-specific data is refetched\r\n menuItems={menuItems}\r\n title={activeSection.name}\r\n handleBrowse={props.handleBrowse}\r\n t={t}\r\n >\r\n <activeSection.component t={t} downloadHandler={props.downloadHandler} />\r\n </Component>\r\n );\r\n};\r\n","import * as React from 'react';\n\nimport PathList from './PathList';\nimport AccordionTargets from './AccordionTargets';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\n\nimport { PathDownloadHandler } from '../../types';\n\nexport interface DownloadSectionChildProps {\n t: UI.TranslateF;\n downloadHandler: PathDownloadHandler;\n}\n\nexport interface DownloadSection {\n name: string;\n key: string;\n list?: string[] | API.GroupedPath[];\n component: React.ComponentType<DownloadSectionChildProps>;\n}\n\ninterface PathInfo {\n sharePaths: API.GroupedPath[];\n favoritePaths: API.GroupedPath[];\n historyPaths: string[];\n dupePaths: string[];\n}\n\nexport const getDownloadSections = (pathInfo: PathInfo) => {\n const { sharePaths, favoritePaths, historyPaths, dupePaths } = pathInfo;\n\n const sections: DownloadSection[] = [\n {\n name: 'Previous',\n key: 'history',\n list: historyPaths,\n component: ({ downloadHandler, t }) => (\n <PathList paths={historyPaths} downloadHandler={downloadHandler} t={t} />\n ),\n },\n {\n name: 'Shared',\n key: 'shared',\n list: sharePaths,\n component: ({ downloadHandler, t }) => (\n <AccordionTargets\n groupedPaths={sharePaths}\n downloadHandler={downloadHandler}\n t={t}\n />\n ),\n },\n {\n name: 'Favorites',\n key: 'favorites',\n list: favoritePaths,\n component: ({ downloadHandler, t }) => (\n <AccordionTargets\n groupedPaths={favoritePaths}\n downloadHandler={downloadHandler}\n t={t}\n />\n ),\n },\n {\n name: 'Dupes',\n key: 'dupes',\n list: dupePaths,\n component: ({ downloadHandler, t }) => (\n <PathList paths={dupePaths} downloadHandler={downloadHandler} t={t} />\n ),\n },\n ];\n\n return sections;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import * as React from 'react';\r\nimport { Route, Routes, useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport ShareConstants from 'constants/ShareConstants';\r\nimport {\r\n default as HistoryConstants,\r\n HistoryStringEnum,\r\n} from 'constants/HistoryConstants';\r\nimport FavoriteDirectoryConstants from 'constants/FavoriteDirectoryConstants';\r\nimport FilesystemConstants from 'constants/FilesystemConstants';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport NotificationActions from 'actions/NotificationActions';\r\nimport LoginStore from 'stores/LoginStore';\r\n\r\nimport DataProviderDecorator, {\r\n DataProviderDecoratorChildProps,\r\n} from 'decorators/DataProviderDecorator';\r\nimport ModalRouteDecorator, {\r\n ModalRouteDecoratorChildProps,\r\n} from 'decorators/ModalRouteDecorator';\r\n\r\nimport RouteModal, { RouteModalProps } from 'components/semantic/RouteModal';\r\nimport { FileBrowserDialog } from 'components/filebrowser';\r\n\r\nimport { runBackgroundSocketAction } from 'utils/ActionUtils';\r\nimport { toI18nKey, translate } from 'utils/TranslationUtils';\r\nimport { addHistory } from 'services/api/HistoryApi';\r\n\r\nimport { DownloadView, DownloadDataProps } from './layout';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport { PathDownloadHandler } from './types';\r\n\r\nimport './style.css';\r\n\r\nexport type DownloadDialogProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> = UI.ItemDownloadHandler<ItemT, Props<ItemT>>;\r\n\r\ntype DownloadDialogRouteProps = ModalRouteDecoratorChildProps;\r\n\r\ninterface DownloadDialogDataProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> extends DataProviderDecoratorChildProps,\r\n DownloadDataProps<ItemT> {}\r\n\r\ntype Props<ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo> =\r\n DownloadDialogProps<ItemT> & DownloadDialogDataProps<ItemT> & DownloadDialogRouteProps;\r\n\r\nconst DownloadDialog: React.FC<Props> = (props) => {\r\n const { t } = useTranslation();\r\n const navigate = useNavigate();\r\n\r\n const {\r\n downloadHandler,\r\n itemInfo,\r\n userGetter,\r\n params,\r\n session,\r\n historyPaths,\r\n favoritePaths,\r\n sharePaths,\r\n handleClose,\r\n ...other\r\n } = props;\r\n\r\n const handleDownload: PathDownloadHandler = async (targetPath, targetFilename) => {\r\n try {\r\n await downloadHandler(\r\n itemInfo,\r\n !!userGetter ? userGetter(params.downloadItemId!, props) : undefined,\r\n {\r\n target_name: !!targetFilename ? targetFilename : itemInfo.name,\r\n target_directory: targetPath,\r\n priority: API.QueuePriorityEnum.DEFAULT,\r\n },\r\n session,\r\n );\r\n } catch (e) {\r\n NotificationActions.error({\r\n title: t(toI18nKey('queueingFailed', UI.Modules.COMMON), {\r\n defaultValue: 'Failed to queue the item {{item.name}}',\r\n replace: {\r\n item: itemInfo,\r\n },\r\n }),\r\n message: e.message,\r\n });\r\n }\r\n\r\n runBackgroundSocketAction(\r\n () => addHistory(HistoryStringEnum.DOWNLOAD_DIR, targetPath),\r\n t,\r\n );\r\n\r\n handleClose();\r\n };\r\n\r\n const getInitialBrowsePath = () => {\r\n const path = historyPaths.length > 0 ? historyPaths[historyPaths.length - 1] : '';\r\n return itemInfo.type.id === 'directory' ? path : path + itemInfo.name;\r\n };\r\n\r\n const handleBrowse = () => {\r\n navigate(`browse`);\r\n };\r\n\r\n const commonDialogProps: RouteModalProps = {\r\n subHeader: itemInfo.name,\r\n title: translate('Download', t, UI.Modules.COMMON),\r\n icon: IconConstants.DOWNLOAD,\r\n closable: false,\r\n };\r\n\r\n const hasFileBrowserAccess = LoginStore.hasAccess(API.AccessEnum.FILESYSTEM_VIEW);\r\n return (\r\n <Routes>\r\n <Route\r\n path={`browse`}\r\n element={\r\n <FileBrowserDialog\r\n onConfirm={(path, directoryPath, fileName) =>\r\n handleDownload(directoryPath, fileName)\r\n }\r\n initialPath={getInitialBrowsePath()}\r\n selectMode={\r\n itemInfo.type.id === 'directory'\r\n ? UI.FileSelectModeEnum.DIRECTORY\r\n : UI.FileSelectModeEnum.FILE\r\n }\r\n historyId={FilesystemConstants.LOCATION_DOWNLOAD}\r\n approveCaption={translate('Download', t, UI.Modules.COMMON)}\r\n {...commonDialogProps}\r\n />\r\n }\r\n />\r\n <Route\r\n index\r\n element={\r\n <RouteModal\r\n className=\"download-dialog\"\r\n fullHeight={true}\r\n {...commonDialogProps}\r\n {...other}\r\n >\r\n <DownloadView\r\n downloadHandler={handleDownload}\r\n handleBrowse={hasFileBrowserAccess ? handleBrowse : undefined}\r\n historyPaths={historyPaths}\r\n favoritePaths={favoritePaths}\r\n sharePaths={sharePaths}\r\n itemInfo={itemInfo}\r\n />\r\n </RouteModal>\r\n }\r\n />\r\n </Routes>\r\n );\r\n};\r\n\r\nexport default ModalRouteDecorator<DownloadDialogProps>(\r\n DataProviderDecorator<\r\n DownloadDialogProps & DownloadDialogRouteProps,\r\n DownloadDialogDataProps\r\n >(DownloadDialog, {\r\n urls: {\r\n sharePaths: ShareConstants.GROUPED_ROOTS_GET_URL,\r\n favoritePaths: FavoriteDirectoryConstants.GROUPED_DIRECTORIES_URL,\r\n historyPaths: HistoryConstants.STRINGS_URL + '/' + HistoryStringEnum.DOWNLOAD_DIR,\r\n itemInfo: ({ params, itemDataGetter }, socket) => {\r\n return itemDataGetter(params.downloadItemId!, socket);\r\n },\r\n },\r\n }),\r\n '/download/:downloadItemId',\r\n);\r\n","import * as React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nimport { Trans } from 'react-i18next';\r\nimport { toI18nKey } from 'utils/TranslationUtils';\r\n\r\nimport * as UI from 'types/ui';\r\n\r\nexport interface RowProps {\r\n title: React.ReactNode;\r\n text?: React.ReactNode;\r\n titleWidth?: string;\r\n className?: string;\r\n noText?: boolean;\r\n}\r\n\r\nconst formatText = (text: React.ReactNode) => {\r\n if (!!text) {\r\n return text;\r\n }\r\n\r\n return <Trans i18nKey={toI18nKey('na', UI.Modules.COMMON)}>N/A</Trans>;\r\n};\r\n\r\nexport const Row: React.FC<RowProps> = ({\r\n title,\r\n text,\r\n className,\r\n titleWidth = 'four',\r\n noText,\r\n}) => (\r\n <div className={classNames('ui row', className)}>\r\n <div className={classNames(noText ? 'sixteen' : titleWidth, 'wide column title')}>\r\n <div className=\"ui tiny header\" style={{ overflow: 'hidden' }}>\r\n {title}\r\n </div>\r\n </div>\r\n {!noText && <div className=\"column value\">{formatText(text)}</div>}\r\n </div>\r\n);\r\n\r\nexport interface HeaderProps {\r\n title: React.ReactNode;\r\n}\r\n\r\nexport const Header: React.FC<HeaderProps> = ({ title }) => (\r\n <div className=\"ui row\">\r\n <div className=\"sixteen wide column\">\r\n <div className=\"ui blue section header\">{title}</div>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\r\n columns?: string;\r\n stackable?: boolean;\r\n}\r\n\r\nexport const Grid: React.FC<GridProps> = ({\r\n className,\r\n children,\r\n columns,\r\n stackable,\r\n ...other\r\n}) => (\r\n <div\r\n className={classNames(\r\n 'ui grid',\r\n //`${columns} column`,\r\n { [`${columns} column`]: !!columns },\r\n { stackable: stackable },\r\n className,\r\n )}\r\n {...other}\r\n >\r\n {children}\r\n </div>\r\n);\r\n","const MODULE_URL = 'favorite_directories';\nexport default {\n MODULE_URL: MODULE_URL,\n\n GROUPED_DIRECTORIES_URL: MODULE_URL + '/grouped_paths',\n DIRECTORIES_URL: MODULE_URL,\n\n DIRECTORIES_UPDATED: 'favorite_directories_updated',\n};\n","import SocketService from 'services/SocketService';\nimport HistoryConstants from 'constants/HistoryConstants';\n\nexport const addHistory = (historyId: string, text: string) => {\n return SocketService.post(`${HistoryConstants.STRINGS_URL}/${historyId}`, {\n string: text,\n });\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","formatFreeSpace","pathInfo","t","free_space","path","COMMON","defaultValue","replace","freeSpace","PathListItem","downloadHandler","className","Icon","icon","IconConstants","FOLDER","onClick","PathListWithData","DataProviderDecorator","pathInfos","map","urls","paths","socket","post","FilesystemConstants","DISK_INFO_URL","props","length","Message","title","AccordionTargets","Component","formatParent","parent","this","DROPDOWN","name","render","groupedPaths","Accordion","propTypes","isRequired","appendBrowseItem","menuItems","handleBrowse","MenuItemLink","BROWSE","MobileDownloadLayout","children","Dropdown","selection","caption","NormalDownloadLayout","Grid","Button","DownloadView","activeSectionKey","setActiveSectionKey","useState","sections","historyPaths","sharePaths","favoritePaths","itemInfo","dupePaths","key","list","component","getDownloadSections","dupe","activeSection","find","s","section","active","getMenuItem","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","ModalRouteDecorator","navigate","userGetter","params","session","handleClose","other","handleDownload","targetPath","targetFilename","downloadItemId","undefined","target_name","target_directory","priority","DEFAULT","e","NotificationActions","error","item","message","DOWNLOAD_DIR","commonDialogProps","subHeader","DOWNLOAD","closable","hasFileBrowserAccess","LoginStore","hasAccess","FILESYSTEM_VIEW","element","onConfirm","directoryPath","fileName","initialPath","type","getInitialBrowsePath","selectMode","DIRECTORY","FILE","historyId","LOCATION_DOWNLOAD","approveCaption","index","RouteModal","fullHeight","ShareConstants","GROUPED_ROOTS_GET_URL","FavoriteDirectoryConstants","GROUPED_DIRECTORIES_URL","HistoryConstants","STRINGS_URL","itemDataGetter","formatText","text","i18nKey","Row","titleWidth","noText","style","overflow","Header","columns","stackable","MODULE_URL","DIRECTORIES_URL","DIRECTORIES_UPDATED","addHistory","string"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"js/544.b32d041604495053bca1.chunk.js","mappings":"kKAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,wtBAqCtC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iDAAiD,MAAQ,GAAG,SAAW,qPAAqP,eAAiB,CAAC,ytBAAytB,WAAa,MAEllC,S,yTCxBA,MAAMC,EAAkB,CAACC,EAA6BC,IAChDD,EAASE,YAAc,EAClBF,EAASG,KAGX,KAAKF,GAAE,QAAU,YAAa,KAAWG,QAAS,CACvDC,aAAc,qBACdC,QAAS,CACPC,WAAW,QAAWP,EAASE,WAAYD,SAKpCO,EAAwC,EACnDR,WACAS,kBACAR,QAEA,iBAAKS,UAAU,OAAM,WACnB,SAACC,EAAA,EAAI,CAACC,KAAMC,EAAA,EAAcC,UAC1B,gBAAKJ,UAAU,UAAS,UACtB,eAAGK,QAAS,IAAMN,EAAgBT,EAASG,MAAK,UAC7CH,EAASG,MACV,iBAAMO,UAAU,YAAW,SAAEX,EAAgBC,EAAUC,aChBzDe,GAAmB,EAAAC,EAAA,IACvB,UAAkB,gBAAER,EAAe,UAAES,EAAS,EAAEjB,IAC9C,OACE,gBAAKS,UAAU,kBAAiB,SAC7BQ,EAAUC,KAAKnB,IACd,SAACQ,EAAY,CAEXR,SAAUA,EACVS,gBAAiBA,EACjBR,EAAGA,GAHED,EAASG,SAQxB,GACA,CACEiB,KAAM,CACJF,UAAW,EAAGG,SAASC,IACrBA,EAAOC,KAAKC,EAAA,EAAoBC,cAAe,CAAEJ,aAezD,EAV2CK,GACd,IAAvBA,EAAML,MAAMM,QAEZ,SAACC,EAAA,EAAO,CAACC,OAAO,QAAU,sBAAuBH,EAAMzB,EAAG,KAAWG,WAIlE,SAACY,EAAgB,iBAAKU,I,kCClC/B,MAAMI,UAAyB,EAAAC,UAA/B,c,oBASE,KAAAC,aAAgBC,IACd,MAAM,gBAAExB,EAAe,EAAER,GAAMiC,KAAKR,MACpC,OACE,UAAC,WAAc,YACb,iBAAKhB,UAAU,QAAO,WACpB,SAACC,EAAA,EAAI,CAACC,KAAMC,EAAA,EAAcsB,WACzBF,EAAOG,SAGV,gBAAK1B,UAAU,UAAS,UACtB,SAAC,EAAQ,CAACW,MAAOY,EAAOZ,MAAOZ,gBAAiBA,EAAiBR,EAAGA,QAPnDgC,EAAOG,KAU7B,CAeL,CAZE,MAAAC,GACE,MAAM,aAAEC,EAAY,EAAErC,GAAMiC,KAAKR,MACjC,OAA4B,IAAxBY,EAAaX,QACR,SAACC,EAAA,EAAO,CAACC,OAAO,QAAU,sBAAuB5B,EAAG,KAAWG,WAItE,SAACmC,EAAA,GAAS,CAAC7B,UAAU,0BAAyB,SAC3C4B,EAAanB,IAAIe,KAAKF,eAG7B,EAnCO,EAAAQ,UAAY,CAEjB/B,gBAAiB,SAAegC,WAGhCH,aAAc,UAAgBG,YAiClC,U,eCjDA,MAAMC,EAAmB,CACvBC,EACAC,EACA3C,IAEK2C,EAIE,IACFD,GACH,UAACE,EAAA,EAAY,CAAc9B,QAAS6B,EAAY,WAC7C,QAAU,SAAU3C,EAAG,KAAWG,SACnC,SAACO,EAAA,EAAI,CAACC,KAAMC,EAAA,EAAciC,WAFV,WALXH,EAYEI,EAAsD,EACjEJ,YACAd,QACAe,eACA3C,IACA+C,eAEA,iBAAKtC,UAAU,gBAAe,WAC5B,SAACuC,EAAA,EAAQ,CAACC,WAAW,EAAMC,QAAStB,EAAK,SACtCa,EAAiBC,EAAWC,EAAc3C,MAE7C,gBAAKS,UAAU,0BAAyB,SAAEsC,O,0BC9BvC,MAAMI,EAAsD,EACjET,YACAd,QACAe,eACA3C,IACA+C,eAEA,UAACK,EAAA,GAAI,CAAC3C,UAAU,gBAAe,WAC7B,iBAAKA,UAAU,mBAAkB,WAC/B,gBAAKA,UAAU,iCAAgC,SAAEiC,MAC9CC,IACD,SAACU,EAAA,EAAM,CACL5C,UAAU,cACVyC,SAAS,QAAU,SAAUlD,EAAG,KAAWG,QAC3CW,QAAS6B,EACThC,KAAMC,EAAA,EAAciC,aAI1B,gBAAKpC,UAAU,+BAA8B,UAC3C,gBAAKA,UAAU,0BAAyB,SAAEsC,SCqBnCO,EAA+C7B,IAC1D,MAAM,EAAEzB,IAAM,WACPuD,EAAkBC,IAAuB,IAAAC,UAAS,WAEnDC,EAAW,WAAc,KAC7B,MAAM,aAAEC,EAAY,WAAEC,EAAU,cAAEC,EAAa,SAAEC,GAAarC,EAK9D,MClC+B,CAAC1B,IAClC,MAAM,WAAE6D,EAAU,cAAEC,EAAa,aAAEF,EAAY,UAAEI,GAAchE,EA6C/D,MA3CoC,CAClC,CACEoC,KAAM,WACN6B,IAAK,UACLC,KAAMN,EACNO,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAQ,CAACoB,MAAOuC,EAAcnD,gBAAiBA,EAAiBR,EAAGA,KAGxE,CACEmC,KAAM,SACN6B,IAAK,SACLC,KAAML,EACNM,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAgB,CACfqC,aAAcuB,EACdpD,gBAAiBA,EACjBR,EAAGA,KAIT,CACEmC,KAAM,YACN6B,IAAK,YACLC,KAAMJ,EACNK,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAgB,CACfqC,aAAcwB,EACdrD,gBAAiBA,EACjBR,EAAGA,KAIT,CACEmC,KAAM,QACN6B,IAAK,QACLC,KAAMF,EACNG,UAAW,EAAG1D,kBAAiBR,QAC7B,SAAC,EAAQ,CAACoB,MAAO2C,EAAWvD,gBAAiBA,EAAiBR,EAAGA,KAKxD,EDZNmE,CAAoB,CACzBR,eACAC,aACAC,gBACAE,UARgBD,EAASM,KACvBN,EAASM,KAAKhD,MAAMF,KAAKhB,IAAS,QAAcA,KAChD,IAOF,GACD,IAEGmE,EAAgBX,EAASY,MAAMC,GAAMA,EAAEP,MAAQT,IACrD,IAAKc,EACH,OAAO,KAGT,MAAM3B,EAAYgB,EAASxC,KAAKqD,GAzCd,EAClBC,EACAH,EACAvD,EACAd,KAEA,SAAC4C,EAAA,EAAY,CAEX9B,QAAS,IAAMA,EAAQ0D,EAAQR,KAC/BS,OAAQJ,IAAkBG,EAAQR,IAAG,UAErC,gCACGhE,GAAE,QAAUwE,EAAQR,IAAK,KAAW7D,QAASqE,EAAQrC,QACnDqC,EAAQP,OAAQ,gBAAKxD,UAAU,iBAAgB,SAAE+D,EAAQP,KAAKvC,aAN9D8C,EAAQR,KAmCbU,CAAYH,EAAGhB,EAAkBC,EAAqBxD,KAGlD8B,GAAY,UAAoBgB,EAAuBK,EAC7D,OACE,SAACrB,EAAS,CAERY,UAAWA,EACXd,MAAOyC,EAAclC,KACrBQ,aAAclB,EAAMkB,aACpB3C,EAAGA,EAAC,UAEJ,SAACqE,EAAcH,UAAS,CAAClE,EAAGA,EAAGQ,gBAAiBiB,EAAMjB,mBANjD6D,EAAcL,IAQtB,E,uJEhFCW,GAAU,CAAC,EAEfA,GAAQC,kBAAoB,KAC5BD,GAAQE,cAAgB,IACxBF,GAAQG,OAAS,SAAc,KAAM,QACrCH,GAAQI,OAAS,IACjBJ,GAAQK,mBAAqB,KAEhB,IAAI,KAASL,IAKJ,MAAW,KAAQM,QAAS,KAAQA,OC4B1D,MA+GA,IAAe,EAAAC,EAAA,IACb,EAAAlE,EAAA,IAhHuCS,IACvC,MAAM,EAAEzB,IAAM,UACRmF,GAAW,WAEX,gBACJ3E,EAAe,SACfsD,EAAQ,WACRsB,EAAU,OACVC,EAAM,QACNC,EAAO,aACP3B,EAAY,cACZE,EAAa,WACbD,EAAU,YACV2B,GAEE9D,EADC+D,E,yUAAK,CACN/D,EAXE,0HAaAgE,EAAsC,CAAOC,EAAYC,KAAmB,O,OAAD,E,OAAA,E,EAAA,YAC/E,UACQnF,EACJsD,EACEsB,EAAaA,EAAWC,EAAOO,eAAiBnE,QAASoE,EAC3D,CACEC,YAAeH,GAAkC7B,EAAS3B,KAC1D4D,iBAAkBL,EAClBM,SAAU,KAAsBC,SAElCX,EAEJ,CAAE,MAAOY,GACPC,EAAA,EAAoBC,MAAM,CACxBxE,MAAO5B,GAAE,QAAU,iBAAkB,KAAWG,QAAS,CACvDC,aAAc,yCACdC,QAAS,CACPgG,KAAMvC,KAGVwC,QAASJ,EAAEI,SAEf,EAEA,SACE,KAAM,OAAW,KAAkBC,aAAcb,IACjD1F,GAGFuF,GACF,E,YA9BiF,K,6QA8BhF,EAWKiB,EAAqC,CACzCC,UAAW3C,EAAS3B,KACpBP,OAAO,QAAU,WAAY5B,EAAG,KAAWG,QAC3CQ,KAAMC,EAAA,EAAc8F,SACpBC,UAAU,GAGNC,EAAuBC,EAAA,EAAWC,UAAU,KAAeC,iBACjE,OACE,UAAC,KAAM,YACL,SAAC,KAAK,CACJ7G,KAAM,SACN8G,SACE,SAAC,IAAiB,eAChBC,UAAW,CAAC/G,EAAMgH,EAAeC,IAC/B1B,EAAeyB,EAAeC,GAEhCC,YA1BmB,MAC3B,MAAMlH,EAAOyD,EAAajC,OAAS,EAAIiC,EAAaA,EAAajC,OAAS,GAAK,GAC/E,MAA4B,cAArBoC,EAASuD,KAAKxH,GAAqBK,EAAOA,EAAO4D,EAAS3B,IAAI,EAwBhDmF,GACbC,WACuB,cAArBzD,EAASuD,KAAKxH,GACV,KAAsB2H,UACtB,KAAsBC,KAE5BC,UAAWnG,EAAA,EAAoBoG,kBAC/BC,gBAAgB,QAAU,WAAY5H,EAAG,KAAWG,SAChDqG,OAIV,SAAC,KAAK,CACJqB,OAAK,EACLb,SACE,SAACc,EAAA,EAAU,eACTrH,UAAU,kBACVsH,YAAY,GACRvB,EACAhB,EAAK,WAET,SAAClC,EAAY,CACX9C,gBAAiBiF,EACjB9C,aAAciE,EA5CL,KACnBzB,EAAS,SAAS,OA2C4CU,EACpDlC,aAAcA,EACdE,cAAeA,EACfD,WAAYA,EACZE,SAAUA,WAMrB,GAOiB,CAChB3C,KAAM,CACJyC,WAAYoE,EAAA,EAAeC,sBAC3BpE,cAAeqE,EAAA,EAA2BC,wBAC1CxE,aAAcyE,EAAA,GAAiBC,YAAc,IAAM,KAAkB9B,aACrEzC,SAAU,EAAGuB,SAAQiD,kBAAkBjH,IAC9BiH,EAAejD,EAAOO,eAAiBvE,MAIpD,4B,qICjKF,MAAMkH,EAAcC,GACZA,IAIC,SAAC,KAAK,CAACC,SAAS,QAAU,KAAM,KAAWtI,QAAO,iBAG9CuI,EAA0B,EACrC9G,QACA4G,OACA/H,YACAkI,aAAa,OACbC,aAEA,iBAAKnI,UAAW,IAAW,SAAUA,GAAU,WAC7C,gBAAKA,UAAW,IAAWmI,EAAS,UAAYD,EAAY,qBAAoB,UAC9E,gBAAKlI,UAAU,iBAAiBoI,MAAO,CAAEC,SAAU,UAAU,SAC1DlH,OAGHgH,IAAU,gBAAKnI,UAAU,eAAc,SAAE8H,EAAWC,QAQ7CO,EAAgC,EAAGnH,YAC9C,gBAAKnB,UAAU,SAAQ,UACrB,gBAAKA,UAAU,sBAAqB,UAClC,gBAAKA,UAAU,yBAAwB,SAAEmB,QAUlCwB,EAA6B,I,IAAA,UACxC3C,EAAS,SACTsC,EAAQ,QACRiG,EAAO,UACPC,GAAS,EACNzD,E,yUAAK,GALgC,gDAMpC,OACJ,8BACE/E,UAAW,IACT,UAEA,CAAE,CAAC,GAAGuI,cAAqBA,GAC3B,CAAEC,UAAWA,GACbxI,IAEE+E,EAAK,UAERzC,IAEJ,C,mCC7ED,MAAMmG,EAAa,uBACnB,GACEA,WAAYA,EAEZf,wBAAyBe,EAAa,iBACtCC,gBAAiBD,EAEjBE,oBAAqB,+B,6DCJhB,MAAMC,EAAa,CAAC3B,EAAmBc,IACrC,IAAclH,KAAK,GAAG,KAAiB+G,eAAeX,IAAa,CACxE4B,OAAQd,G","sources":["webpack://airdcpp-webui/./src/components/download/style.css","webpack://airdcpp-webui/./src/components/download/layout/sections/PathListItem.tsx","webpack://airdcpp-webui/./src/components/download/layout/sections/PathList.tsx","webpack://airdcpp-webui/./src/components/download/layout/sections/AccordionTargets.tsx","webpack://airdcpp-webui/./src/components/download/layout/MobileDownloadLayout.tsx","webpack://airdcpp-webui/./src/components/download/layout/NormalDownloadLayout.tsx","webpack://airdcpp-webui/./src/components/download/layout/DownloadView.tsx","webpack://airdcpp-webui/./src/components/download/layout/sections/sections.tsx","webpack://airdcpp-webui/./src/components/download/style.css?6643","webpack://airdcpp-webui/./src/components/download/DownloadDialog.tsx","webpack://airdcpp-webui/./src/components/semantic/Grid.tsx","webpack://airdcpp-webui/./src/constants/FavoriteDirectoryConstants.ts","webpack://airdcpp-webui/./src/services/api/HistoryApi.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.download-dialog .accordion.download-targets {\n overflow-y: auto;\n}\n\n.download-dialog .main-content,\n.download-dialog .mobile.layout {\n display: flex;\n flex-direction: column;\n}\n\n.download-dialog .main-content .list {\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.download-dialog .content > div,\n.download-dialog .ui.grid .column,\n.download-dialog .main-content {\n height: 100%;\n}\n\n.download-dialog .download-handler {\n display: flex;\n align-items: baseline;\n}\n\n.download-dialog .disk-info {\n color: black;\n font-size: 90%;\n font-style: italic;\n}\n\n.download-dialog .normal.layout .four.wide.column {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/download/style.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAgB;AAClB;;AAEA;;EAEE,aAAa;EACb,sBAAsB;AACxB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA;;;EAGE,YAAY;AACd;;AAEA;EACE,aAAa;EACb,qBAAqB;AACvB;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AAChC\",\"sourcesContent\":[\".download-dialog .accordion.download-targets {\\n overflow-y: auto;\\n}\\n\\n.download-dialog .main-content,\\n.download-dialog .mobile.layout {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.download-dialog .main-content .list {\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n\\n.download-dialog .content > div,\\n.download-dialog .ui.grid .column,\\n.download-dialog .main-content {\\n height: 100%;\\n}\\n\\n.download-dialog .download-handler {\\n display: flex;\\n align-items: baseline;\\n}\\n\\n.download-dialog .disk-info {\\n color: black;\\n font-size: 90%;\\n font-style: italic;\\n}\\n\\n.download-dialog .normal.layout .four.wide.column {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//import PropTypes from 'prop-types';\nimport * as React from 'react';\n\nimport IconConstants from 'constants/IconConstants';\n\nimport Icon from 'components/semantic/Icon';\n\nimport { toI18nKey } from 'utils/TranslationUtils';\nimport { formatSize } from 'utils/ValueFormat';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\nimport { PathDownloadHandler } from '../../types';\n\ninterface PathItemProps {\n pathInfo: API.DiskSpaceInfo;\n downloadHandler: PathDownloadHandler;\n t: UI.TranslateF;\n}\n\nconst formatFreeSpace = (pathInfo: API.DiskSpaceInfo, t: UI.TranslateF) => {\n if (pathInfo.free_space <= 0) {\n return pathInfo.path;\n }\n\n return ` (${t(toI18nKey('spaceFree', UI.Modules.COMMON), {\n defaultValue: '{{freeSpace}} free',\n replace: {\n freeSpace: formatSize(pathInfo.free_space, t),\n },\n })})`;\n};\n\nexport const PathListItem: React.FC<PathItemProps> = ({\n pathInfo,\n downloadHandler,\n t,\n}) => (\n <div className=\"item\">\n <Icon icon={IconConstants.FOLDER} />\n <div className=\"content\">\n <a onClick={() => downloadHandler(pathInfo.path)}>\n {pathInfo.path}\n <span className=\"disk-info\">{formatFreeSpace(pathInfo, t)}</span>\n </a>\n </div>\n </div>\n);\n","import FilesystemConstants from 'constants/FilesystemConstants';\r\n\r\nimport DataProviderDecorator from 'decorators/DataProviderDecorator';\r\n\r\nimport Message from 'components/semantic/Message';\r\n\r\nimport { translate } from 'utils/TranslationUtils';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { PathDownloadHandler } from '../../types';\r\nimport { PathListItem } from './PathListItem';\r\n\r\ninterface PathListProps {\r\n // Function handling the path selection\r\n downloadHandler: PathDownloadHandler;\r\n\r\n // Array of paths to list\r\n paths: string[];\r\n t: UI.TranslateF;\r\n}\r\n\r\ninterface PathListDataProps {\r\n pathInfos: API.DiskSpaceInfo[];\r\n}\r\n\r\nconst PathListWithData = DataProviderDecorator<PathListProps, PathListDataProps>(\r\n function PathList({ downloadHandler, pathInfos, t }) {\r\n return (\r\n <div className=\"ui relaxed list\">\r\n {pathInfos.map((pathInfo) => (\r\n <PathListItem\r\n key={pathInfo.path}\r\n pathInfo={pathInfo}\r\n downloadHandler={downloadHandler}\r\n t={t}\r\n />\r\n ))}\r\n </div>\r\n );\r\n },\r\n {\r\n urls: {\r\n pathInfos: ({ paths }, socket) =>\r\n socket.post(FilesystemConstants.DISK_INFO_URL, { paths }),\r\n },\r\n },\r\n);\r\n\r\nconst PathList: React.FC<PathListProps> = (props) => {\r\n if (props.paths.length === 0) {\r\n return (\r\n <Message title={translate('No paths to display', props.t, UI.Modules.COMMON)} />\r\n );\r\n }\r\n\r\n return <PathListWithData {...props} />;\r\n};\r\n\r\nexport default PathList;\r\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nimport IconConstants from 'constants/IconConstants';\n\nimport Accordion from 'components/semantic/Accordion';\nimport Icon from 'components/semantic/Icon';\nimport Message from 'components/semantic/Message';\n\nimport { translate } from 'utils/TranslationUtils';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\nimport { PathDownloadHandler } from '../../types';\n\nimport PathList from './PathList';\n\ninterface AccordionTargetsProps {\n groupedPaths: API.GroupedPath[];\n downloadHandler: PathDownloadHandler;\n t: UI.TranslateF;\n}\n\nclass AccordionTargets extends Component<AccordionTargetsProps> {\n static propTypes = {\n // Function handling the path selection. Receives the selected path as argument.\n downloadHandler: PropTypes.func.isRequired,\n\n // Grouped paths to list\n groupedPaths: PropTypes.array.isRequired,\n };\n\n formatParent = (parent: API.GroupedPath) => {\n const { downloadHandler, t } = this.props;\n return (\n <React.Fragment key={parent.name}>\n <div className=\"title\">\n <Icon icon={IconConstants.DROPDOWN} />\n {parent.name}\n </div>\n\n <div className=\"content\">\n <PathList paths={parent.paths} downloadHandler={downloadHandler} t={t} />\n </div>\n </React.Fragment>\n );\n };\n\n render() {\n const { groupedPaths, t } = this.props;\n if (groupedPaths.length === 0) {\n return <Message title={translate('No paths to display', t, UI.Modules.COMMON)} />;\n }\n\n return (\n <Accordion className=\"styled download-targets\">\n {groupedPaths.map(this.formatParent)}\n </Accordion>\n );\n }\n}\n\nexport default AccordionTargets;\n","import * as React from 'react';\r\n\r\nimport { translate } from 'utils/TranslationUtils';\r\n\r\nimport Dropdown from 'components/semantic/Dropdown';\r\nimport MenuItemLink from 'components/semantic/MenuItemLink';\r\n\r\nimport * as UI from 'types/ui';\r\n\r\nimport Icon from 'components/semantic/Icon';\r\nimport { BrowseHandler, DownloadLayoutProps } from '../types';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nconst appendBrowseItem = (\r\n menuItems: React.ReactNode[],\r\n handleBrowse: BrowseHandler,\r\n t: UI.TranslateF,\r\n) => {\r\n if (!handleBrowse) {\r\n return menuItems;\r\n }\r\n\r\n return [\r\n ...menuItems,\r\n <MenuItemLink key=\"browse\" onClick={handleBrowse}>\r\n {translate('Browse', t, UI.Modules.COMMON)}\r\n <Icon icon={IconConstants.BROWSE} />\r\n </MenuItemLink>,\r\n ];\r\n};\r\n\r\nexport const MobileDownloadLayout: React.FC<DownloadLayoutProps> = ({\r\n menuItems,\r\n title,\r\n handleBrowse,\r\n t,\r\n children,\r\n}) => (\r\n <div className=\"mobile layout\">\r\n <Dropdown selection={true} caption={title}>\r\n {appendBrowseItem(menuItems, handleBrowse, t)}\r\n </Dropdown>\r\n <div className=\"ui segment main-content\">{children}</div>\r\n </div>\r\n);\r\n","import * as React from 'react';\n\nimport IconConstants from 'constants/IconConstants';\n\nimport { translate } from 'utils/TranslationUtils';\n\nimport Button from 'components/semantic/Button';\nimport { Grid } from 'components/semantic/Grid';\n\nimport * as UI from 'types/ui';\nimport { DownloadLayoutProps } from '../types';\n\nexport const NormalDownloadLayout: React.FC<DownloadLayoutProps> = ({\n menuItems,\n title,\n handleBrowse,\n t,\n children,\n}) => (\n <Grid className=\"normal layout\">\n <div className=\"four wide column\">\n <div className=\"ui vertical fluid tabular menu\">{menuItems}</div>\n {!!handleBrowse && (\n <Button\n className=\"fluid basic\"\n caption={translate('Browse', t, UI.Modules.COMMON)}\n onClick={handleBrowse}\n icon={IconConstants.BROWSE}\n />\n )}\n </div>\n <div className=\"twelve wide stretched column\">\n <div className=\"ui segment main-content\">{children}</div>\n </div>\n </Grid>\n);\n","import { useState } from 'react';\r\nimport * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { getParentPath } from 'utils/FileUtils';\r\nimport { useMobileLayout } from 'utils/BrowserUtils';\r\nimport { toI18nKey } from 'utils/TranslationUtils';\r\n\r\nimport MenuItemLink from 'components/semantic/MenuItemLink';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\n\r\nimport { getDownloadSections, DownloadSection } from './sections';\r\nimport { BrowseHandler, PathDownloadHandler } from '../types';\r\n\r\nimport { MobileDownloadLayout } from './MobileDownloadLayout';\r\nimport { NormalDownloadLayout } from './NormalDownloadLayout';\r\n\r\nexport interface DownloadDataProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> {\r\n sharePaths: API.GroupedPath[];\r\n favoritePaths: API.GroupedPath[];\r\n historyPaths: string[];\r\n itemInfo: ItemT;\r\n}\r\n\r\nexport interface DownloadLayoutProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> extends DownloadDataProps<ItemT> {\r\n downloadHandler: PathDownloadHandler;\r\n handleBrowse: BrowseHandler;\r\n}\r\n\r\nconst getMenuItem = (\r\n section: DownloadSection,\r\n activeSection: string,\r\n onClick: (key: string) => void,\r\n t: UI.TranslateF,\r\n) => (\r\n <MenuItemLink\r\n key={section.key}\r\n onClick={() => onClick(section.key)}\r\n active={activeSection === section.key}\r\n >\r\n <>\r\n {t(toI18nKey(section.key, UI.Modules.COMMON), section.name)}\r\n {!!section.list && <div className=\"ui small label\">{section.list.length}</div>}\r\n </>\r\n </MenuItemLink>\r\n);\r\n\r\nexport const DownloadView: React.FC<DownloadLayoutProps> = (props) => {\r\n const { t } = useTranslation();\r\n const [activeSectionKey, setActiveSectionKey] = useState('history');\r\n\r\n const sections = React.useMemo(() => {\r\n const { historyPaths, sharePaths, favoritePaths, itemInfo } = props;\r\n const dupePaths = itemInfo.dupe\r\n ? itemInfo.dupe.paths.map((path) => getParentPath(path))\r\n : [];\r\n\r\n return getDownloadSections({\r\n historyPaths,\r\n sharePaths,\r\n favoritePaths,\r\n dupePaths,\r\n });\r\n }, []);\r\n\r\n const activeSection = sections.find((s) => s.key === activeSectionKey);\r\n if (!activeSection) {\r\n return null;\r\n }\r\n\r\n const menuItems = sections.map((s) =>\r\n getMenuItem(s, activeSectionKey, setActiveSectionKey, t),\r\n );\r\n\r\n const Component = useMobileLayout() ? MobileDownloadLayout : NormalDownloadLayout;\r\n return (\r\n <Component\r\n key={activeSection.key} // Ensure that section-specific data is refetched\r\n menuItems={menuItems}\r\n title={activeSection.name}\r\n handleBrowse={props.handleBrowse}\r\n t={t}\r\n >\r\n <activeSection.component t={t} downloadHandler={props.downloadHandler} />\r\n </Component>\r\n );\r\n};\r\n","import * as React from 'react';\n\nimport PathList from './PathList';\nimport AccordionTargets from './AccordionTargets';\n\nimport * as API from 'types/api';\nimport * as UI from 'types/ui';\n\nimport { PathDownloadHandler } from '../../types';\n\nexport interface DownloadSectionChildProps {\n t: UI.TranslateF;\n downloadHandler: PathDownloadHandler;\n}\n\nexport interface DownloadSection {\n name: string;\n key: string;\n list?: string[] | API.GroupedPath[];\n component: React.ComponentType<DownloadSectionChildProps>;\n}\n\ninterface PathInfo {\n sharePaths: API.GroupedPath[];\n favoritePaths: API.GroupedPath[];\n historyPaths: string[];\n dupePaths: string[];\n}\n\nexport const getDownloadSections = (pathInfo: PathInfo) => {\n const { sharePaths, favoritePaths, historyPaths, dupePaths } = pathInfo;\n\n const sections: DownloadSection[] = [\n {\n name: 'Previous',\n key: 'history',\n list: historyPaths,\n component: ({ downloadHandler, t }) => (\n <PathList paths={historyPaths} downloadHandler={downloadHandler} t={t} />\n ),\n },\n {\n name: 'Shared',\n key: 'shared',\n list: sharePaths,\n component: ({ downloadHandler, t }) => (\n <AccordionTargets\n groupedPaths={sharePaths}\n downloadHandler={downloadHandler}\n t={t}\n />\n ),\n },\n {\n name: 'Favorites',\n key: 'favorites',\n list: favoritePaths,\n component: ({ downloadHandler, t }) => (\n <AccordionTargets\n groupedPaths={favoritePaths}\n downloadHandler={downloadHandler}\n t={t}\n />\n ),\n },\n {\n name: 'Dupes',\n key: 'dupes',\n list: dupePaths,\n component: ({ downloadHandler, t }) => (\n <PathList paths={dupePaths} downloadHandler={downloadHandler} t={t} />\n ),\n },\n ];\n\n return sections;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import * as React from 'react';\r\nimport { Route, Routes, useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport ShareConstants from 'constants/ShareConstants';\r\nimport {\r\n default as HistoryConstants,\r\n HistoryStringEnum,\r\n} from 'constants/HistoryConstants';\r\nimport FavoriteDirectoryConstants from 'constants/FavoriteDirectoryConstants';\r\nimport FilesystemConstants from 'constants/FilesystemConstants';\r\nimport IconConstants from 'constants/IconConstants';\r\n\r\nimport NotificationActions from 'actions/NotificationActions';\r\nimport LoginStore from 'stores/LoginStore';\r\n\r\nimport DataProviderDecorator, {\r\n DataProviderDecoratorChildProps,\r\n} from 'decorators/DataProviderDecorator';\r\nimport ModalRouteDecorator, {\r\n ModalRouteDecoratorChildProps,\r\n} from 'decorators/ModalRouteDecorator';\r\n\r\nimport RouteModal, { RouteModalProps } from 'components/semantic/RouteModal';\r\nimport { FileBrowserDialog } from 'components/filebrowser';\r\n\r\nimport { runBackgroundSocketAction } from 'utils/ActionUtils';\r\nimport { toI18nKey, translate } from 'utils/TranslationUtils';\r\nimport { addHistory } from 'services/api/HistoryApi';\r\n\r\nimport { DownloadView, DownloadDataProps } from './layout';\r\n\r\nimport * as API from 'types/api';\r\nimport * as UI from 'types/ui';\r\nimport { PathDownloadHandler } from './types';\r\n\r\nimport './style.css';\r\n\r\nexport type DownloadDialogProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> = UI.ItemDownloadHandler<ItemT, Props<ItemT>>;\r\n\r\ntype DownloadDialogRouteProps = ModalRouteDecoratorChildProps;\r\n\r\ninterface DownloadDialogDataProps<\r\n ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo,\r\n> extends DataProviderDecoratorChildProps,\r\n DownloadDataProps<ItemT> {}\r\n\r\ntype Props<ItemT extends UI.DownloadableItemInfo = UI.DownloadableItemInfo> =\r\n DownloadDialogProps<ItemT> & DownloadDialogDataProps<ItemT> & DownloadDialogRouteProps;\r\n\r\nconst DownloadDialog: React.FC<Props> = (props) => {\r\n const { t } = useTranslation();\r\n const navigate = useNavigate();\r\n\r\n const {\r\n downloadHandler,\r\n itemInfo,\r\n userGetter,\r\n params,\r\n session,\r\n historyPaths,\r\n favoritePaths,\r\n sharePaths,\r\n handleClose,\r\n ...other\r\n } = props;\r\n\r\n const handleDownload: PathDownloadHandler = async (targetPath, targetFilename) => {\r\n try {\r\n await downloadHandler(\r\n itemInfo,\r\n !!userGetter ? userGetter(params.downloadItemId!, props) : undefined,\r\n {\r\n target_name: !!targetFilename ? targetFilename : itemInfo.name,\r\n target_directory: targetPath,\r\n priority: API.QueuePriorityEnum.DEFAULT,\r\n },\r\n session,\r\n );\r\n } catch (e) {\r\n NotificationActions.error({\r\n title: t(toI18nKey('queueingFailed', UI.Modules.COMMON), {\r\n defaultValue: 'Failed to queue the item {{item.name}}',\r\n replace: {\r\n item: itemInfo,\r\n },\r\n }),\r\n message: e.message,\r\n });\r\n }\r\n\r\n runBackgroundSocketAction(\r\n () => addHistory(HistoryStringEnum.DOWNLOAD_DIR, targetPath),\r\n t,\r\n );\r\n\r\n handleClose();\r\n };\r\n\r\n const getInitialBrowsePath = () => {\r\n const path = historyPaths.length > 0 ? historyPaths[historyPaths.length - 1] : '';\r\n return itemInfo.type.id === 'directory' ? path : path + itemInfo.name;\r\n };\r\n\r\n const handleBrowse = () => {\r\n navigate(`browse`);\r\n };\r\n\r\n const commonDialogProps: RouteModalProps = {\r\n subHeader: itemInfo.name,\r\n title: translate('Download', t, UI.Modules.COMMON),\r\n icon: IconConstants.DOWNLOAD,\r\n closable: false,\r\n };\r\n\r\n const hasFileBrowserAccess = LoginStore.hasAccess(API.AccessEnum.FILESYSTEM_VIEW);\r\n return (\r\n <Routes>\r\n <Route\r\n path={`browse`}\r\n element={\r\n <FileBrowserDialog\r\n onConfirm={(path, directoryPath, fileName) =>\r\n handleDownload(directoryPath, fileName)\r\n }\r\n initialPath={getInitialBrowsePath()}\r\n selectMode={\r\n itemInfo.type.id === 'directory'\r\n ? UI.FileSelectModeEnum.DIRECTORY\r\n : UI.FileSelectModeEnum.FILE\r\n }\r\n historyId={FilesystemConstants.LOCATION_DOWNLOAD}\r\n approveCaption={translate('Download', t, UI.Modules.COMMON)}\r\n {...commonDialogProps}\r\n />\r\n }\r\n />\r\n <Route\r\n index\r\n element={\r\n <RouteModal\r\n className=\"download-dialog\"\r\n fullHeight={true}\r\n {...commonDialogProps}\r\n {...other}\r\n >\r\n <DownloadView\r\n downloadHandler={handleDownload}\r\n handleBrowse={hasFileBrowserAccess ? handleBrowse : undefined}\r\n historyPaths={historyPaths}\r\n favoritePaths={favoritePaths}\r\n sharePaths={sharePaths}\r\n itemInfo={itemInfo}\r\n />\r\n </RouteModal>\r\n }\r\n />\r\n </Routes>\r\n );\r\n};\r\n\r\nexport default ModalRouteDecorator<DownloadDialogProps>(\r\n DataProviderDecorator<\r\n DownloadDialogProps & DownloadDialogRouteProps,\r\n DownloadDialogDataProps\r\n >(DownloadDialog, {\r\n urls: {\r\n sharePaths: ShareConstants.GROUPED_ROOTS_GET_URL,\r\n favoritePaths: FavoriteDirectoryConstants.GROUPED_DIRECTORIES_URL,\r\n historyPaths: HistoryConstants.STRINGS_URL + '/' + HistoryStringEnum.DOWNLOAD_DIR,\r\n itemInfo: ({ params, itemDataGetter }, socket) => {\r\n return itemDataGetter(params.downloadItemId!, socket);\r\n },\r\n },\r\n }),\r\n '/download/:downloadItemId',\r\n);\r\n","import * as React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nimport { Trans } from 'react-i18next';\r\nimport { toI18nKey } from 'utils/TranslationUtils';\r\n\r\nimport * as UI from 'types/ui';\r\n\r\nexport interface RowProps {\r\n title: React.ReactNode;\r\n text?: React.ReactNode;\r\n titleWidth?: string;\r\n className?: string;\r\n noText?: boolean;\r\n}\r\n\r\nconst formatText = (text: React.ReactNode) => {\r\n if (!!text) {\r\n return text;\r\n }\r\n\r\n return <Trans i18nKey={toI18nKey('na', UI.Modules.COMMON)}>N/A</Trans>;\r\n};\r\n\r\nexport const Row: React.FC<RowProps> = ({\r\n title,\r\n text,\r\n className,\r\n titleWidth = 'four',\r\n noText,\r\n}) => (\r\n <div className={classNames('ui row', className)}>\r\n <div className={classNames(noText ? 'sixteen' : titleWidth, 'wide column title')}>\r\n <div className=\"ui tiny header\" style={{ overflow: 'hidden' }}>\r\n {title}\r\n </div>\r\n </div>\r\n {!noText && <div className=\"column value\">{formatText(text)}</div>}\r\n </div>\r\n);\r\n\r\nexport interface HeaderProps {\r\n title: React.ReactNode;\r\n}\r\n\r\nexport const Header: React.FC<HeaderProps> = ({ title }) => (\r\n <div className=\"ui row\">\r\n <div className=\"sixteen wide column\">\r\n <div className=\"ui blue section header\">{title}</div>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\r\n columns?: string;\r\n stackable?: boolean;\r\n}\r\n\r\nexport const Grid: React.FC<GridProps> = ({\r\n className,\r\n children,\r\n columns,\r\n stackable,\r\n ...other\r\n}) => (\r\n <div\r\n className={classNames(\r\n 'ui grid',\r\n //`${columns} column`,\r\n { [`${columns} column`]: !!columns },\r\n { stackable: stackable },\r\n className,\r\n )}\r\n {...other}\r\n >\r\n {children}\r\n </div>\r\n);\r\n","const MODULE_URL = 'favorite_directories';\nexport default {\n MODULE_URL: MODULE_URL,\n\n GROUPED_DIRECTORIES_URL: MODULE_URL + '/grouped_paths',\n DIRECTORIES_URL: MODULE_URL,\n\n DIRECTORIES_UPDATED: 'favorite_directories_updated',\n};\n","import SocketService from 'services/SocketService';\nimport HistoryConstants from 'constants/HistoryConstants';\n\nexport const addHistory = (historyId: string, text: string) => {\n return SocketService.post(`${HistoryConstants.STRINGS_URL}/${historyId}`, {\n string: text,\n });\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","formatFreeSpace","pathInfo","t","free_space","path","COMMON","defaultValue","replace","freeSpace","PathListItem","downloadHandler","className","Icon","icon","IconConstants","FOLDER","onClick","PathListWithData","DataProviderDecorator","pathInfos","map","urls","paths","socket","post","FilesystemConstants","DISK_INFO_URL","props","length","Message","title","AccordionTargets","Component","formatParent","parent","this","DROPDOWN","name","render","groupedPaths","Accordion","propTypes","isRequired","appendBrowseItem","menuItems","handleBrowse","MenuItemLink","BROWSE","MobileDownloadLayout","children","Dropdown","selection","caption","NormalDownloadLayout","Grid","Button","DownloadView","activeSectionKey","setActiveSectionKey","useState","sections","historyPaths","sharePaths","favoritePaths","itemInfo","dupePaths","key","list","component","getDownloadSections","dupe","activeSection","find","s","section","active","getMenuItem","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","ModalRouteDecorator","navigate","userGetter","params","session","handleClose","other","handleDownload","targetPath","targetFilename","downloadItemId","undefined","target_name","target_directory","priority","DEFAULT","e","NotificationActions","error","item","message","DOWNLOAD_DIR","commonDialogProps","subHeader","DOWNLOAD","closable","hasFileBrowserAccess","LoginStore","hasAccess","FILESYSTEM_VIEW","element","onConfirm","directoryPath","fileName","initialPath","type","getInitialBrowsePath","selectMode","DIRECTORY","FILE","historyId","LOCATION_DOWNLOAD","approveCaption","index","RouteModal","fullHeight","ShareConstants","GROUPED_ROOTS_GET_URL","FavoriteDirectoryConstants","GROUPED_DIRECTORIES_URL","HistoryConstants","STRINGS_URL","itemDataGetter","formatText","text","i18nKey","Row","titleWidth","noText","style","overflow","Header","columns","stackable","MODULE_URL","DIRECTORIES_URL","DIRECTORIES_UPDATED","addHistory","string"],"sourceRoot":""}
|