From 8d90e0399267671ceedaa16c0b2608b8ab58835d Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Fri, 22 Jul 2022 22:15:03 -0700 Subject: [PATCH] Release v0.19.2 (#2194) Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- .../base/console-deployment.yaml | 2 +- .../standalone/console-deployment.yaml | 2 +- models/subnet_api_key_request.go | 88 ----- portal-ui/build/asset-manifest.json | 338 +++++++++--------- portal-ui/build/index.html | 2 +- .../build/static/js/1030.0f668a30.chunk.js | 2 - .../static/js/1030.0f668a30.chunk.js.map | 1 - .../build/static/js/1030.e86b3822.chunk.js | 2 + .../static/js/1030.e86b3822.chunk.js.map | 1 + .../static/js/1182.20097feb.chunk.js.map | 1 - ...097feb.chunk.js => 1182.264ec55e.chunk.js} | 4 +- .../static/js/1182.264ec55e.chunk.js.map | 1 + .../static/js/1199.ad4dcfea.chunk.js.map | 1 - ...4dcfea.chunk.js => 1199.ae4c29a1.chunk.js} | 4 +- .../static/js/1199.ae4c29a1.chunk.js.map | 1 + .../static/js/1267.ee70805c.chunk.js.map | 2 +- .../build/static/js/1268.467f4831.chunk.js | 2 - .../static/js/1268.467f4831.chunk.js.map | 1 - .../build/static/js/1268.cb6b69cf.chunk.js | 2 + .../static/js/1268.cb6b69cf.chunk.js.map | 1 + .../build/static/js/1367.79a7a1e1.chunk.js | 2 + .../static/js/1367.79a7a1e1.chunk.js.map | 1 + .../build/static/js/1367.b54235de.chunk.js | 2 - .../static/js/1367.b54235de.chunk.js.map | 1 - .../build/static/js/137.08d76dda.chunk.js.map | 2 +- .../static/js/1373.c65e2a03.chunk.js.map | 2 +- ...d9847b.chunk.js => 1379.7e93fe73.chunk.js} | 4 +- .../static/js/1379.7e93fe73.chunk.js.map | 1 + .../static/js/1379.f9d9847b.chunk.js.map | 1 - .../static/js/1440.b9a2f19f.chunk.js.map | 2 +- .../static/js/1501.091ebefe.chunk.js.map | 1 - ...1ebefe.chunk.js => 1501.3b54336e.chunk.js} | 4 +- .../static/js/1501.3b54336e.chunk.js.map | 1 + .../static/js/1581.ae6c801c.chunk.js.map | 1 - ...6c801c.chunk.js => 1581.c60c0082.chunk.js} | 4 +- .../static/js/1581.c60c0082.chunk.js.map | 1 + .../static/js/1604.25690eb1.chunk.js.map | 2 +- .../static/js/1705.32ce00fc.chunk.js.map | 2 +- ...2e4356.chunk.js => 1829.223fb198.chunk.js} | 4 +- .../static/js/1829.223fb198.chunk.js.map | 1 + .../static/js/1829.392e4356.chunk.js.map | 1 - .../build/static/js/1913.549c180b.chunk.js | 2 + .../static/js/1913.549c180b.chunk.js.map | 1 + .../build/static/js/1913.b8313ba3.chunk.js | 2 - .../static/js/1913.b8313ba3.chunk.js.map | 1 - .../static/js/1918.4309a619.chunk.js.map | 2 +- .../static/js/2011.f505a73d.chunk.js.map | 2 +- ...1d2b4e.chunk.js => 2112.e0047ff5.chunk.js} | 4 +- .../static/js/2112.e0047ff5.chunk.js.map | 1 + .../static/js/2112.e11d2b4e.chunk.js.map | 1 - .../static/js/2180.03cd0c4b.chunk.js.map | 2 +- ...7344b6.chunk.js => 2185.12707550.chunk.js} | 4 +- .../static/js/2185.12707550.chunk.js.map | 1 + .../static/js/2185.fd7344b6.chunk.js.map | 1 - .../static/js/2338.2f7c2651.chunk.js.map | 1 - ...7c2651.chunk.js => 2338.56b092f8.chunk.js} | 4 +- .../static/js/2338.56b092f8.chunk.js.map | 1 + .../static/js/2426.ab27f6f9.chunk.js.map | 2 +- .../build/static/js/247.7985b2af.chunk.js.map | 1 - ...985b2af.chunk.js => 247.9ce190b5.chunk.js} | 4 +- .../build/static/js/247.9ce190b5.chunk.js.map | 1 + .../static/js/2555.1194f471.chunk.js.map | 1 - ...94f471.chunk.js => 2555.247780d4.chunk.js} | 4 +- .../static/js/2555.247780d4.chunk.js.map | 1 + .../static/js/2567.a2b3cd1e.chunk.js.map | 2 +- .../static/js/2637.0cf5d8c1.chunk.js.map | 1 - ...f5d8c1.chunk.js => 2637.97fe472e.chunk.js} | 4 +- .../static/js/2637.97fe472e.chunk.js.map | 1 + ...a013db.chunk.js => 2661.7fe77f72.chunk.js} | 4 +- .../static/js/2661.7fe77f72.chunk.js.map | 1 + .../static/js/2661.9ba013db.chunk.js.map | 1 - .../build/static/js/2684.266b72ea.chunk.js | 2 - .../static/js/2684.266b72ea.chunk.js.map | 1 - .../build/static/js/2684.52d25845.chunk.js | 2 + .../static/js/2684.52d25845.chunk.js.map | 1 + .../build/static/js/2691.53531251.chunk.js | 2 + .../static/js/2691.53531251.chunk.js.map | 1 + .../static/js/2763.e07e4022.chunk.js.map | 1 - ...7e4022.chunk.js => 2763.ec4b0ce6.chunk.js} | 4 +- .../static/js/2763.ec4b0ce6.chunk.js.map | 1 + .../build/static/js/2850.4f651c06.chunk.js | 2 - .../static/js/2850.4f651c06.chunk.js.map | 1 - .../build/static/js/2850.92a58310.chunk.js | 2 + .../static/js/2850.92a58310.chunk.js.map | 1 + .../static/js/2878.caa1771d.chunk.js.map | 2 +- .../static/js/2983.ae250a0a.chunk.js.map | 1 - ...250a0a.chunk.js => 2983.e938a4fe.chunk.js} | 4 +- .../static/js/2983.e938a4fe.chunk.js.map | 1 + .../static/js/3061.3dc1c36d.chunk.js.map | 1 - ...c1c36d.chunk.js => 3061.bb1cfd70.chunk.js} | 4 +- .../static/js/3061.bb1cfd70.chunk.js.map | 1 + ...4e3b987.chunk.js => 312.cd77f5db.chunk.js} | 4 +- .../build/static/js/312.cd77f5db.chunk.js.map | 1 + .../build/static/js/312.f4e3b987.chunk.js.map | 1 - .../build/static/js/3171.49366c40.chunk.js | 2 - .../static/js/3171.49366c40.chunk.js.map | 1 - .../static/js/3176.121f3468.chunk.js.map | 2 +- .../static/js/3328.5a821c18.chunk.js.map | 1 - ...821c18.chunk.js => 3328.c7470c38.chunk.js} | 4 +- .../static/js/3328.c7470c38.chunk.js.map | 1 + .../static/js/3388.f53bd1d3.chunk.js.map | 2 +- .../build/static/js/343.281e532b.chunk.js.map | 1 - ...81e532b.chunk.js => 343.ce17ca62.chunk.js} | 4 +- .../build/static/js/343.ce17ca62.chunk.js.map | 1 + .../build/static/js/3691.ef93d563.chunk.js | 2 + .../static/js/3691.ef93d563.chunk.js.map | 1 + .../static/js/3762.52bd15d3.chunk.js.map | 2 +- .../static/js/3801.64b6e473.chunk.js.map | 2 +- .../static/js/3909.cdbddaab.chunk.js.map | 2 +- .../static/js/3956.b1e4679e.chunk.js.map | 1 - ...e4679e.chunk.js => 3956.d3b4cd02.chunk.js} | 4 +- .../static/js/3956.d3b4cd02.chunk.js.map | 1 + .../build/static/js/402.2e7c42a8.chunk.js.map | 1 - ...e7c42a8.chunk.js => 402.5c660ae6.chunk.js} | 4 +- .../build/static/js/402.5c660ae6.chunk.js.map | 1 + .../build/static/js/4061.1e4b2694.chunk.js | 2 + .../static/js/4061.1e4b2694.chunk.js.map | 1 + .../build/static/js/4061.8b0d3150.chunk.js | 2 - .../static/js/4061.8b0d3150.chunk.js.map | 1 - ...e21ec7.chunk.js => 4133.45077897.chunk.js} | 4 +- .../static/js/4133.45077897.chunk.js.map | 1 + .../static/js/4133.f6e21ec7.chunk.js.map | 1 - ...715b11.chunk.js => 4209.05b25520.chunk.js} | 4 +- .../static/js/4209.05b25520.chunk.js.map | 1 + .../static/js/4209.db715b11.chunk.js.map | 1 - .../build/static/js/426.9fd80f88.chunk.js.map | 2 +- .../static/js/4298.e8216a7e.chunk.js.map | 2 +- ...49194f.chunk.js => 4335.7187f6a6.chunk.js} | 4 +- .../static/js/4335.7187f6a6.chunk.js.map | 1 + .../static/js/4335.de49194f.chunk.js.map | 1 - ...2cbbb1.chunk.js => 4414.34edf059.chunk.js} | 4 +- .../static/js/4414.34edf059.chunk.js.map | 1 + .../static/js/4414.662cbbb1.chunk.js.map | 1 - .../static/js/4455.596f5a0d.chunk.js.map | 2 +- ...8438c30.chunk.js => 455.6aa5b756.chunk.js} | 4 +- .../build/static/js/455.6aa5b756.chunk.js.map | 1 + .../build/static/js/455.88438c30.chunk.js.map | 1 - ...13cf3d.chunk.js => 4575.5b10a969.chunk.js} | 4 +- ...hunk.js.map => 4575.5b10a969.chunk.js.map} | 2 +- .../static/js/4619.7cdbfcd3.chunk.js.map | 1 - ...dbfcd3.chunk.js => 4619.8d9ee17c.chunk.js} | 4 +- .../static/js/4619.8d9ee17c.chunk.js.map | 1 + .../build/static/js/4653.0d13044c.chunk.js | 2 + .../static/js/4653.0d13044c.chunk.js.map | 1 + .../build/static/js/4653.d49e8d96.chunk.js | 2 - .../static/js/4653.d49e8d96.chunk.js.map | 1 - .../build/static/js/471.e108d937.chunk.js | 2 - .../build/static/js/471.e108d937.chunk.js.map | 1 - .../static/js/4781.f4794912.chunk.js.map | 2 +- .../build/static/js/4814.196595b9.chunk.js | 2 - .../static/js/4814.196595b9.chunk.js.map | 1 - .../build/static/js/4814.6d9edd38.chunk.js | 2 + .../static/js/4814.6d9edd38.chunk.js.map | 1 + .../build/static/js/483.96dc1806.chunk.js.map | 2 +- .../static/js/4873.6fb2072e.chunk.js.map | 2 +- ...ae148e.chunk.js => 4902.8927358d.chunk.js} | 4 +- .../static/js/4902.8927358d.chunk.js.map | 1 + .../static/js/4902.cdae148e.chunk.js.map | 1 - .../static/js/4934.72071d47.chunk.js.map | 2 +- ...95a6c6.chunk.js => 5088.7692271b.chunk.js} | 4 +- .../static/js/5088.7692271b.chunk.js.map | 1 + .../static/js/5088.a995a6c6.chunk.js.map | 1 - .../build/static/js/51.04aad218.chunk.js.map | 1 - ...04aad218.chunk.js => 51.f85def1c.chunk.js} | 4 +- .../build/static/js/51.f85def1c.chunk.js.map | 1 + .../build/static/js/5112.30236fa2.chunk.js | 2 + .../static/js/5112.30236fa2.chunk.js.map | 1 + .../build/static/js/5112.75a42f1e.chunk.js | 2 - .../static/js/5112.75a42f1e.chunk.js.map | 1 - .../build/static/js/5116.0a0ce204.chunk.js | 2 - .../static/js/5116.0a0ce204.chunk.js.map | 1 - .../static/js/5140.b1dd0e23.chunk.js.map | 2 +- .../static/js/5171.e8fc646a.chunk.js.map | 2 +- .../static/js/5223.74d3e072.chunk.js.map | 1 - ...d3e072.chunk.js => 5223.750c796e.chunk.js} | 4 +- .../static/js/5223.750c796e.chunk.js.map | 1 + .../build/static/js/5289.39c9d169.chunk.js | 2 + .../static/js/5289.39c9d169.chunk.js.map | 1 + .../build/static/js/5289.3a83f08f.chunk.js | 2 - .../static/js/5289.3a83f08f.chunk.js.map | 1 - .../build/static/js/5367.64213c2b.chunk.js | 2 - .../static/js/5367.64213c2b.chunk.js.map | 1 - .../build/static/js/5367.991f75c4.chunk.js | 2 + .../static/js/5367.991f75c4.chunk.js.map | 1 + .../build/static/js/5503.1c6f6abf.chunk.js | 2 - .../static/js/5503.1c6f6abf.chunk.js.map | 1 - .../build/static/js/5503.dad78ff5.chunk.js | 2 + .../static/js/5503.dad78ff5.chunk.js.map | 1 + .../build/static/js/5517.52e7db11.chunk.js | 2 - .../static/js/5517.52e7db11.chunk.js.map | 1 - .../build/static/js/5517.84805a10.chunk.js | 2 + .../static/js/5517.84805a10.chunk.js.map | 1 + .../build/static/js/5561.80af3962.chunk.js | 2 - .../static/js/5561.80af3962.chunk.js.map | 1 - .../static/js/5926.4f6370c0.chunk.js.map | 1 - ...6370c0.chunk.js => 5926.c0387455.chunk.js} | 4 +- .../static/js/5926.c0387455.chunk.js.map | 1 + .../build/static/js/5997.59dab43a.chunk.js | 2 + .../static/js/5997.59dab43a.chunk.js.map | 1 + .../build/static/js/5997.9da55e7a.chunk.js | 2 - .../static/js/5997.9da55e7a.chunk.js.map | 1 - .../static/js/6137.2c486126.chunk.js.map | 2 +- .../static/js/6172.b49c709f.chunk.js.map | 2 +- .../build/static/js/6331.839f6bcd.chunk.js | 2 - .../static/js/6331.839f6bcd.chunk.js.map | 1 - .../build/static/js/6331.9d5ff423.chunk.js | 2 + .../static/js/6331.9d5ff423.chunk.js.map | 1 + .../static/js/6431.5f2e5e6e.chunk.js.map | 2 +- .../static/js/6484.3a2447c1.chunk.js.map | 2 +- ...2e1995.chunk.js => 6577.06d06144.chunk.js} | 4 +- .../static/js/6577.06d06144.chunk.js.map | 1 + .../static/js/6577.bc2e1995.chunk.js.map | 1 - .../static/js/6683.f9402dc8.chunk.js.map | 2 +- .../static/js/6763.16fe0032.chunk.js.map | 2 +- .../static/js/6860.e543e229.chunk.js.map | 1 - ...43e229.chunk.js => 6860.f8ff9efd.chunk.js} | 4 +- .../static/js/6860.f8ff9efd.chunk.js.map | 1 + .../build/static/js/6895.5d78f23b.chunk.js | 2 + .../static/js/6895.5d78f23b.chunk.js.map | 1 + .../build/static/js/6895.ee5a09e2.chunk.js | 2 - .../static/js/6895.ee5a09e2.chunk.js.map | 1 - .../build/static/js/6901.5afa1e6f.chunk.js | 2 + .../static/js/6901.5afa1e6f.chunk.js.map | 1 + .../build/static/js/6901.5d2f4df9.chunk.js | 2 - .../static/js/6901.5d2f4df9.chunk.js.map | 1 - .../static/js/6903.f1bd0701.chunk.js.map | 2 +- .../static/js/6914.ed2f1662.chunk.js.map | 2 +- .../build/static/js/692.54f42c01.chunk.js | 2 - .../build/static/js/692.54f42c01.chunk.js.map | 1 - .../build/static/js/692.c28b1b9b.chunk.js | 2 + .../build/static/js/692.c28b1b9b.chunk.js.map | 1 + ...5710fec.chunk.js => 701.05206868.chunk.js} | 4 +- .../build/static/js/701.05206868.chunk.js.map | 1 + .../build/static/js/701.55710fec.chunk.js.map | 1 - .../build/static/js/7021.2deef8ad.chunk.js | 2 - .../static/js/7021.2deef8ad.chunk.js.map | 1 - .../build/static/js/7021.2df7e2e0.chunk.js | 2 + .../static/js/7021.2df7e2e0.chunk.js.map | 1 + .../static/js/7045.bc049940.chunk.js.map | 2 +- .../build/static/js/711.3386a27a.chunk.js.map | 1 - ...386a27a.chunk.js => 711.be9f8284.chunk.js} | 4 +- .../build/static/js/711.be9f8284.chunk.js.map | 1 + .../static/js/7142.4191cc91.chunk.js.map | 2 +- .../static/js/7164.3762a0c0.chunk.js.map | 2 +- ...6a94ef6.chunk.js => 736.66a05831.chunk.js} | 4 +- .../build/static/js/736.66a05831.chunk.js.map | 1 + .../build/static/js/736.e6a94ef6.chunk.js.map | 1 - .../static/js/7438.f6bf1a0d.chunk.js.map | 2 +- .../static/js/7472.f63abe1f.chunk.js.map | 2 +- .../build/static/js/7585.90e7c2ed.chunk.js | 2 + .../static/js/7585.90e7c2ed.chunk.js.map | 1 + .../build/static/js/7585.e2e98a8e.chunk.js | 2 - .../static/js/7585.e2e98a8e.chunk.js.map | 1 - ...8c79fd.chunk.js => 7659.8b358177.chunk.js} | 4 +- .../static/js/7659.8b358177.chunk.js.map | 1 + .../static/js/7659.8c8c79fd.chunk.js.map | 1 - .../build/static/js/7770.5dad74f3.chunk.js | 2 + .../static/js/7770.5dad74f3.chunk.js.map | 1 + .../build/static/js/7770.a3ec3191.chunk.js | 2 - .../static/js/7770.a3ec3191.chunk.js.map | 1 - ...f22df8.chunk.js => 7798.b974925d.chunk.js} | 4 +- .../static/js/7798.b974925d.chunk.js.map | 1 + .../static/js/7798.cbf22df8.chunk.js.map | 1 - ...f43f1a.chunk.js => 7821.bda18452.chunk.js} | 4 +- .../static/js/7821.bda18452.chunk.js.map | 1 + .../static/js/7821.d4f43f1a.chunk.js.map | 1 - ...6e65a5.chunk.js => 7847.6c81d37f.chunk.js} | 4 +- .../static/js/7847.6c81d37f.chunk.js.map | 1 + .../static/js/7847.f16e65a5.chunk.js.map | 1 - .../static/js/8253.ec0f3d9f.chunk.js.map | 2 +- .../static/js/8350.21301b75.chunk.js.map | 1 - ...301b75.chunk.js => 8350.ee721e94.chunk.js} | 4 +- .../static/js/8350.ee721e94.chunk.js.map | 1 + ...c17819.chunk.js => 8391.968204ad.chunk.js} | 4 +- .../static/js/8391.968204ad.chunk.js.map | 1 + .../static/js/8391.b8c17819.chunk.js.map | 1 - .../static/js/8455.54dbbb4e.chunk.js.map | 1 - ...dbbb4e.chunk.js => 8455.6f71a45b.chunk.js} | 4 +- .../static/js/8455.6f71a45b.chunk.js.map | 1 + .../static/js/8495.b1689c2d.chunk.js.map | 2 +- .../build/static/js/8626.58e34c6f.chunk.js | 2 + .../static/js/8626.58e34c6f.chunk.js.map | 1 + .../static/js/8833.12d9406e.chunk.js.map | 1 - ...d9406e.chunk.js => 8833.8e4bf585.chunk.js} | 4 +- .../static/js/8833.8e4bf585.chunk.js.map | 1 + ...b7cf475.chunk.js => 889.43037296.chunk.js} | 4 +- .../build/static/js/889.43037296.chunk.js.map | 1 + .../build/static/js/889.eb7cf475.chunk.js.map | 1 - ...95da85.chunk.js => 8896.86116952.chunk.js} | 4 +- .../static/js/8896.86116952.chunk.js.map | 1 + .../static/js/8896.f395da85.chunk.js.map | 1 - ...a972c5.chunk.js => 8990.194642a8.chunk.js} | 4 +- .../static/js/8990.194642a8.chunk.js.map | 1 + .../static/js/8990.ada972c5.chunk.js.map | 1 - ...b9efcd.chunk.js => 8998.9a18741c.chunk.js} | 4 +- .../static/js/8998.9a18741c.chunk.js.map | 1 + .../static/js/8998.cbb9efcd.chunk.js.map | 1 - ...78af5a.chunk.js => 9088.1edd5d6a.chunk.js} | 4 +- .../static/js/9088.1edd5d6a.chunk.js.map | 1 + .../static/js/9088.5678af5a.chunk.js.map | 1 - .../static/js/9134.3cd624c6.chunk.js.map | 2 +- .../static/js/9145.82dff7c3.chunk.js.map | 2 +- ...bd48cd.chunk.js => 9179.3874e070.chunk.js} | 4 +- .../static/js/9179.3874e070.chunk.js.map | 1 + .../static/js/9179.a7bd48cd.chunk.js.map | 1 - .../static/js/9221.11bbd9dd.chunk.js.map | 1 - ...bbd9dd.chunk.js => 9221.14d6096a.chunk.js} | 4 +- .../static/js/9221.14d6096a.chunk.js.map | 1 + ...2d7320.chunk.js => 9251.4a7c5817.chunk.js} | 4 +- .../static/js/9251.4a7c5817.chunk.js.map | 1 + .../static/js/9251.792d7320.chunk.js.map | 1 - .../build/static/js/9388.20842728.chunk.js | 2 + .../static/js/9388.20842728.chunk.js.map | 1 + .../static/js/9467.da799b88.chunk.js.map | 1 - ...799b88.chunk.js => 9467.e157f032.chunk.js} | 4 +- .../static/js/9467.e157f032.chunk.js.map | 1 + .../static/js/9478.dca1d314.chunk.js.map | 2 +- .../static/js/9561.97ead4fa.chunk.js.map | 1 - ...ead4fa.chunk.js => 9561.bf1e32db.chunk.js} | 4 +- .../static/js/9561.bf1e32db.chunk.js.map | 1 + .../static/js/9611.c217768e.chunk.js.map | 2 +- .../static/js/9942.406de82c.chunk.js.map | 2 +- ...b572bc.chunk.js => 9968.14f204ee.chunk.js} | 4 +- .../static/js/9968.14f204ee.chunk.js.map | 1 + .../static/js/9968.aeb572bc.chunk.js.map | 1 - portal-ui/build/static/js/main.44b939e3.js | 3 + ...CENSE.txt => main.44b939e3.js.LICENSE.txt} | 0 .../build/static/js/main.44b939e3.js.map | 1 + portal-ui/build/static/js/main.d4166b19.js | 3 - .../build/static/js/main.d4166b19.js.map | 1 - restapi/operations/console_api.go | 8 +- 331 files changed, 472 insertions(+), 566 deletions(-) delete mode 100644 models/subnet_api_key_request.go delete mode 100644 portal-ui/build/static/js/1030.0f668a30.chunk.js delete mode 100644 portal-ui/build/static/js/1030.0f668a30.chunk.js.map create mode 100644 portal-ui/build/static/js/1030.e86b3822.chunk.js create mode 100644 portal-ui/build/static/js/1030.e86b3822.chunk.js.map delete mode 100644 portal-ui/build/static/js/1182.20097feb.chunk.js.map rename portal-ui/build/static/js/{1182.20097feb.chunk.js => 1182.264ec55e.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/1182.264ec55e.chunk.js.map delete mode 100644 portal-ui/build/static/js/1199.ad4dcfea.chunk.js.map rename portal-ui/build/static/js/{1199.ad4dcfea.chunk.js => 1199.ae4c29a1.chunk.js} (70%) create mode 100644 portal-ui/build/static/js/1199.ae4c29a1.chunk.js.map delete mode 100644 portal-ui/build/static/js/1268.467f4831.chunk.js delete mode 100644 portal-ui/build/static/js/1268.467f4831.chunk.js.map create mode 100644 portal-ui/build/static/js/1268.cb6b69cf.chunk.js create mode 100644 portal-ui/build/static/js/1268.cb6b69cf.chunk.js.map create mode 100644 portal-ui/build/static/js/1367.79a7a1e1.chunk.js create mode 100644 portal-ui/build/static/js/1367.79a7a1e1.chunk.js.map delete mode 100644 portal-ui/build/static/js/1367.b54235de.chunk.js delete mode 100644 portal-ui/build/static/js/1367.b54235de.chunk.js.map rename portal-ui/build/static/js/{1379.f9d9847b.chunk.js => 1379.7e93fe73.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/1379.7e93fe73.chunk.js.map delete mode 100644 portal-ui/build/static/js/1379.f9d9847b.chunk.js.map delete mode 100644 portal-ui/build/static/js/1501.091ebefe.chunk.js.map rename portal-ui/build/static/js/{1501.091ebefe.chunk.js => 1501.3b54336e.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/1501.3b54336e.chunk.js.map delete mode 100644 portal-ui/build/static/js/1581.ae6c801c.chunk.js.map rename portal-ui/build/static/js/{1581.ae6c801c.chunk.js => 1581.c60c0082.chunk.js} (97%) create mode 100644 portal-ui/build/static/js/1581.c60c0082.chunk.js.map rename portal-ui/build/static/js/{1829.392e4356.chunk.js => 1829.223fb198.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/1829.223fb198.chunk.js.map delete mode 100644 portal-ui/build/static/js/1829.392e4356.chunk.js.map create mode 100644 portal-ui/build/static/js/1913.549c180b.chunk.js create mode 100644 portal-ui/build/static/js/1913.549c180b.chunk.js.map delete mode 100644 portal-ui/build/static/js/1913.b8313ba3.chunk.js delete mode 100644 portal-ui/build/static/js/1913.b8313ba3.chunk.js.map rename portal-ui/build/static/js/{2112.e11d2b4e.chunk.js => 2112.e0047ff5.chunk.js} (90%) create mode 100644 portal-ui/build/static/js/2112.e0047ff5.chunk.js.map delete mode 100644 portal-ui/build/static/js/2112.e11d2b4e.chunk.js.map rename portal-ui/build/static/js/{2185.fd7344b6.chunk.js => 2185.12707550.chunk.js} (95%) create mode 100644 portal-ui/build/static/js/2185.12707550.chunk.js.map delete mode 100644 portal-ui/build/static/js/2185.fd7344b6.chunk.js.map delete mode 100644 portal-ui/build/static/js/2338.2f7c2651.chunk.js.map rename portal-ui/build/static/js/{2338.2f7c2651.chunk.js => 2338.56b092f8.chunk.js} (95%) create mode 100644 portal-ui/build/static/js/2338.56b092f8.chunk.js.map delete mode 100644 portal-ui/build/static/js/247.7985b2af.chunk.js.map rename portal-ui/build/static/js/{247.7985b2af.chunk.js => 247.9ce190b5.chunk.js} (97%) create mode 100644 portal-ui/build/static/js/247.9ce190b5.chunk.js.map delete mode 100644 portal-ui/build/static/js/2555.1194f471.chunk.js.map rename portal-ui/build/static/js/{2555.1194f471.chunk.js => 2555.247780d4.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/2555.247780d4.chunk.js.map delete mode 100644 portal-ui/build/static/js/2637.0cf5d8c1.chunk.js.map rename portal-ui/build/static/js/{2637.0cf5d8c1.chunk.js => 2637.97fe472e.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/2637.97fe472e.chunk.js.map rename portal-ui/build/static/js/{2661.9ba013db.chunk.js => 2661.7fe77f72.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/2661.7fe77f72.chunk.js.map delete mode 100644 portal-ui/build/static/js/2661.9ba013db.chunk.js.map delete mode 100644 portal-ui/build/static/js/2684.266b72ea.chunk.js delete mode 100644 portal-ui/build/static/js/2684.266b72ea.chunk.js.map create mode 100644 portal-ui/build/static/js/2684.52d25845.chunk.js create mode 100644 portal-ui/build/static/js/2684.52d25845.chunk.js.map create mode 100644 portal-ui/build/static/js/2691.53531251.chunk.js create mode 100644 portal-ui/build/static/js/2691.53531251.chunk.js.map delete mode 100644 portal-ui/build/static/js/2763.e07e4022.chunk.js.map rename portal-ui/build/static/js/{2763.e07e4022.chunk.js => 2763.ec4b0ce6.chunk.js} (89%) create mode 100644 portal-ui/build/static/js/2763.ec4b0ce6.chunk.js.map delete mode 100644 portal-ui/build/static/js/2850.4f651c06.chunk.js delete mode 100644 portal-ui/build/static/js/2850.4f651c06.chunk.js.map create mode 100644 portal-ui/build/static/js/2850.92a58310.chunk.js create mode 100644 portal-ui/build/static/js/2850.92a58310.chunk.js.map delete mode 100644 portal-ui/build/static/js/2983.ae250a0a.chunk.js.map rename portal-ui/build/static/js/{2983.ae250a0a.chunk.js => 2983.e938a4fe.chunk.js} (79%) create mode 100644 portal-ui/build/static/js/2983.e938a4fe.chunk.js.map delete mode 100644 portal-ui/build/static/js/3061.3dc1c36d.chunk.js.map rename portal-ui/build/static/js/{3061.3dc1c36d.chunk.js => 3061.bb1cfd70.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/3061.bb1cfd70.chunk.js.map rename portal-ui/build/static/js/{312.f4e3b987.chunk.js => 312.cd77f5db.chunk.js} (87%) create mode 100644 portal-ui/build/static/js/312.cd77f5db.chunk.js.map delete mode 100644 portal-ui/build/static/js/312.f4e3b987.chunk.js.map delete mode 100644 portal-ui/build/static/js/3171.49366c40.chunk.js delete mode 100644 portal-ui/build/static/js/3171.49366c40.chunk.js.map delete mode 100644 portal-ui/build/static/js/3328.5a821c18.chunk.js.map rename portal-ui/build/static/js/{3328.5a821c18.chunk.js => 3328.c7470c38.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/3328.c7470c38.chunk.js.map delete mode 100644 portal-ui/build/static/js/343.281e532b.chunk.js.map rename portal-ui/build/static/js/{343.281e532b.chunk.js => 343.ce17ca62.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/343.ce17ca62.chunk.js.map create mode 100644 portal-ui/build/static/js/3691.ef93d563.chunk.js create mode 100644 portal-ui/build/static/js/3691.ef93d563.chunk.js.map delete mode 100644 portal-ui/build/static/js/3956.b1e4679e.chunk.js.map rename portal-ui/build/static/js/{3956.b1e4679e.chunk.js => 3956.d3b4cd02.chunk.js} (89%) create mode 100644 portal-ui/build/static/js/3956.d3b4cd02.chunk.js.map delete mode 100644 portal-ui/build/static/js/402.2e7c42a8.chunk.js.map rename portal-ui/build/static/js/{402.2e7c42a8.chunk.js => 402.5c660ae6.chunk.js} (90%) create mode 100644 portal-ui/build/static/js/402.5c660ae6.chunk.js.map create mode 100644 portal-ui/build/static/js/4061.1e4b2694.chunk.js create mode 100644 portal-ui/build/static/js/4061.1e4b2694.chunk.js.map delete mode 100644 portal-ui/build/static/js/4061.8b0d3150.chunk.js delete mode 100644 portal-ui/build/static/js/4061.8b0d3150.chunk.js.map rename portal-ui/build/static/js/{4133.f6e21ec7.chunk.js => 4133.45077897.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/4133.45077897.chunk.js.map delete mode 100644 portal-ui/build/static/js/4133.f6e21ec7.chunk.js.map rename portal-ui/build/static/js/{4209.db715b11.chunk.js => 4209.05b25520.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/4209.05b25520.chunk.js.map delete mode 100644 portal-ui/build/static/js/4209.db715b11.chunk.js.map rename portal-ui/build/static/js/{4335.de49194f.chunk.js => 4335.7187f6a6.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/4335.7187f6a6.chunk.js.map delete mode 100644 portal-ui/build/static/js/4335.de49194f.chunk.js.map rename portal-ui/build/static/js/{4414.662cbbb1.chunk.js => 4414.34edf059.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/4414.34edf059.chunk.js.map delete mode 100644 portal-ui/build/static/js/4414.662cbbb1.chunk.js.map rename portal-ui/build/static/js/{455.88438c30.chunk.js => 455.6aa5b756.chunk.js} (88%) create mode 100644 portal-ui/build/static/js/455.6aa5b756.chunk.js.map delete mode 100644 portal-ui/build/static/js/455.88438c30.chunk.js.map rename portal-ui/build/static/js/{4575.7313cf3d.chunk.js => 4575.5b10a969.chunk.js} (99%) rename portal-ui/build/static/js/{4575.7313cf3d.chunk.js.map => 4575.5b10a969.chunk.js.map} (79%) delete mode 100644 portal-ui/build/static/js/4619.7cdbfcd3.chunk.js.map rename portal-ui/build/static/js/{4619.7cdbfcd3.chunk.js => 4619.8d9ee17c.chunk.js} (95%) create mode 100644 portal-ui/build/static/js/4619.8d9ee17c.chunk.js.map create mode 100644 portal-ui/build/static/js/4653.0d13044c.chunk.js create mode 100644 portal-ui/build/static/js/4653.0d13044c.chunk.js.map delete mode 100644 portal-ui/build/static/js/4653.d49e8d96.chunk.js delete mode 100644 portal-ui/build/static/js/4653.d49e8d96.chunk.js.map delete mode 100644 portal-ui/build/static/js/471.e108d937.chunk.js delete mode 100644 portal-ui/build/static/js/471.e108d937.chunk.js.map delete mode 100644 portal-ui/build/static/js/4814.196595b9.chunk.js delete mode 100644 portal-ui/build/static/js/4814.196595b9.chunk.js.map create mode 100644 portal-ui/build/static/js/4814.6d9edd38.chunk.js create mode 100644 portal-ui/build/static/js/4814.6d9edd38.chunk.js.map rename portal-ui/build/static/js/{4902.cdae148e.chunk.js => 4902.8927358d.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/4902.8927358d.chunk.js.map delete mode 100644 portal-ui/build/static/js/4902.cdae148e.chunk.js.map rename portal-ui/build/static/js/{5088.a995a6c6.chunk.js => 5088.7692271b.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/5088.7692271b.chunk.js.map delete mode 100644 portal-ui/build/static/js/5088.a995a6c6.chunk.js.map delete mode 100644 portal-ui/build/static/js/51.04aad218.chunk.js.map rename portal-ui/build/static/js/{51.04aad218.chunk.js => 51.f85def1c.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/51.f85def1c.chunk.js.map create mode 100644 portal-ui/build/static/js/5112.30236fa2.chunk.js create mode 100644 portal-ui/build/static/js/5112.30236fa2.chunk.js.map delete mode 100644 portal-ui/build/static/js/5112.75a42f1e.chunk.js delete mode 100644 portal-ui/build/static/js/5112.75a42f1e.chunk.js.map delete mode 100644 portal-ui/build/static/js/5116.0a0ce204.chunk.js delete mode 100644 portal-ui/build/static/js/5116.0a0ce204.chunk.js.map delete mode 100644 portal-ui/build/static/js/5223.74d3e072.chunk.js.map rename portal-ui/build/static/js/{5223.74d3e072.chunk.js => 5223.750c796e.chunk.js} (96%) create mode 100644 portal-ui/build/static/js/5223.750c796e.chunk.js.map create mode 100644 portal-ui/build/static/js/5289.39c9d169.chunk.js create mode 100644 portal-ui/build/static/js/5289.39c9d169.chunk.js.map delete mode 100644 portal-ui/build/static/js/5289.3a83f08f.chunk.js delete mode 100644 portal-ui/build/static/js/5289.3a83f08f.chunk.js.map delete mode 100644 portal-ui/build/static/js/5367.64213c2b.chunk.js delete mode 100644 portal-ui/build/static/js/5367.64213c2b.chunk.js.map create mode 100644 portal-ui/build/static/js/5367.991f75c4.chunk.js create mode 100644 portal-ui/build/static/js/5367.991f75c4.chunk.js.map delete mode 100644 portal-ui/build/static/js/5503.1c6f6abf.chunk.js delete mode 100644 portal-ui/build/static/js/5503.1c6f6abf.chunk.js.map create mode 100644 portal-ui/build/static/js/5503.dad78ff5.chunk.js create mode 100644 portal-ui/build/static/js/5503.dad78ff5.chunk.js.map delete mode 100644 portal-ui/build/static/js/5517.52e7db11.chunk.js delete mode 100644 portal-ui/build/static/js/5517.52e7db11.chunk.js.map create mode 100644 portal-ui/build/static/js/5517.84805a10.chunk.js create mode 100644 portal-ui/build/static/js/5517.84805a10.chunk.js.map delete mode 100644 portal-ui/build/static/js/5561.80af3962.chunk.js delete mode 100644 portal-ui/build/static/js/5561.80af3962.chunk.js.map delete mode 100644 portal-ui/build/static/js/5926.4f6370c0.chunk.js.map rename portal-ui/build/static/js/{5926.4f6370c0.chunk.js => 5926.c0387455.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/5926.c0387455.chunk.js.map create mode 100644 portal-ui/build/static/js/5997.59dab43a.chunk.js create mode 100644 portal-ui/build/static/js/5997.59dab43a.chunk.js.map delete mode 100644 portal-ui/build/static/js/5997.9da55e7a.chunk.js delete mode 100644 portal-ui/build/static/js/5997.9da55e7a.chunk.js.map delete mode 100644 portal-ui/build/static/js/6331.839f6bcd.chunk.js delete mode 100644 portal-ui/build/static/js/6331.839f6bcd.chunk.js.map create mode 100644 portal-ui/build/static/js/6331.9d5ff423.chunk.js create mode 100644 portal-ui/build/static/js/6331.9d5ff423.chunk.js.map rename portal-ui/build/static/js/{6577.bc2e1995.chunk.js => 6577.06d06144.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/6577.06d06144.chunk.js.map delete mode 100644 portal-ui/build/static/js/6577.bc2e1995.chunk.js.map delete mode 100644 portal-ui/build/static/js/6860.e543e229.chunk.js.map rename portal-ui/build/static/js/{6860.e543e229.chunk.js => 6860.f8ff9efd.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/6860.f8ff9efd.chunk.js.map create mode 100644 portal-ui/build/static/js/6895.5d78f23b.chunk.js create mode 100644 portal-ui/build/static/js/6895.5d78f23b.chunk.js.map delete mode 100644 portal-ui/build/static/js/6895.ee5a09e2.chunk.js delete mode 100644 portal-ui/build/static/js/6895.ee5a09e2.chunk.js.map create mode 100644 portal-ui/build/static/js/6901.5afa1e6f.chunk.js create mode 100644 portal-ui/build/static/js/6901.5afa1e6f.chunk.js.map delete mode 100644 portal-ui/build/static/js/6901.5d2f4df9.chunk.js delete mode 100644 portal-ui/build/static/js/6901.5d2f4df9.chunk.js.map delete mode 100644 portal-ui/build/static/js/692.54f42c01.chunk.js delete mode 100644 portal-ui/build/static/js/692.54f42c01.chunk.js.map create mode 100644 portal-ui/build/static/js/692.c28b1b9b.chunk.js create mode 100644 portal-ui/build/static/js/692.c28b1b9b.chunk.js.map rename portal-ui/build/static/js/{701.55710fec.chunk.js => 701.05206868.chunk.js} (97%) create mode 100644 portal-ui/build/static/js/701.05206868.chunk.js.map delete mode 100644 portal-ui/build/static/js/701.55710fec.chunk.js.map delete mode 100644 portal-ui/build/static/js/7021.2deef8ad.chunk.js delete mode 100644 portal-ui/build/static/js/7021.2deef8ad.chunk.js.map create mode 100644 portal-ui/build/static/js/7021.2df7e2e0.chunk.js create mode 100644 portal-ui/build/static/js/7021.2df7e2e0.chunk.js.map delete mode 100644 portal-ui/build/static/js/711.3386a27a.chunk.js.map rename portal-ui/build/static/js/{711.3386a27a.chunk.js => 711.be9f8284.chunk.js} (91%) create mode 100644 portal-ui/build/static/js/711.be9f8284.chunk.js.map rename portal-ui/build/static/js/{736.e6a94ef6.chunk.js => 736.66a05831.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/736.66a05831.chunk.js.map delete mode 100644 portal-ui/build/static/js/736.e6a94ef6.chunk.js.map create mode 100644 portal-ui/build/static/js/7585.90e7c2ed.chunk.js create mode 100644 portal-ui/build/static/js/7585.90e7c2ed.chunk.js.map delete mode 100644 portal-ui/build/static/js/7585.e2e98a8e.chunk.js delete mode 100644 portal-ui/build/static/js/7585.e2e98a8e.chunk.js.map rename portal-ui/build/static/js/{7659.8c8c79fd.chunk.js => 7659.8b358177.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/7659.8b358177.chunk.js.map delete mode 100644 portal-ui/build/static/js/7659.8c8c79fd.chunk.js.map create mode 100644 portal-ui/build/static/js/7770.5dad74f3.chunk.js create mode 100644 portal-ui/build/static/js/7770.5dad74f3.chunk.js.map delete mode 100644 portal-ui/build/static/js/7770.a3ec3191.chunk.js delete mode 100644 portal-ui/build/static/js/7770.a3ec3191.chunk.js.map rename portal-ui/build/static/js/{7798.cbf22df8.chunk.js => 7798.b974925d.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/7798.b974925d.chunk.js.map delete mode 100644 portal-ui/build/static/js/7798.cbf22df8.chunk.js.map rename portal-ui/build/static/js/{7821.d4f43f1a.chunk.js => 7821.bda18452.chunk.js} (97%) create mode 100644 portal-ui/build/static/js/7821.bda18452.chunk.js.map delete mode 100644 portal-ui/build/static/js/7821.d4f43f1a.chunk.js.map rename portal-ui/build/static/js/{7847.f16e65a5.chunk.js => 7847.6c81d37f.chunk.js} (97%) create mode 100644 portal-ui/build/static/js/7847.6c81d37f.chunk.js.map delete mode 100644 portal-ui/build/static/js/7847.f16e65a5.chunk.js.map delete mode 100644 portal-ui/build/static/js/8350.21301b75.chunk.js.map rename portal-ui/build/static/js/{8350.21301b75.chunk.js => 8350.ee721e94.chunk.js} (91%) create mode 100644 portal-ui/build/static/js/8350.ee721e94.chunk.js.map rename portal-ui/build/static/js/{8391.b8c17819.chunk.js => 8391.968204ad.chunk.js} (97%) create mode 100644 portal-ui/build/static/js/8391.968204ad.chunk.js.map delete mode 100644 portal-ui/build/static/js/8391.b8c17819.chunk.js.map delete mode 100644 portal-ui/build/static/js/8455.54dbbb4e.chunk.js.map rename portal-ui/build/static/js/{8455.54dbbb4e.chunk.js => 8455.6f71a45b.chunk.js} (96%) create mode 100644 portal-ui/build/static/js/8455.6f71a45b.chunk.js.map create mode 100644 portal-ui/build/static/js/8626.58e34c6f.chunk.js create mode 100644 portal-ui/build/static/js/8626.58e34c6f.chunk.js.map delete mode 100644 portal-ui/build/static/js/8833.12d9406e.chunk.js.map rename portal-ui/build/static/js/{8833.12d9406e.chunk.js => 8833.8e4bf585.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/8833.8e4bf585.chunk.js.map rename portal-ui/build/static/js/{889.eb7cf475.chunk.js => 889.43037296.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/889.43037296.chunk.js.map delete mode 100644 portal-ui/build/static/js/889.eb7cf475.chunk.js.map rename portal-ui/build/static/js/{8896.f395da85.chunk.js => 8896.86116952.chunk.js} (83%) create mode 100644 portal-ui/build/static/js/8896.86116952.chunk.js.map delete mode 100644 portal-ui/build/static/js/8896.f395da85.chunk.js.map rename portal-ui/build/static/js/{8990.ada972c5.chunk.js => 8990.194642a8.chunk.js} (87%) create mode 100644 portal-ui/build/static/js/8990.194642a8.chunk.js.map delete mode 100644 portal-ui/build/static/js/8990.ada972c5.chunk.js.map rename portal-ui/build/static/js/{8998.cbb9efcd.chunk.js => 8998.9a18741c.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/8998.9a18741c.chunk.js.map delete mode 100644 portal-ui/build/static/js/8998.cbb9efcd.chunk.js.map rename portal-ui/build/static/js/{9088.5678af5a.chunk.js => 9088.1edd5d6a.chunk.js} (95%) create mode 100644 portal-ui/build/static/js/9088.1edd5d6a.chunk.js.map delete mode 100644 portal-ui/build/static/js/9088.5678af5a.chunk.js.map rename portal-ui/build/static/js/{9179.a7bd48cd.chunk.js => 9179.3874e070.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/9179.3874e070.chunk.js.map delete mode 100644 portal-ui/build/static/js/9179.a7bd48cd.chunk.js.map delete mode 100644 portal-ui/build/static/js/9221.11bbd9dd.chunk.js.map rename portal-ui/build/static/js/{9221.11bbd9dd.chunk.js => 9221.14d6096a.chunk.js} (96%) create mode 100644 portal-ui/build/static/js/9221.14d6096a.chunk.js.map rename portal-ui/build/static/js/{9251.792d7320.chunk.js => 9251.4a7c5817.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/9251.4a7c5817.chunk.js.map delete mode 100644 portal-ui/build/static/js/9251.792d7320.chunk.js.map create mode 100644 portal-ui/build/static/js/9388.20842728.chunk.js create mode 100644 portal-ui/build/static/js/9388.20842728.chunk.js.map delete mode 100644 portal-ui/build/static/js/9467.da799b88.chunk.js.map rename portal-ui/build/static/js/{9467.da799b88.chunk.js => 9467.e157f032.chunk.js} (99%) create mode 100644 portal-ui/build/static/js/9467.e157f032.chunk.js.map delete mode 100644 portal-ui/build/static/js/9561.97ead4fa.chunk.js.map rename portal-ui/build/static/js/{9561.97ead4fa.chunk.js => 9561.bf1e32db.chunk.js} (98%) create mode 100644 portal-ui/build/static/js/9561.bf1e32db.chunk.js.map rename portal-ui/build/static/js/{9968.aeb572bc.chunk.js => 9968.14f204ee.chunk.js} (87%) create mode 100644 portal-ui/build/static/js/9968.14f204ee.chunk.js.map delete mode 100644 portal-ui/build/static/js/9968.aeb572bc.chunk.js.map create mode 100644 portal-ui/build/static/js/main.44b939e3.js rename portal-ui/build/static/js/{main.d4166b19.js.LICENSE.txt => main.44b939e3.js.LICENSE.txt} (100%) create mode 100644 portal-ui/build/static/js/main.44b939e3.js.map delete mode 100644 portal-ui/build/static/js/main.d4166b19.js delete mode 100644 portal-ui/build/static/js/main.d4166b19.js.map diff --git a/k8s/operator-console/base/console-deployment.yaml b/k8s/operator-console/base/console-deployment.yaml index 24343df823..419df5992b 100644 --- a/k8s/operator-console/base/console-deployment.yaml +++ b/k8s/operator-console/base/console-deployment.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: console-sa containers: - name: console - image: 'minio/console:v0.19.1' + image: 'minio/console:v0.19.2' imagePullPolicy: "IfNotPresent" env: - name: CONSOLE_OPERATOR_MODE diff --git a/k8s/operator-console/standalone/console-deployment.yaml b/k8s/operator-console/standalone/console-deployment.yaml index 0df03249e5..b1e77b0755 100644 --- a/k8s/operator-console/standalone/console-deployment.yaml +++ b/k8s/operator-console/standalone/console-deployment.yaml @@ -32,7 +32,7 @@ spec: spec: containers: - name: console - image: 'minio/console:v0.19.1' + image: 'minio/console:v0.19.2' imagePullPolicy: "IfNotPresent" env: - name: CONSOLE_MINIO_SERVER diff --git a/models/subnet_api_key_request.go b/models/subnet_api_key_request.go deleted file mode 100644 index a372bea369..0000000000 --- a/models/subnet_api_key_request.go +++ /dev/null @@ -1,88 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -// This file is part of MinIO Console Server -// Copyright (c) 2022 MinIO, Inc. -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . -// - -package models - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - - "github.com/go-openapi/errors" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// SubnetAPIKeyRequest subnet Api key request -// -// swagger:model subnetApiKeyRequest -type SubnetAPIKeyRequest struct { - - // token - // Required: true - Token *string `json:"token"` -} - -// Validate validates this subnet Api key request -func (m *SubnetAPIKeyRequest) Validate(formats strfmt.Registry) error { - var res []error - - if err := m.validateToken(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (m *SubnetAPIKeyRequest) validateToken(formats strfmt.Registry) error { - - if err := validate.Required("token", "body", m.Token); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this subnet Api key request based on context it is used -func (m *SubnetAPIKeyRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (m *SubnetAPIKeyRequest) MarshalBinary() ([]byte, error) { - if m == nil { - return nil, nil - } - return swag.WriteJSON(m) -} - -// UnmarshalBinary interface implementation -func (m *SubnetAPIKeyRequest) UnmarshalBinary(b []byte) error { - var res SubnetAPIKeyRequest - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *m = res - return nil -} diff --git a/portal-ui/build/asset-manifest.json b/portal-ui/build/asset-manifest.json index 8b8c1d0039..5e55d15b45 100644 --- a/portal-ui/build/asset-manifest.json +++ b/portal-ui/build/asset-manifest.json @@ -1,130 +1,130 @@ { "files": { "main.css": "./static/css/main.90d417ae.css", - "main.js": "./static/js/main.d4166b19.js", + "main.js": "./static/js/main.44b939e3.js", "static/js/6914.ed2f1662.chunk.js": "./static/js/6914.ed2f1662.chunk.js", - "static/js/4209.db715b11.chunk.js": "./static/js/4209.db715b11.chunk.js", - "static/js/1829.392e4356.chunk.js": "./static/js/1829.392e4356.chunk.js", + "static/js/4209.05b25520.chunk.js": "./static/js/4209.05b25520.chunk.js", + "static/js/1829.223fb198.chunk.js": "./static/js/1829.223fb198.chunk.js", "static/js/4455.596f5a0d.chunk.js": "./static/js/4455.596f5a0d.chunk.js", - "static/js/5088.a995a6c6.chunk.js": "./static/js/5088.a995a6c6.chunk.js", + "static/js/5088.7692271b.chunk.js": "./static/js/5088.7692271b.chunk.js", "static/js/5140.b1dd0e23.chunk.js": "./static/js/5140.b1dd0e23.chunk.js", - "static/js/5997.9da55e7a.chunk.js": "./static/js/5997.9da55e7a.chunk.js", + "static/js/5997.59dab43a.chunk.js": "./static/js/5997.59dab43a.chunk.js", "static/js/3176.121f3468.chunk.js": "./static/js/3176.121f3468.chunk.js", "static/js/6137.2c486126.chunk.js": "./static/js/6137.2c486126.chunk.js", "static/js/7045.bc049940.chunk.js": "./static/js/7045.bc049940.chunk.js", - "static/js/9251.792d7320.chunk.js": "./static/js/9251.792d7320.chunk.js", - "static/js/2338.2f7c2651.chunk.js": "./static/js/2338.2f7c2651.chunk.js", - "static/js/4335.de49194f.chunk.js": "./static/js/4335.de49194f.chunk.js", - "static/js/3061.3dc1c36d.chunk.js": "./static/js/3061.3dc1c36d.chunk.js", + "static/js/9251.4a7c5817.chunk.js": "./static/js/9251.4a7c5817.chunk.js", + "static/js/2338.56b092f8.chunk.js": "./static/js/2338.56b092f8.chunk.js", + "static/js/4335.7187f6a6.chunk.js": "./static/js/4335.7187f6a6.chunk.js", + "static/js/3061.bb1cfd70.chunk.js": "./static/js/3061.bb1cfd70.chunk.js", "static/js/6763.16fe0032.chunk.js": "./static/js/6763.16fe0032.chunk.js", - "static/js/4575.7313cf3d.chunk.js": "./static/js/4575.7313cf3d.chunk.js", - "static/js/4061.8b0d3150.chunk.js": "./static/js/4061.8b0d3150.chunk.js", - "static/js/5112.75a42f1e.chunk.js": "./static/js/5112.75a42f1e.chunk.js", + "static/js/4575.5b10a969.chunk.js": "./static/js/4575.5b10a969.chunk.js", + "static/js/4061.1e4b2694.chunk.js": "./static/js/4061.1e4b2694.chunk.js", + "static/js/5112.30236fa2.chunk.js": "./static/js/5112.30236fa2.chunk.js", "static/js/9611.c217768e.chunk.js": "./static/js/9611.c217768e.chunk.js", - "static/js/2637.0cf5d8c1.chunk.js": "./static/js/2637.0cf5d8c1.chunk.js", + "static/js/2637.97fe472e.chunk.js": "./static/js/2637.97fe472e.chunk.js", "static/css/5503.90c9cdc7.chunk.css": "./static/css/5503.90c9cdc7.chunk.css", - "static/js/5503.1c6f6abf.chunk.js": "./static/js/5503.1c6f6abf.chunk.js", - "static/js/5926.4f6370c0.chunk.js": "./static/js/5926.4f6370c0.chunk.js", - "static/js/701.55710fec.chunk.js": "./static/js/701.55710fec.chunk.js", - "static/js/7821.d4f43f1a.chunk.js": "./static/js/7821.d4f43f1a.chunk.js", + "static/js/5503.dad78ff5.chunk.js": "./static/js/5503.dad78ff5.chunk.js", + "static/js/5926.c0387455.chunk.js": "./static/js/5926.c0387455.chunk.js", + "static/js/701.05206868.chunk.js": "./static/js/701.05206868.chunk.js", + "static/js/7821.bda18452.chunk.js": "./static/js/7821.bda18452.chunk.js", "static/css/2850.90c9cdc7.chunk.css": "./static/css/2850.90c9cdc7.chunk.css", - "static/js/2850.4f651c06.chunk.js": "./static/js/2850.4f651c06.chunk.js", - "static/js/1182.20097feb.chunk.js": "./static/js/1182.20097feb.chunk.js", + "static/js/2850.92a58310.chunk.js": "./static/js/2850.92a58310.chunk.js", + "static/js/1182.264ec55e.chunk.js": "./static/js/1182.264ec55e.chunk.js", "static/css/343.90c9cdc7.chunk.css": "./static/css/343.90c9cdc7.chunk.css", - "static/js/343.281e532b.chunk.js": "./static/js/343.281e532b.chunk.js", + "static/js/343.ce17ca62.chunk.js": "./static/js/343.ce17ca62.chunk.js", "static/css/1199.90c9cdc7.chunk.css": "./static/css/1199.90c9cdc7.chunk.css", - "static/js/1199.ad4dcfea.chunk.js": "./static/js/1199.ad4dcfea.chunk.js", + "static/js/1199.ae4c29a1.chunk.js": "./static/js/1199.ae4c29a1.chunk.js", "static/css/5517.90c9cdc7.chunk.css": "./static/css/5517.90c9cdc7.chunk.css", - "static/js/5517.52e7db11.chunk.js": "./static/js/5517.52e7db11.chunk.js", - "static/js/2555.1194f471.chunk.js": "./static/js/2555.1194f471.chunk.js", - "static/js/7585.e2e98a8e.chunk.js": "./static/js/7585.e2e98a8e.chunk.js", - "static/js/4902.cdae148e.chunk.js": "./static/js/4902.cdae148e.chunk.js", - "static/js/7847.f16e65a5.chunk.js": "./static/js/7847.f16e65a5.chunk.js", - "static/js/4653.d49e8d96.chunk.js": "./static/js/4653.d49e8d96.chunk.js", - "static/js/692.54f42c01.chunk.js": "./static/js/692.54f42c01.chunk.js", - "static/js/3171.49366c40.chunk.js": "./static/js/3171.49366c40.chunk.js", - "static/js/736.e6a94ef6.chunk.js": "./static/js/736.e6a94ef6.chunk.js", - "static/js/6577.bc2e1995.chunk.js": "./static/js/6577.bc2e1995.chunk.js", - "static/js/9561.97ead4fa.chunk.js": "./static/js/9561.97ead4fa.chunk.js", - "static/js/6860.e543e229.chunk.js": "./static/js/6860.e543e229.chunk.js", + "static/js/5517.84805a10.chunk.js": "./static/js/5517.84805a10.chunk.js", + "static/js/2555.247780d4.chunk.js": "./static/js/2555.247780d4.chunk.js", + "static/js/7585.90e7c2ed.chunk.js": "./static/js/7585.90e7c2ed.chunk.js", + "static/js/4902.8927358d.chunk.js": "./static/js/4902.8927358d.chunk.js", + "static/js/7847.6c81d37f.chunk.js": "./static/js/7847.6c81d37f.chunk.js", + "static/js/4653.0d13044c.chunk.js": "./static/js/4653.0d13044c.chunk.js", + "static/js/692.c28b1b9b.chunk.js": "./static/js/692.c28b1b9b.chunk.js", + "static/js/8626.58e34c6f.chunk.js": "./static/js/8626.58e34c6f.chunk.js", + "static/js/736.66a05831.chunk.js": "./static/js/736.66a05831.chunk.js", + "static/js/6577.06d06144.chunk.js": "./static/js/6577.06d06144.chunk.js", + "static/js/9561.bf1e32db.chunk.js": "./static/js/9561.bf1e32db.chunk.js", + "static/js/6860.f8ff9efd.chunk.js": "./static/js/6860.f8ff9efd.chunk.js", "static/js/4781.f4794912.chunk.js": "./static/js/4781.f4794912.chunk.js", "static/js/9478.dca1d314.chunk.js": "./static/js/9478.dca1d314.chunk.js", "static/js/7164.3762a0c0.chunk.js": "./static/js/7164.3762a0c0.chunk.js", - "static/js/4414.662cbbb1.chunk.js": "./static/js/4414.662cbbb1.chunk.js", - "static/js/7798.cbf22df8.chunk.js": "./static/js/7798.cbf22df8.chunk.js", - "static/js/8833.12d9406e.chunk.js": "./static/js/8833.12d9406e.chunk.js", - "static/js/471.e108d937.chunk.js": "./static/js/471.e108d937.chunk.js", + "static/js/4414.34edf059.chunk.js": "./static/js/4414.34edf059.chunk.js", + "static/js/7798.b974925d.chunk.js": "./static/js/7798.b974925d.chunk.js", + "static/js/8833.8e4bf585.chunk.js": "./static/js/8833.8e4bf585.chunk.js", + "static/js/9388.20842728.chunk.js": "./static/js/9388.20842728.chunk.js", "static/js/483.96dc1806.chunk.js": "./static/js/483.96dc1806.chunk.js", - "static/js/9467.da799b88.chunk.js": "./static/js/9467.da799b88.chunk.js", - "static/js/6895.ee5a09e2.chunk.js": "./static/js/6895.ee5a09e2.chunk.js", - "static/js/1379.f9d9847b.chunk.js": "./static/js/1379.f9d9847b.chunk.js", - "static/js/6331.839f6bcd.chunk.js": "./static/js/6331.839f6bcd.chunk.js", - "static/js/4133.f6e21ec7.chunk.js": "./static/js/4133.f6e21ec7.chunk.js", + "static/js/9467.e157f032.chunk.js": "./static/js/9467.e157f032.chunk.js", + "static/js/6895.5d78f23b.chunk.js": "./static/js/6895.5d78f23b.chunk.js", + "static/js/1379.7e93fe73.chunk.js": "./static/js/1379.7e93fe73.chunk.js", + "static/js/6331.9d5ff423.chunk.js": "./static/js/6331.9d5ff423.chunk.js", + "static/js/4133.45077897.chunk.js": "./static/js/4133.45077897.chunk.js", "static/css/1367.90c9cdc7.chunk.css": "./static/css/1367.90c9cdc7.chunk.css", - "static/js/1367.b54235de.chunk.js": "./static/js/1367.b54235de.chunk.js", - "static/js/3956.b1e4679e.chunk.js": "./static/js/3956.b1e4679e.chunk.js", - "static/js/9221.11bbd9dd.chunk.js": "./static/js/9221.11bbd9dd.chunk.js", - "static/js/8896.f395da85.chunk.js": "./static/js/8896.f395da85.chunk.js", + "static/js/1367.79a7a1e1.chunk.js": "./static/js/1367.79a7a1e1.chunk.js", + "static/js/3956.d3b4cd02.chunk.js": "./static/js/3956.d3b4cd02.chunk.js", + "static/js/9221.14d6096a.chunk.js": "./static/js/9221.14d6096a.chunk.js", + "static/js/8896.86116952.chunk.js": "./static/js/8896.86116952.chunk.js", "static/js/9134.3cd624c6.chunk.js": "./static/js/9134.3cd624c6.chunk.js", "static/css/1268.90c9cdc7.chunk.css": "./static/css/1268.90c9cdc7.chunk.css", - "static/js/1268.467f4831.chunk.js": "./static/js/1268.467f4831.chunk.js", - "static/js/1030.0f668a30.chunk.js": "./static/js/1030.0f668a30.chunk.js", + "static/js/1268.cb6b69cf.chunk.js": "./static/js/1268.cb6b69cf.chunk.js", + "static/js/1030.e86b3822.chunk.js": "./static/js/1030.e86b3822.chunk.js", "static/js/9145.82dff7c3.chunk.js": "./static/js/9145.82dff7c3.chunk.js", - "static/js/8998.cbb9efcd.chunk.js": "./static/js/8998.cbb9efcd.chunk.js", - "static/js/1501.091ebefe.chunk.js": "./static/js/1501.091ebefe.chunk.js", - "static/js/7770.a3ec3191.chunk.js": "./static/js/7770.a3ec3191.chunk.js", + "static/js/8998.9a18741c.chunk.js": "./static/js/8998.9a18741c.chunk.js", + "static/js/1501.3b54336e.chunk.js": "./static/js/1501.3b54336e.chunk.js", + "static/js/7770.5dad74f3.chunk.js": "./static/js/7770.5dad74f3.chunk.js", "static/js/426.9fd80f88.chunk.js": "./static/js/426.9fd80f88.chunk.js", "static/js/4298.e8216a7e.chunk.js": "./static/js/4298.e8216a7e.chunk.js", "static/js/2878.caa1771d.chunk.js": "./static/js/2878.caa1771d.chunk.js", "static/js/8495.b1689c2d.chunk.js": "./static/js/8495.b1689c2d.chunk.js", "static/js/4934.72071d47.chunk.js": "./static/js/4934.72071d47.chunk.js", "static/js/9942.406de82c.chunk.js": "./static/js/9942.406de82c.chunk.js", - "static/js/7021.2deef8ad.chunk.js": "./static/js/7021.2deef8ad.chunk.js", - "static/js/2684.266b72ea.chunk.js": "./static/js/2684.266b72ea.chunk.js", + "static/js/7021.2df7e2e0.chunk.js": "./static/js/7021.2df7e2e0.chunk.js", + "static/js/2684.52d25845.chunk.js": "./static/js/2684.52d25845.chunk.js", "static/js/6683.f9402dc8.chunk.js": "./static/js/6683.f9402dc8.chunk.js", - "static/js/8350.21301b75.chunk.js": "./static/js/8350.21301b75.chunk.js", + "static/js/8350.ee721e94.chunk.js": "./static/js/8350.ee721e94.chunk.js", "static/js/4873.6fb2072e.chunk.js": "./static/js/4873.6fb2072e.chunk.js", - "static/js/5367.64213c2b.chunk.js": "./static/js/5367.64213c2b.chunk.js", - "static/js/5223.74d3e072.chunk.js": "./static/js/5223.74d3e072.chunk.js", - "static/js/7659.8c8c79fd.chunk.js": "./static/js/7659.8c8c79fd.chunk.js", - "static/js/9968.aeb572bc.chunk.js": "./static/js/9968.aeb572bc.chunk.js", + "static/js/5367.991f75c4.chunk.js": "./static/js/5367.991f75c4.chunk.js", + "static/js/5223.750c796e.chunk.js": "./static/js/5223.750c796e.chunk.js", + "static/js/7659.8b358177.chunk.js": "./static/js/7659.8b358177.chunk.js", + "static/js/9968.14f204ee.chunk.js": "./static/js/9968.14f204ee.chunk.js", "static/js/2180.03cd0c4b.chunk.js": "./static/js/2180.03cd0c4b.chunk.js", "static/js/8253.ec0f3d9f.chunk.js": "./static/js/8253.ec0f3d9f.chunk.js", - "static/js/3328.5a821c18.chunk.js": "./static/js/3328.5a821c18.chunk.js", + "static/js/3328.c7470c38.chunk.js": "./static/js/3328.c7470c38.chunk.js", "static/js/1440.b9a2f19f.chunk.js": "./static/js/1440.b9a2f19f.chunk.js", - "static/js/9179.a7bd48cd.chunk.js": "./static/js/9179.a7bd48cd.chunk.js", - "static/js/51.04aad218.chunk.js": "./static/js/51.04aad218.chunk.js", - "static/js/711.3386a27a.chunk.js": "./static/js/711.3386a27a.chunk.js", - "static/js/6901.5d2f4df9.chunk.js": "./static/js/6901.5d2f4df9.chunk.js", - "static/js/2185.fd7344b6.chunk.js": "./static/js/2185.fd7344b6.chunk.js", - "static/js/312.f4e3b987.chunk.js": "./static/js/312.f4e3b987.chunk.js", - "static/js/2112.e11d2b4e.chunk.js": "./static/js/2112.e11d2b4e.chunk.js", - "static/js/4619.7cdbfcd3.chunk.js": "./static/js/4619.7cdbfcd3.chunk.js", - "static/js/8990.ada972c5.chunk.js": "./static/js/8990.ada972c5.chunk.js", - "static/js/8455.54dbbb4e.chunk.js": "./static/js/8455.54dbbb4e.chunk.js", + "static/js/9179.3874e070.chunk.js": "./static/js/9179.3874e070.chunk.js", + "static/js/51.f85def1c.chunk.js": "./static/js/51.f85def1c.chunk.js", + "static/js/711.be9f8284.chunk.js": "./static/js/711.be9f8284.chunk.js", + "static/js/6901.5afa1e6f.chunk.js": "./static/js/6901.5afa1e6f.chunk.js", + "static/js/2185.12707550.chunk.js": "./static/js/2185.12707550.chunk.js", + "static/js/312.cd77f5db.chunk.js": "./static/js/312.cd77f5db.chunk.js", + "static/js/2112.e0047ff5.chunk.js": "./static/js/2112.e0047ff5.chunk.js", + "static/js/4619.8d9ee17c.chunk.js": "./static/js/4619.8d9ee17c.chunk.js", + "static/js/8990.194642a8.chunk.js": "./static/js/8990.194642a8.chunk.js", + "static/js/8455.6f71a45b.chunk.js": "./static/js/8455.6f71a45b.chunk.js", "static/css/1913.90c9cdc7.chunk.css": "./static/css/1913.90c9cdc7.chunk.css", - "static/js/1913.b8313ba3.chunk.js": "./static/js/1913.b8313ba3.chunk.js", + "static/js/1913.549c180b.chunk.js": "./static/js/1913.549c180b.chunk.js", "static/js/1604.25690eb1.chunk.js": "./static/js/1604.25690eb1.chunk.js", - "static/js/8391.b8c17819.chunk.js": "./static/js/8391.b8c17819.chunk.js", - "static/js/402.2e7c42a8.chunk.js": "./static/js/402.2e7c42a8.chunk.js", + "static/js/8391.968204ad.chunk.js": "./static/js/8391.968204ad.chunk.js", + "static/js/402.5c660ae6.chunk.js": "./static/js/402.5c660ae6.chunk.js", "static/js/1705.32ce00fc.chunk.js": "./static/js/1705.32ce00fc.chunk.js", - "static/js/1581.ae6c801c.chunk.js": "./static/js/1581.ae6c801c.chunk.js", - "static/js/455.88438c30.chunk.js": "./static/js/455.88438c30.chunk.js", - "static/js/2661.9ba013db.chunk.js": "./static/js/2661.9ba013db.chunk.js", - "static/js/889.eb7cf475.chunk.js": "./static/js/889.eb7cf475.chunk.js", - "static/js/9088.5678af5a.chunk.js": "./static/js/9088.5678af5a.chunk.js", - "static/js/247.7985b2af.chunk.js": "./static/js/247.7985b2af.chunk.js", - "static/js/2763.e07e4022.chunk.js": "./static/js/2763.e07e4022.chunk.js", + "static/js/1581.c60c0082.chunk.js": "./static/js/1581.c60c0082.chunk.js", + "static/js/455.6aa5b756.chunk.js": "./static/js/455.6aa5b756.chunk.js", + "static/js/2661.7fe77f72.chunk.js": "./static/js/2661.7fe77f72.chunk.js", + "static/js/889.43037296.chunk.js": "./static/js/889.43037296.chunk.js", + "static/js/9088.1edd5d6a.chunk.js": "./static/js/9088.1edd5d6a.chunk.js", + "static/js/247.9ce190b5.chunk.js": "./static/js/247.9ce190b5.chunk.js", + "static/js/2763.ec4b0ce6.chunk.js": "./static/js/2763.ec4b0ce6.chunk.js", "static/js/5171.e8fc646a.chunk.js": "./static/js/5171.e8fc646a.chunk.js", "static/js/2426.ab27f6f9.chunk.js": "./static/js/2426.ab27f6f9.chunk.js", - "static/js/5561.80af3962.chunk.js": "./static/js/5561.80af3962.chunk.js", + "static/js/3691.ef93d563.chunk.js": "./static/js/3691.ef93d563.chunk.js", "static/js/3762.52bd15d3.chunk.js": "./static/js/3762.52bd15d3.chunk.js", "static/js/3801.64b6e473.chunk.js": "./static/js/3801.64b6e473.chunk.js", "static/js/1918.4309a619.chunk.js": "./static/js/1918.4309a619.chunk.js", "static/js/1373.c65e2a03.chunk.js": "./static/js/1373.c65e2a03.chunk.js", "static/js/6431.5f2e5e6e.chunk.js": "./static/js/6431.5f2e5e6e.chunk.js", "static/js/2011.f505a73d.chunk.js": "./static/js/2011.f505a73d.chunk.js", - "static/js/4814.196595b9.chunk.js": "./static/js/4814.196595b9.chunk.js", + "static/js/4814.6d9edd38.chunk.js": "./static/js/4814.6d9edd38.chunk.js", "static/js/3909.cdbddaab.chunk.js": "./static/js/3909.cdbddaab.chunk.js", "static/js/137.08d76dda.chunk.js": "./static/js/137.08d76dda.chunk.js", "static/js/1267.ee70805c.chunk.js": "./static/js/1267.ee70805c.chunk.js", @@ -135,136 +135,136 @@ "static/js/6484.3a2447c1.chunk.js": "./static/js/6484.3a2447c1.chunk.js", "static/js/6903.f1bd0701.chunk.js": "./static/js/6903.f1bd0701.chunk.js", "static/js/7142.4191cc91.chunk.js": "./static/js/7142.4191cc91.chunk.js", + "static/js/2691.53531251.chunk.js": "./static/js/2691.53531251.chunk.js", "static/js/7472.f63abe1f.chunk.js": "./static/js/7472.f63abe1f.chunk.js", - "static/js/2983.ae250a0a.chunk.js": "./static/js/2983.ae250a0a.chunk.js", - "static/js/5289.3a83f08f.chunk.js": "./static/js/5289.3a83f08f.chunk.js", - "static/js/5116.0a0ce204.chunk.js": "./static/js/5116.0a0ce204.chunk.js", + "static/js/2983.e938a4fe.chunk.js": "./static/js/2983.e938a4fe.chunk.js", + "static/js/5289.39c9d169.chunk.js": "./static/js/5289.39c9d169.chunk.js", "index.html": "./index.html", "main.90d417ae.css.map": "./static/css/main.90d417ae.css.map", - "main.d4166b19.js.map": "./static/js/main.d4166b19.js.map", + "main.44b939e3.js.map": "./static/js/main.44b939e3.js.map", "6914.ed2f1662.chunk.js.map": "./static/js/6914.ed2f1662.chunk.js.map", - "4209.db715b11.chunk.js.map": "./static/js/4209.db715b11.chunk.js.map", - "1829.392e4356.chunk.js.map": "./static/js/1829.392e4356.chunk.js.map", + "4209.05b25520.chunk.js.map": "./static/js/4209.05b25520.chunk.js.map", + "1829.223fb198.chunk.js.map": "./static/js/1829.223fb198.chunk.js.map", "4455.596f5a0d.chunk.js.map": "./static/js/4455.596f5a0d.chunk.js.map", - "5088.a995a6c6.chunk.js.map": "./static/js/5088.a995a6c6.chunk.js.map", + "5088.7692271b.chunk.js.map": "./static/js/5088.7692271b.chunk.js.map", "5140.b1dd0e23.chunk.js.map": "./static/js/5140.b1dd0e23.chunk.js.map", - "5997.9da55e7a.chunk.js.map": "./static/js/5997.9da55e7a.chunk.js.map", + "5997.59dab43a.chunk.js.map": "./static/js/5997.59dab43a.chunk.js.map", "3176.121f3468.chunk.js.map": "./static/js/3176.121f3468.chunk.js.map", "6137.2c486126.chunk.js.map": "./static/js/6137.2c486126.chunk.js.map", "7045.bc049940.chunk.js.map": "./static/js/7045.bc049940.chunk.js.map", - "9251.792d7320.chunk.js.map": "./static/js/9251.792d7320.chunk.js.map", - "2338.2f7c2651.chunk.js.map": "./static/js/2338.2f7c2651.chunk.js.map", - "4335.de49194f.chunk.js.map": "./static/js/4335.de49194f.chunk.js.map", - "3061.3dc1c36d.chunk.js.map": "./static/js/3061.3dc1c36d.chunk.js.map", + "9251.4a7c5817.chunk.js.map": "./static/js/9251.4a7c5817.chunk.js.map", + "2338.56b092f8.chunk.js.map": "./static/js/2338.56b092f8.chunk.js.map", + "4335.7187f6a6.chunk.js.map": "./static/js/4335.7187f6a6.chunk.js.map", + "3061.bb1cfd70.chunk.js.map": "./static/js/3061.bb1cfd70.chunk.js.map", "6763.16fe0032.chunk.js.map": "./static/js/6763.16fe0032.chunk.js.map", - "4575.7313cf3d.chunk.js.map": "./static/js/4575.7313cf3d.chunk.js.map", - "4061.8b0d3150.chunk.js.map": "./static/js/4061.8b0d3150.chunk.js.map", - "5112.75a42f1e.chunk.js.map": "./static/js/5112.75a42f1e.chunk.js.map", + "4575.5b10a969.chunk.js.map": "./static/js/4575.5b10a969.chunk.js.map", + "4061.1e4b2694.chunk.js.map": "./static/js/4061.1e4b2694.chunk.js.map", + "5112.30236fa2.chunk.js.map": "./static/js/5112.30236fa2.chunk.js.map", "9611.c217768e.chunk.js.map": "./static/js/9611.c217768e.chunk.js.map", - "2637.0cf5d8c1.chunk.js.map": "./static/js/2637.0cf5d8c1.chunk.js.map", + "2637.97fe472e.chunk.js.map": "./static/js/2637.97fe472e.chunk.js.map", "5503.90c9cdc7.chunk.css.map": "./static/css/5503.90c9cdc7.chunk.css.map", - "5503.1c6f6abf.chunk.js.map": "./static/js/5503.1c6f6abf.chunk.js.map", - "5926.4f6370c0.chunk.js.map": "./static/js/5926.4f6370c0.chunk.js.map", - "701.55710fec.chunk.js.map": "./static/js/701.55710fec.chunk.js.map", - "7821.d4f43f1a.chunk.js.map": "./static/js/7821.d4f43f1a.chunk.js.map", + "5503.dad78ff5.chunk.js.map": "./static/js/5503.dad78ff5.chunk.js.map", + "5926.c0387455.chunk.js.map": "./static/js/5926.c0387455.chunk.js.map", + "701.05206868.chunk.js.map": "./static/js/701.05206868.chunk.js.map", + "7821.bda18452.chunk.js.map": "./static/js/7821.bda18452.chunk.js.map", "2850.90c9cdc7.chunk.css.map": "./static/css/2850.90c9cdc7.chunk.css.map", - "2850.4f651c06.chunk.js.map": "./static/js/2850.4f651c06.chunk.js.map", - "1182.20097feb.chunk.js.map": "./static/js/1182.20097feb.chunk.js.map", + "2850.92a58310.chunk.js.map": "./static/js/2850.92a58310.chunk.js.map", + "1182.264ec55e.chunk.js.map": "./static/js/1182.264ec55e.chunk.js.map", "343.90c9cdc7.chunk.css.map": "./static/css/343.90c9cdc7.chunk.css.map", - "343.281e532b.chunk.js.map": "./static/js/343.281e532b.chunk.js.map", + "343.ce17ca62.chunk.js.map": "./static/js/343.ce17ca62.chunk.js.map", "1199.90c9cdc7.chunk.css.map": "./static/css/1199.90c9cdc7.chunk.css.map", - "1199.ad4dcfea.chunk.js.map": "./static/js/1199.ad4dcfea.chunk.js.map", + "1199.ae4c29a1.chunk.js.map": "./static/js/1199.ae4c29a1.chunk.js.map", "5517.90c9cdc7.chunk.css.map": "./static/css/5517.90c9cdc7.chunk.css.map", - "5517.52e7db11.chunk.js.map": "./static/js/5517.52e7db11.chunk.js.map", - "2555.1194f471.chunk.js.map": "./static/js/2555.1194f471.chunk.js.map", - "7585.e2e98a8e.chunk.js.map": "./static/js/7585.e2e98a8e.chunk.js.map", - "4902.cdae148e.chunk.js.map": "./static/js/4902.cdae148e.chunk.js.map", - "7847.f16e65a5.chunk.js.map": "./static/js/7847.f16e65a5.chunk.js.map", - "4653.d49e8d96.chunk.js.map": "./static/js/4653.d49e8d96.chunk.js.map", - "692.54f42c01.chunk.js.map": "./static/js/692.54f42c01.chunk.js.map", - "3171.49366c40.chunk.js.map": "./static/js/3171.49366c40.chunk.js.map", - "736.e6a94ef6.chunk.js.map": "./static/js/736.e6a94ef6.chunk.js.map", - "6577.bc2e1995.chunk.js.map": "./static/js/6577.bc2e1995.chunk.js.map", - "9561.97ead4fa.chunk.js.map": "./static/js/9561.97ead4fa.chunk.js.map", - "6860.e543e229.chunk.js.map": "./static/js/6860.e543e229.chunk.js.map", + "5517.84805a10.chunk.js.map": "./static/js/5517.84805a10.chunk.js.map", + "2555.247780d4.chunk.js.map": "./static/js/2555.247780d4.chunk.js.map", + "7585.90e7c2ed.chunk.js.map": "./static/js/7585.90e7c2ed.chunk.js.map", + "4902.8927358d.chunk.js.map": "./static/js/4902.8927358d.chunk.js.map", + "7847.6c81d37f.chunk.js.map": "./static/js/7847.6c81d37f.chunk.js.map", + "4653.0d13044c.chunk.js.map": "./static/js/4653.0d13044c.chunk.js.map", + "692.c28b1b9b.chunk.js.map": "./static/js/692.c28b1b9b.chunk.js.map", + "8626.58e34c6f.chunk.js.map": "./static/js/8626.58e34c6f.chunk.js.map", + "736.66a05831.chunk.js.map": "./static/js/736.66a05831.chunk.js.map", + "6577.06d06144.chunk.js.map": "./static/js/6577.06d06144.chunk.js.map", + "9561.bf1e32db.chunk.js.map": "./static/js/9561.bf1e32db.chunk.js.map", + "6860.f8ff9efd.chunk.js.map": "./static/js/6860.f8ff9efd.chunk.js.map", "4781.f4794912.chunk.js.map": "./static/js/4781.f4794912.chunk.js.map", "9478.dca1d314.chunk.js.map": "./static/js/9478.dca1d314.chunk.js.map", "7164.3762a0c0.chunk.js.map": "./static/js/7164.3762a0c0.chunk.js.map", - "4414.662cbbb1.chunk.js.map": "./static/js/4414.662cbbb1.chunk.js.map", - "7798.cbf22df8.chunk.js.map": "./static/js/7798.cbf22df8.chunk.js.map", - "8833.12d9406e.chunk.js.map": "./static/js/8833.12d9406e.chunk.js.map", - "471.e108d937.chunk.js.map": "./static/js/471.e108d937.chunk.js.map", + "4414.34edf059.chunk.js.map": "./static/js/4414.34edf059.chunk.js.map", + "7798.b974925d.chunk.js.map": "./static/js/7798.b974925d.chunk.js.map", + "8833.8e4bf585.chunk.js.map": "./static/js/8833.8e4bf585.chunk.js.map", + "9388.20842728.chunk.js.map": "./static/js/9388.20842728.chunk.js.map", "483.96dc1806.chunk.js.map": "./static/js/483.96dc1806.chunk.js.map", - "9467.da799b88.chunk.js.map": "./static/js/9467.da799b88.chunk.js.map", - "6895.ee5a09e2.chunk.js.map": "./static/js/6895.ee5a09e2.chunk.js.map", - "1379.f9d9847b.chunk.js.map": "./static/js/1379.f9d9847b.chunk.js.map", - "6331.839f6bcd.chunk.js.map": "./static/js/6331.839f6bcd.chunk.js.map", - "4133.f6e21ec7.chunk.js.map": "./static/js/4133.f6e21ec7.chunk.js.map", + "9467.e157f032.chunk.js.map": "./static/js/9467.e157f032.chunk.js.map", + "6895.5d78f23b.chunk.js.map": "./static/js/6895.5d78f23b.chunk.js.map", + "1379.7e93fe73.chunk.js.map": "./static/js/1379.7e93fe73.chunk.js.map", + "6331.9d5ff423.chunk.js.map": "./static/js/6331.9d5ff423.chunk.js.map", + "4133.45077897.chunk.js.map": "./static/js/4133.45077897.chunk.js.map", "1367.90c9cdc7.chunk.css.map": "./static/css/1367.90c9cdc7.chunk.css.map", - "1367.b54235de.chunk.js.map": "./static/js/1367.b54235de.chunk.js.map", - "3956.b1e4679e.chunk.js.map": "./static/js/3956.b1e4679e.chunk.js.map", - "9221.11bbd9dd.chunk.js.map": "./static/js/9221.11bbd9dd.chunk.js.map", - "8896.f395da85.chunk.js.map": "./static/js/8896.f395da85.chunk.js.map", + "1367.79a7a1e1.chunk.js.map": "./static/js/1367.79a7a1e1.chunk.js.map", + "3956.d3b4cd02.chunk.js.map": "./static/js/3956.d3b4cd02.chunk.js.map", + "9221.14d6096a.chunk.js.map": "./static/js/9221.14d6096a.chunk.js.map", + "8896.86116952.chunk.js.map": "./static/js/8896.86116952.chunk.js.map", "9134.3cd624c6.chunk.js.map": "./static/js/9134.3cd624c6.chunk.js.map", "1268.90c9cdc7.chunk.css.map": "./static/css/1268.90c9cdc7.chunk.css.map", - "1268.467f4831.chunk.js.map": "./static/js/1268.467f4831.chunk.js.map", - "1030.0f668a30.chunk.js.map": "./static/js/1030.0f668a30.chunk.js.map", + "1268.cb6b69cf.chunk.js.map": "./static/js/1268.cb6b69cf.chunk.js.map", + "1030.e86b3822.chunk.js.map": "./static/js/1030.e86b3822.chunk.js.map", "9145.82dff7c3.chunk.js.map": "./static/js/9145.82dff7c3.chunk.js.map", - "8998.cbb9efcd.chunk.js.map": "./static/js/8998.cbb9efcd.chunk.js.map", - "1501.091ebefe.chunk.js.map": "./static/js/1501.091ebefe.chunk.js.map", - "7770.a3ec3191.chunk.js.map": "./static/js/7770.a3ec3191.chunk.js.map", + "8998.9a18741c.chunk.js.map": "./static/js/8998.9a18741c.chunk.js.map", + "1501.3b54336e.chunk.js.map": "./static/js/1501.3b54336e.chunk.js.map", + "7770.5dad74f3.chunk.js.map": "./static/js/7770.5dad74f3.chunk.js.map", "426.9fd80f88.chunk.js.map": "./static/js/426.9fd80f88.chunk.js.map", "4298.e8216a7e.chunk.js.map": "./static/js/4298.e8216a7e.chunk.js.map", "2878.caa1771d.chunk.js.map": "./static/js/2878.caa1771d.chunk.js.map", "8495.b1689c2d.chunk.js.map": "./static/js/8495.b1689c2d.chunk.js.map", "4934.72071d47.chunk.js.map": "./static/js/4934.72071d47.chunk.js.map", "9942.406de82c.chunk.js.map": "./static/js/9942.406de82c.chunk.js.map", - "7021.2deef8ad.chunk.js.map": "./static/js/7021.2deef8ad.chunk.js.map", - "2684.266b72ea.chunk.js.map": "./static/js/2684.266b72ea.chunk.js.map", + "7021.2df7e2e0.chunk.js.map": "./static/js/7021.2df7e2e0.chunk.js.map", + "2684.52d25845.chunk.js.map": "./static/js/2684.52d25845.chunk.js.map", "6683.f9402dc8.chunk.js.map": "./static/js/6683.f9402dc8.chunk.js.map", - "8350.21301b75.chunk.js.map": "./static/js/8350.21301b75.chunk.js.map", + "8350.ee721e94.chunk.js.map": "./static/js/8350.ee721e94.chunk.js.map", "4873.6fb2072e.chunk.js.map": "./static/js/4873.6fb2072e.chunk.js.map", - "5367.64213c2b.chunk.js.map": "./static/js/5367.64213c2b.chunk.js.map", - "5223.74d3e072.chunk.js.map": "./static/js/5223.74d3e072.chunk.js.map", - "7659.8c8c79fd.chunk.js.map": "./static/js/7659.8c8c79fd.chunk.js.map", - "9968.aeb572bc.chunk.js.map": "./static/js/9968.aeb572bc.chunk.js.map", + "5367.991f75c4.chunk.js.map": "./static/js/5367.991f75c4.chunk.js.map", + "5223.750c796e.chunk.js.map": "./static/js/5223.750c796e.chunk.js.map", + "7659.8b358177.chunk.js.map": "./static/js/7659.8b358177.chunk.js.map", + "9968.14f204ee.chunk.js.map": "./static/js/9968.14f204ee.chunk.js.map", "2180.03cd0c4b.chunk.js.map": "./static/js/2180.03cd0c4b.chunk.js.map", "8253.ec0f3d9f.chunk.js.map": "./static/js/8253.ec0f3d9f.chunk.js.map", - "3328.5a821c18.chunk.js.map": "./static/js/3328.5a821c18.chunk.js.map", + "3328.c7470c38.chunk.js.map": "./static/js/3328.c7470c38.chunk.js.map", "1440.b9a2f19f.chunk.js.map": "./static/js/1440.b9a2f19f.chunk.js.map", - "9179.a7bd48cd.chunk.js.map": "./static/js/9179.a7bd48cd.chunk.js.map", - "51.04aad218.chunk.js.map": "./static/js/51.04aad218.chunk.js.map", - "711.3386a27a.chunk.js.map": "./static/js/711.3386a27a.chunk.js.map", - "6901.5d2f4df9.chunk.js.map": "./static/js/6901.5d2f4df9.chunk.js.map", - "2185.fd7344b6.chunk.js.map": "./static/js/2185.fd7344b6.chunk.js.map", - "312.f4e3b987.chunk.js.map": "./static/js/312.f4e3b987.chunk.js.map", - "2112.e11d2b4e.chunk.js.map": "./static/js/2112.e11d2b4e.chunk.js.map", - "4619.7cdbfcd3.chunk.js.map": "./static/js/4619.7cdbfcd3.chunk.js.map", - "8990.ada972c5.chunk.js.map": "./static/js/8990.ada972c5.chunk.js.map", - "8455.54dbbb4e.chunk.js.map": "./static/js/8455.54dbbb4e.chunk.js.map", + "9179.3874e070.chunk.js.map": "./static/js/9179.3874e070.chunk.js.map", + "51.f85def1c.chunk.js.map": "./static/js/51.f85def1c.chunk.js.map", + "711.be9f8284.chunk.js.map": "./static/js/711.be9f8284.chunk.js.map", + "6901.5afa1e6f.chunk.js.map": "./static/js/6901.5afa1e6f.chunk.js.map", + "2185.12707550.chunk.js.map": "./static/js/2185.12707550.chunk.js.map", + "312.cd77f5db.chunk.js.map": "./static/js/312.cd77f5db.chunk.js.map", + "2112.e0047ff5.chunk.js.map": "./static/js/2112.e0047ff5.chunk.js.map", + "4619.8d9ee17c.chunk.js.map": "./static/js/4619.8d9ee17c.chunk.js.map", + "8990.194642a8.chunk.js.map": "./static/js/8990.194642a8.chunk.js.map", + "8455.6f71a45b.chunk.js.map": "./static/js/8455.6f71a45b.chunk.js.map", "1913.90c9cdc7.chunk.css.map": "./static/css/1913.90c9cdc7.chunk.css.map", - "1913.b8313ba3.chunk.js.map": "./static/js/1913.b8313ba3.chunk.js.map", + "1913.549c180b.chunk.js.map": "./static/js/1913.549c180b.chunk.js.map", "1604.25690eb1.chunk.js.map": "./static/js/1604.25690eb1.chunk.js.map", - "8391.b8c17819.chunk.js.map": "./static/js/8391.b8c17819.chunk.js.map", - "402.2e7c42a8.chunk.js.map": "./static/js/402.2e7c42a8.chunk.js.map", + "8391.968204ad.chunk.js.map": "./static/js/8391.968204ad.chunk.js.map", + "402.5c660ae6.chunk.js.map": "./static/js/402.5c660ae6.chunk.js.map", "1705.32ce00fc.chunk.js.map": "./static/js/1705.32ce00fc.chunk.js.map", - "1581.ae6c801c.chunk.js.map": "./static/js/1581.ae6c801c.chunk.js.map", - "455.88438c30.chunk.js.map": "./static/js/455.88438c30.chunk.js.map", - "2661.9ba013db.chunk.js.map": "./static/js/2661.9ba013db.chunk.js.map", - "889.eb7cf475.chunk.js.map": "./static/js/889.eb7cf475.chunk.js.map", - "9088.5678af5a.chunk.js.map": "./static/js/9088.5678af5a.chunk.js.map", - "247.7985b2af.chunk.js.map": "./static/js/247.7985b2af.chunk.js.map", - "2763.e07e4022.chunk.js.map": "./static/js/2763.e07e4022.chunk.js.map", + "1581.c60c0082.chunk.js.map": "./static/js/1581.c60c0082.chunk.js.map", + "455.6aa5b756.chunk.js.map": "./static/js/455.6aa5b756.chunk.js.map", + "2661.7fe77f72.chunk.js.map": "./static/js/2661.7fe77f72.chunk.js.map", + "889.43037296.chunk.js.map": "./static/js/889.43037296.chunk.js.map", + "9088.1edd5d6a.chunk.js.map": "./static/js/9088.1edd5d6a.chunk.js.map", + "247.9ce190b5.chunk.js.map": "./static/js/247.9ce190b5.chunk.js.map", + "2763.ec4b0ce6.chunk.js.map": "./static/js/2763.ec4b0ce6.chunk.js.map", "5171.e8fc646a.chunk.js.map": "./static/js/5171.e8fc646a.chunk.js.map", "2426.ab27f6f9.chunk.js.map": "./static/js/2426.ab27f6f9.chunk.js.map", - "5561.80af3962.chunk.js.map": "./static/js/5561.80af3962.chunk.js.map", + "3691.ef93d563.chunk.js.map": "./static/js/3691.ef93d563.chunk.js.map", "3762.52bd15d3.chunk.js.map": "./static/js/3762.52bd15d3.chunk.js.map", "3801.64b6e473.chunk.js.map": "./static/js/3801.64b6e473.chunk.js.map", "1918.4309a619.chunk.js.map": "./static/js/1918.4309a619.chunk.js.map", "1373.c65e2a03.chunk.js.map": "./static/js/1373.c65e2a03.chunk.js.map", "6431.5f2e5e6e.chunk.js.map": "./static/js/6431.5f2e5e6e.chunk.js.map", "2011.f505a73d.chunk.js.map": "./static/js/2011.f505a73d.chunk.js.map", - "4814.196595b9.chunk.js.map": "./static/js/4814.196595b9.chunk.js.map", + "4814.6d9edd38.chunk.js.map": "./static/js/4814.6d9edd38.chunk.js.map", "3909.cdbddaab.chunk.js.map": "./static/js/3909.cdbddaab.chunk.js.map", "137.08d76dda.chunk.js.map": "./static/js/137.08d76dda.chunk.js.map", "1267.ee70805c.chunk.js.map": "./static/js/1267.ee70805c.chunk.js.map", @@ -275,13 +275,13 @@ "6484.3a2447c1.chunk.js.map": "./static/js/6484.3a2447c1.chunk.js.map", "6903.f1bd0701.chunk.js.map": "./static/js/6903.f1bd0701.chunk.js.map", "7142.4191cc91.chunk.js.map": "./static/js/7142.4191cc91.chunk.js.map", + "2691.53531251.chunk.js.map": "./static/js/2691.53531251.chunk.js.map", "7472.f63abe1f.chunk.js.map": "./static/js/7472.f63abe1f.chunk.js.map", - "2983.ae250a0a.chunk.js.map": "./static/js/2983.ae250a0a.chunk.js.map", - "5289.3a83f08f.chunk.js.map": "./static/js/5289.3a83f08f.chunk.js.map", - "5116.0a0ce204.chunk.js.map": "./static/js/5116.0a0ce204.chunk.js.map" + "2983.e938a4fe.chunk.js.map": "./static/js/2983.e938a4fe.chunk.js.map", + "5289.39c9d169.chunk.js.map": "./static/js/5289.39c9d169.chunk.js.map" }, "entrypoints": [ "static/css/main.90d417ae.css", - "static/js/main.d4166b19.js" + "static/js/main.44b939e3.js" ] } \ No newline at end of file diff --git a/portal-ui/build/index.html b/portal-ui/build/index.html index 06627fa622..aa57bdc0c0 100644 --- a/portal-ui/build/index.html +++ b/portal-ui/build/index.html @@ -1 +1 @@ -MinIO Console
\ No newline at end of file +MinIO Console
\ No newline at end of file diff --git a/portal-ui/build/static/js/1030.0f668a30.chunk.js b/portal-ui/build/static/js/1030.0f668a30.chunk.js deleted file mode 100644 index 3429afb0ef..0000000000 --- a/portal-ui/build/static/js/1030.0f668a30.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1030],{81806:function(e,n,t){var i=t(1413),a=t(45987),o=(t(72791),t(11135)),l=t(25787),r=t(80184),s=["classes","children"];n.Z=(0,l.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,o=(0,a.Z)(e,s);return(0,r.jsx)("button",(0,i.Z)((0,i.Z)({},o),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var i=t(29439),a=t(1413),o=t(72791),l=t(60364),r=t(13400),s=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),v=t(25787),p=t(23814),h=t(81551),f=t(29823),g=t(28057),x=t(87995),Z=t(80184);n.Z=(0,v.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,v=e.children,p=e.classes,j=e.wideLimit,b=void 0===j||j,y=e.noContentPadding,S=e.titleIcon,w=void 0===S?null:S,k=(0,h.TL)(),P=(0,o.useState)(!1),C=(0,i.Z)(P,2),R=C[0],N=C[1],A=(0,l.v9)((function(e){return e.system.modalSnackBar}));(0,o.useEffect)((function(){k((0,x.MK)(""))}),[k]),(0,o.useEffect)((function(){if(A){if(""===A.message)return void N(!1);"error"!==A.type&&N(!0)}}),[A]);var I=b?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return A&&(E=A.detailedErrorMsg,(""===A.detailedErrorMsg||A.detailedErrorMsg.length<5)&&(E=A.message)),(0,Z.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:p},I),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,Z.jsxs)(d.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[w," ",m]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(r.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(f.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(s.Z,{open:R,className:p.snackBarModal,onClose:function(){N(!1),k((0,x.MK)(""))},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(A&&"error"===A.type?p.errorSnackBar:"")},autoHideDuration:A&&"error"===A.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:y?"":p.content,children:v})]}))}))},45902:function(e,n,t){var i=t(1413),a=(t(72791),t(53767)),o=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,l=e.value,r=void 0===l?"-":l,s=e.orientation,c=void 0===s?"column":s,d=e.stkProps,u=void 0===d?{}:d,m=e.lblProps,v=void 0===m?{}:m,p=e.valProps,h=void 0===p?{}:p;return(0,o.jsxs)(a.Z,(0,i.Z)((0,i.Z)({direction:{xs:"column",sm:c}},u),{},{children:[(0,o.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:600}},v),{},{children:t})),(0,o.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:r}))]}))}},74815:function(e,n,t){t.d(n,{Z:function(){return u}});var i=t(93433),a=(t(72791),t(73909)),o=t(21041),l=t(41048),r=t(45248),s=t(23742),c=t(80184),d=function(e){var n=e.totalValue,t=e.sizeItems,i=e.bgColor,a=void 0===i?"#ededed":i;return(0,c.jsx)("div",{style:{width:"100%",height:12,backgroundColor:a,borderRadius:30,display:"flex",transitionDuration:"0.3s",overflow:"hidden"},children:t.map((function(e,t){var i=100*e.value/n;return(0,c.jsx)("div",{style:{width:"".concat(i,"%"),height:"100%",backgroundColor:e.color,transitionDuration:"0.3s"}},"itemSize-".concat(t.toString()))}))})},u=function(e){var n=e.totalCapacity,t=e.usedSpaceVariants,u=e.statusClass,m=e.render,v=void 0===m?"pie":m,p=["#8dacd3","#bca1ea","#92e8d2","#efc9ac","#97f274","#f7d291","#71ACCB","#f28282","#e28cc1","#2781B0"],h="#ededed",f=t.reduce((function(e,n){return e+n.value}),0),g=n-f,x=[],Z=t.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};t.length>10?x=[{value:f-Z.value,color:"#2781B0",label:"Total Tiers Space"}]:x=t.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,n){return{value:e.value,color:p[n],label:"Tier - ".concat(e.variant)}}));var j="#07193E",b=100*Z.value/n;b>=90?j="#C83B51":b>=75&&(j="#FFAB0F");var y=[{value:Z.value,color:j,label:"Used Space by Tenant"}].concat((0,i.Z)(x),[{value:g,color:"bar"===v?h:"transparent",label:"Empty Space"}]);if("bar"===v){var S=y.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,c.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,c.jsx)(d,{totalValue:n,sizeItems:S,bgColor:h})})}return(0,c.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,c.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:u,children:(0,c.jsx)(s.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,c.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(f)?"N/A":(0,r.l5)(f)}),(0,c.jsx)("div",{children:(0,c.jsxs)(a.u,{width:110,height:110,children:[(0,c.jsx)(o.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:h,isAnimationActive:!1,stroke:"none"}),(0,c.jsx)(o.b,{data:y,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:y.map((function(e,n){return(0,c.jsx)(l.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(n))}))})]})})]})}},21353:function(e,n,t){t.r(n),t.d(n,{default:function(){return G}});var i=t(29439),a=t(1413),o=t(72791),l=t(60364),r=t(26181),s=t.n(r),c=t(11135),d=t(25787),u=t(23814),m=t(61889),v=t(64554),p=t(36151),h=t(56028),f=t(21435),g=t(37516),x=t(81207),Z=t(87995),j=t(81551),b=t(80184),y=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({infoText:{fontSize:14}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,l=e.namespace,r=e.idTenant,s=e.classes,c=(0,j.TL)(),d=(0,o.useState)(!1),u=(0,i.Z)(d,2),v=u[0],y=u[1],S=(0,o.useState)(""),w=(0,i.Z)(S,2),k=w[0],P=w[1],C=(0,o.useState)(!1),R=(0,i.Z)(C,2),N=R[0],A=R[1],I=(0,o.useState)(""),E=(0,i.Z)(I,2),D=E[0],F=E[1],_=(0,o.useState)(""),z=(0,i.Z)(_,2),B=z[0],M=z[1],T=(0,o.useState)(""),U=(0,i.Z)(T,2),W=U[0],L=U[1],O=(0,o.useState)(!0),$=(0,i.Z)(O,2),V=$[0],K=$[1],G=(0,o.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)K(n.test(k))}),[k]);(0,o.useEffect)((function(){G("minioImage")}),[k,G]);return(0,b.jsx)(h.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,b.jsx)("div",{className:s.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:k,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){P(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(g.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:N,onChange:function(e){A(!N)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),N&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:D,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){F(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:B,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){M(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:W,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){L(e.target.value)}})})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,b.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){P(""),A(!1),F(""),M(""),L("")},children:"Clear"}),(0,b.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:!V||N&&(""===D.trim()||""===B.trim()||""===W.trim())||v,onClick:function(){y(!0);var e={image:k,enable_prometheus:!0};if(N){var n={image_registry:{registry:D,username:B,password:W}};e=(0,a.Z)((0,a.Z)({},e),n)}x.Z.invoke("PUT","/api/v1/namespaces/".concat(l,"/tenants/").concat(r),e).then((function(){y(!1),t(!0)})).catch((function(e){c((0,Z.zb)(e)),y(!1)}))},children:"Save"})]})]})})})),S=t(81806),w=t(40986),k=t(53767),P=t(23742),C=t(45248),R=t(72401),N=t(74815),A=t(22512),I=t(45902),E=((0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(w.Z),(0,d.Z)((function(e){return(0,c.Z)({centerItem:{textAlign:"center"}})}))((function(e){var n,t,i,a,l,r,s=e.classes,c=e.tenant,d=e.healthStatus,u=e.loading,v=e.error,p={value:"n/a",unit:""},h={value:"n/a",unit:""},f={value:"n/a",unit:""},g={value:"n/a",unit:""},x={value:"n/a",unit:""};if(null!==(n=c.status)&&void 0!==n&&null!==(t=n.usage)&&void 0!==t&&t.raw){var Z=(0,C.ae)("".concat(c.status.usage.raw),!0).split(" ");p.value=Z[0],p.unit=Z[1]}if(null!==(i=c.status)&&void 0!==i&&null!==(a=i.usage)&&void 0!==a&&a.capacity){var j=(0,C.ae)("".concat(c.status.usage.capacity),!0).split(" ");h.value=j[0],h.unit=j[1]}if(null!==(l=c.status)&&void 0!==l&&null!==(r=l.usage)&&void 0!==r&&r.capacity_usage){var y=(0,C.l5)(c.status.usage.capacity_usage,!0).split(" ");f.value=y[0],f.unit=y[1]}var S=[];if(c.tiers&&0!==c.tiers.length){S=c.tiers.map((function(e){return{value:e.size,variant:e.name}}));var w=c.tiers.filter((function(e){return"internal"===e.type})).reduce((function(e,n){return e+n.size}),0),E=c.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,n){return e+n.size}),0),D=(0,C.l5)(E,!0).split(" ");x.value=D[0],x.unit=D[1];var F=(0,C.l5)(w,!0).split(" ");g.value=F[0],g.unit=F[1]}else{var _,z;S=[{value:(null===(_=c.status)||void 0===_||null===(z=_.usage)||void 0===z?void 0:z.capacity_usage)||0,variant:"STANDARD"}]}return(0,b.jsxs)(o.Fragment,{children:[u&&(0,b.jsx)("div",{className:s.padChart,children:(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.centerItem,children:(0,b.jsx)(R.Z,{style:{width:40,height:40}})})}),function(){var e,n;return u?null:""!==v?(0,b.jsx)(A.Z,{errorMessage:v,withBreak:!1}):(0,b.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,b.jsx)(N.Z,{totalCapacity:(null===(e=c.status)||void 0===e||null===(n=e.usage)||void 0===n?void 0:n.raw)||0,usedSpaceVariants:S,statusClass:"",render:"bar"}),(0,b.jsxs)(k.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"0 0 15px 0",children:[(!c.tiers||0===c.tiers.length)&&(0,b.jsx)(o.Fragment,{children:(0,b.jsx)(I.Z,{label:"Internal:",orientation:"row",value:"".concat(f.value," ").concat(f.unit)})}),c.tiers&&c.tiers.length>0&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(I.Z,{label:"Internal:",orientation:"row",value:"".concat(g.value," ").concat(g.unit)}),(0,b.jsx)(I.Z,{label:"Tiered:",orientation:"row",value:"".concat(x.value," ").concat(x.unit)})]}),d&&(0,b.jsx)(I.Z,{orientation:"row",label:"Health:",value:(0,b.jsx)("span",{className:d,children:(0,b.jsx)(P.J$M,{})})})]})]})}()]})}))),D=t(50896),F=t(40603),_=t(93433),z=t(13400),B=t(42419),M=t(51979),T=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({domainInline:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,a=e.namespace,l=e.idTenant,r=e.domains,s=e.classes,c=(0,j.TL)(),d=(0,o.useState)(!1),u=(0,i.Z)(d,2),v=u[0],g=u[1],y=(0,o.useState)(""),S=(0,i.Z)(y,2),w=S[0],k=S[1],P=(0,o.useState)([""]),C=(0,i.Z)(P,2),R=C[0],N=C[1],A=(0,o.useState)(!0),I=(0,i.Z)(A,2),E=I[0],D=I[1],F=(0,o.useState)([!0]),T=(0,i.Z)(F,2),U=T[0],W=T[1];(0,o.useEffect)((function(){if(r){var e=r.console||"";if(k(e),""!==e){var n=new RegExp(/((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\/[a-zA-Z0-9]{1,})*?$/);D(n.test(e))}else D(!0);if(r.minio&&r.minio.length>0){N(r.minio);var t=new RegExp(/((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?$/),i=r.minio.map((function(e){return""===e.trim()||t.test(e)}));W(i)}}}),[r]);var L=function(){var e=(0,_.Z)(R),n=(0,_.Z)(U);e.push(""),n.push(!0),N(e),W(n)};return(0,b.jsx)(h.Z,{title:"Edit Tenant Domains - ".concat(l),modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsx)(m.ZP,{container:!0,children:(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(s.configSectionItem),children:[(0,b.jsx)("div",{className:s.containerItem,children:(0,b.jsx)(f.Z,{id:"console_domain",name:"console_domain",onChange:function(e){k(e.target.value),D(e.target.validity.valid)},label:"Console Domain",value:w,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",pattern:"((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\/[a-zA-Z0-9]{1,})*?$",error:E?"":"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{children:"MinIO Domains"}),(0,b.jsx)("div",{children:R.map((function(e,n){return(0,b.jsxs)("div",{className:"".concat(s.domainInline),children:[(0,b.jsx)(f.Z,{id:"minio-domain-".concat(n.toString()),name:"minio-domain-".concat(n.toString()),onChange:function(e){!function(e,n){var t=(0,_.Z)(R);t[n]=e,N(t)}(e.target.value,n),function(e,n){var t=(0,_.Z)(U);t[n]=e,W(t)}(e.target.validity.valid,n)},label:"MinIO Domain ".concat(n+1),value:e,placeholder:"Eg. http://subdomain.domain",pattern:"((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?$",error:U[n]?"":"MinIO domain format is incorrect (http|https://subdomain.domain)"}),(0,b.jsx)("div",{className:s.overlayAction,children:(0,b.jsx)(z.Z,{size:"small",onClick:L,disabled:n!==R.length-1,children:(0,b.jsx)(B.Z,{})})}),(0,b.jsx)("div",{className:s.overlayAction,children:(0,b.jsx)(z.Z,{size:"small",onClick:function(){return function(e){var n=R.filter((function(n,t){return t!==e})),t=U.filter((function(n,t){return t!==e}));N(n),W(t)}(n)},disabled:R.length<=1,children:(0,b.jsx)(M.Z,{})})})]},"minio-domain-key-".concat(n.toString()))}))})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,b.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){k(""),D(!0),N([""]),W([!0])},children:"Clear"}),(0,b.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:v||!E||U.filter((function(e){return!e})).length>0,onClick:function(){g(!0);var e={domains:{console:w,minio:R.filter((function(e){return""!==e.trim()}))}};x.Z.invoke("PUT","/api/v1/namespaces/".concat(a,"/tenants/").concat(l,"/domains"),e).then((function(){g(!1),t(!0)})).catch((function(e){c((0,Z.zb)(e)),g(!1)}))},children:"Save"})]})]})})})})),U=t(17238),W=t(16871),L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"red",n=arguments.length>1?arguments[1]:void 0;return"red"===e?n.redState:"yellow"===e?n.yellowState:"green"===e?n.greenState:n.greyState},O=function(e){var n,t=e.tenant,i=e.classes;return t?(0,b.jsx)(E,{tenant:t,label:"Storage",error:"",loading:!1,healthStatus:L(null===t||void 0===t||null===(n=t.status)||void 0===n?void 0:n.health_status,i)}):null},$=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,b.jsx)(g.Z,{indicatorLabels:["Enabled","Disabled"],checked:e,value:e,id:"".concat(n,"-status"),name:"".concat(n,"-status"),onChange:function(){},switchOnly:!0})},V={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},K={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},G=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},u.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},detailSection:{"& div":{"& b,i":{minWidth:80,display:"block",float:"left"},"& i":{fontStyle:"normal",wordWrap:"break-word",overflowWrap:"break-word"},"& div":{clear:"both"},clear:"both",marginBottom:2}},linkedSection:{color:e.palette.info.main,fontFamily:"'Lato', sans-serif"},autoGeneratedLink:{fontStyle:"italic"}},(0,u.Bz)(e.spacing(4))))}))((function(e){var n,t,r,c,d,u,p,h,f,g,x,Z,w,k,C,R,N,A,E,_,z,B,M,L,G=e.classes,H=(0,j.TL)(),q=(0,W.UO)(),J=q.tenantName,Q=q.tenantNamespace,Y=(0,l.v9)((function(e){return e.tenants.tenantInfo})),X=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"logEnabled",!1)})),ee=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"monitoringEnabled",!1)})),ne=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"encryptionEnabled",!1)})),te=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"minioTLS",!1)})),ie=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpAdEnabled",!1)})),ae=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpOidcEnabled",!1)})),oe=(0,o.useState)(0),le=(0,i.Z)(oe,2),re=le[0],se=le[1],ce=(0,o.useState)(0),de=(0,i.Z)(ce,2),ue=de[0],me=de[1],ve=(0,o.useState)(0),pe=(0,i.Z)(ve,2),he=pe[0],fe=pe[1],ge=(0,o.useState)(!1),xe=(0,i.Z)(ge,2),Ze=xe[0],je=xe[1],be=(0,o.useState)(!1),ye=(0,i.Z)(be,2),Se=ye[0],we=ye[1];(0,o.useEffect)((function(){Y&&(se(Y.pools.length),fe(Y.total_volumes||0),me(Y.total_instances||0))}),[Y]);return(0,b.jsxs)(o.Fragment,{children:[Ze&&(0,b.jsx)(y,{open:Ze,closeModalAndRefresh:function(){je(!1)},idTenant:J||"",namespace:Q||""}),Se&&(0,b.jsx)(T,{open:Se,idTenant:J||"",namespace:Q||"",domains:(null===Y||void 0===Y?void 0:Y.domains)||null,closeModalAndRefresh:function(e){we(!1),e&&H((0,U.V2)(!0))}}),(0,b.jsx)(D.Z,{separator:!1,children:"Details"}),(0,b.jsx)(O,{tenant:Y,classes:G}),(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"State:",value:null===Y||void 0===Y?void 0:Y.currentState})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"MinIO:",value:(0,b.jsx)(S.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){je(!0)},children:Y?Y.image:""})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsxs)("h3",{children:["Domains",(0,b.jsx)(F.Z,{icon:(0,b.jsx)(P.dY8,{}),title:"",onClick:function(){we(!0)}})]})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Console:",value:(0,b.jsxs)(o.Fragment,{children:[null!==Y&&void 0!==Y&&null!==(n=Y.domains)&&void 0!==n&&n.console&&""!==(null===Y||void 0===Y||null===(t=Y.domains)||void 0===t?void 0:t.console)||null!==Y&&void 0!==Y&&null!==(r=Y.endpoints)&&void 0!==r&&r.console?"":"-",(null===Y||void 0===Y||null===(c=Y.endpoints)||void 0===c?void 0:c.console)&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)("a",{href:null===Y||void 0===Y||null===(d=Y.endpoints)||void 0===d?void 0:d.console,target:"_blank",rel:"noopener noreferrer",className:"".concat(G.linkedSection," ").concat(G.autoGeneratedLink),children:(null===Y||void 0===Y||null===(u=Y.endpoints)||void 0===u?void 0:u.console)||"-"}),(0,b.jsx)("br",{})]}),(null===Y||void 0===Y||null===(p=Y.domains)||void 0===p?void 0:p.console)&&""!==(null===Y||void 0===Y||null===(h=Y.domains)||void 0===h?void 0:h.console)&&(0,b.jsx)("a",{href:(null===Y||void 0===Y||null===(f=Y.domains)||void 0===f?void 0:f.console)||"",target:"_blank",rel:"noopener noreferrer",className:G.linkedSection,children:(null===Y||void 0===Y||null===(g=Y.domains)||void 0===g?void 0:g.console)||""})]})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"MinIO Endpoint".concat(null!==Y&&void 0!==Y&&null!==(x=Y.endpoints)&&void 0!==x&&x.minio&&1===(null===Y||void 0===Y||null===(Z=Y.endpoints)||void 0===Z?void 0:Z.minio.length)?"":"s",":"),value:(0,b.jsxs)(o.Fragment,{children:[null!==Y&&void 0!==Y&&null!==(w=Y.domains)&&void 0!==w&&w.minio||null!==Y&&void 0!==Y&&null!==(k=Y.endpoints)&&void 0!==k&&k.minio?"":"-",(null===Y||void 0===Y||null===(C=Y.endpoints)||void 0===C?void 0:C.minio)&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)("a",{href:null===Y||void 0===Y||null===(R=Y.endpoints)||void 0===R?void 0:R.minio,target:"_blank",rel:"noopener noreferrer",className:"".concat(G.linkedSection," ").concat(G.autoGeneratedLink),children:(null===Y||void 0===Y||null===(N=Y.endpoints)||void 0===N?void 0:N.minio)||"-"}),(0,b.jsx)("br",{})]}),(null===Y||void 0===Y||null===(A=Y.domains)||void 0===A?void 0:A.minio)&&Y.domains.minio.map((function(e){return(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:G.linkedSection,children:e}),(0,b.jsx)("br",{})]},e)}))]})})})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Instances:",value:ue})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Clusters:",value:re,stkProps:{style:{marginRight:47}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Total Drives:",value:he,stkProps:{style:{marginRight:43}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Write Quorum:",value:null!==Y&&void 0!==Y&&null!==(E=Y.status)&&void 0!==E&&E.write_quorum?null===Y||void 0===Y||null===(_=Y.status)||void 0===_?void 0:_.write_quorum:0})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Drives Online:",value:null!==Y&&void 0!==Y&&null!==(z=Y.status)&&void 0!==z&&z.drives_online?null===Y||void 0===Y||null===(B=Y.status)||void 0===B?void 0:B.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Drives Offline:",value:null!==Y&&void 0!==Y&&null!==(M=Y.status)&&void 0!==M&&M.drives_offline?null===Y||void 0===Y||null===(L=Y.status)||void 0===L?void 0:L.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,b.jsx)(D.Z,{children:"Features"}),(0,b.jsxs)(v.Z,{sx:(0,a.Z)({},V),children:[(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"Logs:",value:$(X,"tenant-log")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"AD/LDAP:",value:$(ie,"tenant-sts")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"Encryption:",value:$(ne,"tenant-enc")},K))]}),(0,b.jsxs)(v.Z,{sx:(0,a.Z)({},V),children:[(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"MinIO TLS:",value:$(te,"tenant-tls")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"Monitoring:",value:$(ee,"tenant-monitor")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"OpenID:",value:$(ae,"tenant-oidc")},K))]})]})}))},22512:function(e,n,t){var i=t(72791),a=t(20890),o=t(11135),l=t(25787),r=t(80184);n.Z=(0,l.Z)((function(e){var n;return(0,o.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,o=e.withBreak,l=void 0===o||o;return(0,r.jsxs)(i.Fragment,{children:[l&&(0,r.jsx)("br",{}),(0,r.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(95318);n.Z=void 0;var a=i(t(45649)),o=t(80184),l=(0,a.default)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=l},53767:function(e,n,t){var i=t(4942),a=t(63366),o=t(87462),l=t(72791),r=t(51184),s=t(45682),c=t(78519),d=t(82466),u=t(66934),m=t(31402),v=t(80184),p=["component","direction","spacing","divider","children"];function h(e,n){var t=l.Children.toArray(e).filter(Boolean);return t.reduce((function(e,i,a){return e.push(i),a :not(style) + :not(style)":(0,i.Z)({margin:0},"margin".concat((a=t?u[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[a])),(0,s.NA)(l,e))};var a})))}return a})),g=l.forwardRef((function(e,n){var t=(0,m.Z)({props:e,name:"MuiStack"}),i=(0,c.Z)(t),l=i.component,r=void 0===l?"div":l,s=i.direction,d=void 0===s?"column":s,u=i.spacing,g=void 0===u?0:u,x=i.divider,Z=i.children,j=(0,a.Z)(i,p),b={direction:d,spacing:g};return(0,v.jsx)(f,(0,o.Z)({as:r,ownerState:b,ref:n},j,{children:x?h(Z,x):Z}))}));n.Z=g},23688:function(e,n,t){function i(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function a(e){this.setState(function(n){var t=this.constructor.getDerivedStateFromProps(e,n);return null!==t&&void 0!==t?t:null}.bind(this))}function o(e,n){try{var t=this.props,i=this.state;this.props=e,this.state=n,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(t,i)}finally{this.props=t,this.state=i}}function l(e){var n=e.prototype;if(!n||!n.isReactComponent)throw new Error("Can only polyfill class components");if("function"!==typeof e.getDerivedStateFromProps&&"function"!==typeof n.getSnapshotBeforeUpdate)return e;var t=null,l=null,r=null;if("function"===typeof n.componentWillMount?t="componentWillMount":"function"===typeof n.UNSAFE_componentWillMount&&(t="UNSAFE_componentWillMount"),"function"===typeof n.componentWillReceiveProps?l="componentWillReceiveProps":"function"===typeof n.UNSAFE_componentWillReceiveProps&&(l="UNSAFE_componentWillReceiveProps"),"function"===typeof n.componentWillUpdate?r="componentWillUpdate":"function"===typeof n.UNSAFE_componentWillUpdate&&(r="UNSAFE_componentWillUpdate"),null!==t||null!==l||null!==r){var s=e.displayName||e.name,c="function"===typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+c+" but also contains the following legacy lifecycles:"+(null!==t?"\n "+t:"")+(null!==l?"\n "+l:"")+(null!==r?"\n "+r:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"===typeof e.getDerivedStateFromProps&&(n.componentWillMount=i,n.componentWillReceiveProps=a),"function"===typeof n.getSnapshotBeforeUpdate){if("function"!==typeof n.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");n.componentWillUpdate=o;var d=n.componentDidUpdate;n.componentDidUpdate=function(e,n,t){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:t;d.call(this,e,n,i)}}return e}t.r(n),t.d(n,{polyfill:function(){return l}}),i.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0}}]); -//# sourceMappingURL=1030.0f668a30.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1030.0f668a30.chunk.js.map b/portal-ui/build/static/js/1030.0f668a30.chunk.js.map deleted file mode 100644 index 99454685ef..0000000000 --- a/portal-ui/build/static/js/1030.0f668a30.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1030.0f668a30.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Tenants/TenantDetails/EditDomains.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n \n );\n })}\n \n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"../../../../icons\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\"\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n
\n \n
\n );\n }\n\n return (\n
\n \n \n
\n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n \n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, Grid } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n classes,\n}: IUpdateTenantModal) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage]\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n enable_prometheus: true,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n
\n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
\n
\n
\n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n
\n \n \n Clear\n \n \n Save\n \n \n
\n \n );\n};\n\nexport default withStyles(styles)(UpdateTenantModal);\n","import React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { LinearProgress, Stack } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n CapacityValues,\n ITenant,\n ValueUnit,\n} from \"../../Tenants/ListTenants/types\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport Loader from \"../Loader/Loader\";\nimport TenantCapacity from \"../../Tenants/ListTenants/TenantCapacity\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport LabelValuePair from \"./LabelValuePair\";\n\ninterface ISummaryUsageBar {\n tenant: ITenant;\n label: string;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n centerItem: {\n textAlign: \"center\",\n },\n });\n\nexport const BorderLinearProgress = withStyles((theme) => ({\n root: {\n height: 10,\n borderRadius: 5,\n },\n colorPrimary: {\n backgroundColor: \"#F4F4F4\",\n },\n bar: {\n borderRadius: 5,\n backgroundColor: \"#081C42\",\n },\n padChart: {\n padding: \"5px\",\n },\n}))(LinearProgress);\n\nconst SummaryUsageBar = ({\n classes,\n tenant,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.status?.usage?.raw) {\n const b = niceBytes(`${tenant.status.usage.raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity) {\n const b = niceBytes(`${tenant.status.usage.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity_usage) {\n const b = niceBytesInt(tenant.status.usage.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.status?.usage?.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size, variant: itemTenant.name };\n });\n let internalUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n \n )}\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n \n )}\n {healthStatus && (\n \n \n \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
\n \n \n \n
\n )}\n {renderComponent()}\n
\n );\n};\n\nexport default withStyles(styles)(SummaryUsageBar);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, Grid, IconButton } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IDomainsRequest,\n} from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport api from \"../../../../common/api\";\nimport RemoveIcon from \"../../../../icons/RemoveIcon\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IEditDomains {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n domains: IDomainsRequest | null;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n domainInline: {\n display: \"flex\",\n marginBottom: 15,\n },\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n width: 15,\n height: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst EditDomains = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n domains,\n classes,\n}: IEditDomains) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [consoleDomain, setConsoleDomain] = useState(\"\");\n const [minioDomains, setMinioDomains] = useState([\"\"]);\n const [consoleDomainValid, setConsoleDomainValid] = useState(true);\n const [minioDomainValid, setMinioDomainValid] = useState([true]);\n\n useEffect(() => {\n if (domains) {\n const consoleDomainSet = domains.console || \"\";\n setConsoleDomain(consoleDomainSet);\n\n if (consoleDomainSet !== \"\") {\n // We Validate console domain\n const consoleRegExp = new RegExp(\n /((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\/[a-zA-Z0-9]{1,})*?$/\n );\n\n setConsoleDomainValid(consoleRegExp.test(consoleDomainSet));\n } else {\n setConsoleDomainValid(true);\n }\n\n if (domains.minio && domains.minio.length > 0) {\n setMinioDomains(domains.minio);\n\n const minioRegExp = new RegExp(\n /((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?$/\n );\n\n const initialValidations = domains.minio.map((domain) => {\n if (domain.trim() !== \"\") {\n return minioRegExp.test(domain);\n } else {\n return true;\n }\n });\n\n setMinioDomainValid(initialValidations);\n }\n }\n }, [domains]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setConsoleDomain(\"\");\n setConsoleDomainValid(true);\n setMinioDomains([\"\"]);\n setMinioDomainValid([true]);\n };\n\n const updateDomainsList = () => {\n setIsSending(true);\n\n let payload = {\n domains: {\n console: consoleDomain,\n minio: minioDomains.filter((minioDomain) => minioDomain.trim() !== \"\"),\n },\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}/domains`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const cloneDomains = [...minioDomains];\n cloneDomains[index] = value;\n\n setMinioDomains(cloneDomains);\n };\n\n const addNewMinIODomain = () => {\n const cloneDomains = [...minioDomains];\n const cloneValidations = [...minioDomainValid];\n\n cloneDomains.push(\"\");\n cloneValidations.push(true);\n\n setMinioDomains(cloneDomains);\n setMinioDomainValid(cloneValidations);\n };\n\n const removeMinIODomain = (removeIndex: number) => {\n const filteredDomains = minioDomains.filter(\n (_, index) => index !== removeIndex\n );\n\n const filterValidations = minioDomainValid.filter(\n (_, index) => index !== removeIndex\n );\n\n setMinioDomains(filteredDomains);\n setMinioDomainValid(filterValidations);\n };\n\n const setMinioDomainValidation = (domainValid: boolean, index: number) => {\n const cloneValidation = [...minioDomainValid];\n cloneValidation[index] = domainValid;\n\n setMinioDomainValid(cloneValidation);\n };\n\n return (\n \n \n \n \n
\n ) => {\n setConsoleDomain(e.target.value);\n\n setConsoleDomainValid(e.target.validity.valid);\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n pattern={\n \"((http|https):\\\\/\\\\/)+[a-zA-Z0-9\\\\-.]{3,}\\\\.[a-zA-Z]{2,}(\\\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\\\/[a-zA-Z0-9]{1,})*?$\"\n }\n error={\n !consoleDomainValid\n ? \"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)\"\n : \"\"\n }\n />\n
\n
\n

MinIO Domains

\n
\n {minioDomains.map((domain, index) => {\n return (\n \n ) => {\n updateMinIODomain(e.target.value, index);\n setMinioDomainValidation(\n e.target.validity.valid,\n index\n );\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n pattern={\n \"((http|https):\\\\/\\\\/)+[a-zA-Z0-9\\\\-.]{3,}\\\\.[a-zA-Z]{2,}(\\\\.[a-zA-Z]{2,})?$\"\n }\n error={\n !minioDomainValid[index]\n ? \"MinIO domain format is incorrect (http|https://subdomain.domain)\"\n : \"\"\n }\n />\n
\n \n \n \n
\n\n
\n removeMinIODomain(index)}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n \n
\n \n \n Clear\n \n !domain).length > 0\n }\n onClick={updateDomainsList}\n >\n Save\n \n \n
\n
\n \n );\n};\n\nexport default withStyles(styles)(EditDomains);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid } from \"@mui/material\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SectionTitle from \"../../Common/SectionTitle\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { EditIcon } from \"../../../../icons\";\nimport EditDomains from \"./EditDomains\";\nimport { setTenantDetailsLoad } from \"../tenantsSlice\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { useParams } from \"react-router-dom\";\n\ninterface ITenantsSummary {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n detailSection: {\n \"& div\": {\n \"& b,i\": {\n minWidth: 80,\n display: \"block\",\n float: \"left\",\n },\n \"& i\": {\n fontStyle: \"normal\",\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n },\n \"& div\": {\n clear: \"both\",\n },\n clear: \"both\",\n marginBottom: 2,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n fontFamily: \"'Lato', sans-serif\",\n },\n autoGeneratedLink: {\n fontStyle: \"italic\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({\n tenant,\n classes,\n}: {\n tenant: ITenant | null;\n classes: any;\n}) => {\n if (!tenant) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n return (\n {}}\n switchOnly\n />\n );\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({ classes }: ITenantsSummary) => {\n const dispatch = useAppDispatch();\n const { tenantName, tenantNamespace } = useParams();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const logEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"logEnabled\", false)\n );\n const monitoringEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"monitoringEnabled\", false)\n );\n const encryptionEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"encryptionEnabled\", false)\n );\n const minioTLS = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"minioTLS\", false)\n );\n const adEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpAdEnabled\", false)\n );\n const oidcEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpOidcEnabled\", false)\n );\n\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n const [editDomainsOpen, setEditDomainsOpen] = useState(false);\n\n useEffect(() => {\n if (tenant) {\n setPoolCount(tenant.pools.length);\n setVolumes(tenant.total_volumes || 0);\n setInstances(tenant.total_instances || 0);\n }\n }, [tenant]);\n\n const closeEditDomainsModal = (refresh: boolean) => {\n setEditDomainsOpen(false);\n\n if (refresh) {\n dispatch(setTenantDetailsLoad(true));\n }\n };\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n }}\n idTenant={tenantName || \"\"}\n namespace={tenantNamespace || \"\"}\n />\n )}\n\n {editDomainsOpen && (\n \n )}\n\n Details\n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n

\n Domains\n }\n title={\"\"}\n onClick={() => {\n setEditDomainsOpen(true);\n }}\n />\n

\n
\n \n \n {(!tenant?.domains?.console ||\n tenant?.domains?.console === \"\") &&\n !tenant?.endpoints?.console\n ? \"-\"\n : \"\"}\n\n {tenant?.endpoints?.console && (\n \n \n {tenant?.endpoints?.console || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.console && tenant?.domains?.console !== \"\" && (\n \n {tenant?.domains?.console || \"\"}\n \n )}\n
\n }\n />\n \n \n \n {!tenant?.domains?.minio && !tenant?.endpoints?.minio\n ? \"-\"\n : \"\"}\n {tenant?.endpoints?.minio && (\n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.minio &&\n tenant.domains.minio.map((domain) => {\n return (\n \n \n {domain}\n \n
\n
\n );\n })}\n \n }\n />\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n Features\n \n \n\n \n \n \n \n \n\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(TenantSummary);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","classes","children","rest","className","deleteDialogStyles","content","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","wideLimit","noContentPadding","titleIcon","dispatch","useAppDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","totalValue","sizeItems","bgColor","height","borderRadius","display","transitionDuration","overflow","map","sizeElement","index","itemPercentage","toString","totalCapacity","usedSpaceVariants","statusClass","render","colors","BGColor","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","variant","filter","standardTierColor","usedPercentage","plotValues","plotValuesForUsageBar","plotVal","itemName","marginBottom","position","right","top","zIndex","left","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","minioImage","setMinioImage","imageRegistry","setImageRegistry","imageRegistryEndpoint","setImageRegistryEndpoint","imageRegistryUsername","setImageRegistryUsername","imageRegistryPassword","setImageRegistryPassword","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","disabled","trim","payload","image","enable_prometheus","registry","image_registry","username","password","api","then","catch","error","setModalErrorSnackMessage","colorPrimary","bar","padChart","LinearProgress","centerItem","textAlign","tenant","healthStatus","loading","raw","unit","capacity","used","localUse","tieredUse","status","usage","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","internalUsage","sum","tieredUsage","partsInternal","Loader","ErrorBlock","errorMessage","withBreak","TenantCapacity","Stack","spacing","md","alignItems","LabelValuePair","renderComponent","domainInline","overlayAction","marginLeft","background","domains","consoleDomain","setConsoleDomain","minioDomains","setMinioDomains","consoleDomainValid","setConsoleDomainValid","minioDomainValid","setMinioDomainValid","consoleDomainSet","console","consoleRegExp","minio","minioRegExp","initialValidations","domain","addNewMinIODomain","cloneDomains","cloneValidations","push","configSectionItem","containerItem","validity","valid","updateMinIODomain","domainValid","cloneValidation","setMinioDomainValidation","IconButton","Add","removeIndex","filteredDomains","_","filterValidations","removeMinIODomain","RemoveIcon","minioDomain","healthStatusToClass","health_status","redState","yellowState","greenState","greyState","StorageSummary","getToggle","toggleValue","idPrefix","switchOnly","featureRowStyle","justifyContent","marginTop","flexFlow","featureItemStyleProps","sx","flex","minWidth","tenantDetailsStyles","warning","success","detailSection","float","fontStyle","wordWrap","overflowWrap","clear","linkedSection","autoGeneratedLink","containerForHeader","useParams","tenantName","tenantNamespace","tenants","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","adEnabled","oidcEnabled","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","editDomainsOpen","setEditDomainsOpen","pools","total_volumes","total_instances","refresh","setTenantDetailsLoad","SectionTitle","separator","currentState","AButton","textOverflow","whiteSpace","wordBreak","RBIconButton","icon","endpoints","href","rel","write_quorum","drives_online","drives_offline","Box","errorBlock","component","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_excluded","joinChildren","childrenArray","React","Boolean","output","child","key","StackRoot","styled","slot","overridesResolver","props","styles","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","transformer","createUnarySpacing","base","Object","keys","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","inProps","ref","themeProps","useThemeProps","extendSxProp","divider","other","_objectWithoutPropertiesLoose","_jsx","as","componentWillMount","this","constructor","getDerivedStateFromProps","undefined","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1030.e86b3822.chunk.js b/portal-ui/build/static/js/1030.e86b3822.chunk.js new file mode 100644 index 0000000000..01881cf796 --- /dev/null +++ b/portal-ui/build/static/js/1030.e86b3822.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1030],{81806:function(e,n,t){var i=t(1413),o=t(45987),a=(t(72791),t(11135)),l=t(25787),r=t(80184),s=["classes","children"];n.Z=(0,l.Z)((function(e){return(0,a.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,a=(0,o.Z)(e,s);return(0,r.jsx)("button",(0,i.Z)((0,i.Z)({},a),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var i=t(29439),o=t(1413),a=t(72791),l=t(60364),r=t(13400),s=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),v=t(25787),p=t(23814),h=t(81551),f=t(29823),g=t(28057),x=t(87995),Z=t(80184);n.Z=(0,v.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,v=e.children,p=e.classes,j=e.wideLimit,b=void 0===j||j,y=e.noContentPadding,S=e.titleIcon,w=void 0===S?null:S,k=(0,h.TL)(),P=(0,a.useState)(!1),C=(0,i.Z)(P,2),R=C[0],N=C[1],I=(0,l.v9)((function(e){return e.system.modalSnackBar}));(0,a.useEffect)((function(){k((0,x.MK)(""))}),[k]),(0,a.useEffect)((function(){if(I){if(""===I.message)return void N(!1);"error"!==I.type&&N(!0)}}),[I]);var D=b?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return I&&(E=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(E=I.message)),(0,Z.jsxs)(c.Z,(0,o.Z)((0,o.Z)({open:t,classes:p},D),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,Z.jsxs)(d.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[w," ",m]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(r.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(f.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(s.Z,{open:R,className:p.snackBarModal,onClose:function(){N(!1),k((0,x.MK)(""))},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(I&&"error"===I.type?p.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:y?"":p.content,children:v})]}))}))},45902:function(e,n,t){var i=t(1413),o=(t(72791),t(53767)),a=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,l=e.value,r=void 0===l?"-":l,s=e.orientation,c=void 0===s?"column":s,d=e.stkProps,u=void 0===d?{}:d,m=e.lblProps,v=void 0===m?{}:m,p=e.valProps,h=void 0===p?{}:p;return(0,a.jsxs)(o.Z,(0,i.Z)((0,i.Z)({direction:{xs:"column",sm:c}},u),{},{children:[(0,a.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:600}},v),{},{children:t})),(0,a.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:r}))]}))}},74815:function(e,n,t){t.d(n,{Z:function(){return u}});var i=t(93433),o=(t(72791),t(73909)),a=t(21041),l=t(41048),r=t(45248),s=t(15900),c=t(80184),d=function(e){var n=e.totalValue,t=e.sizeItems,i=e.bgColor,o=void 0===i?"#ededed":i;return(0,c.jsx)("div",{style:{width:"100%",height:12,backgroundColor:o,borderRadius:30,display:"flex",transitionDuration:"0.3s",overflow:"hidden"},children:t.map((function(e,t){var i=100*e.value/n;return(0,c.jsx)("div",{style:{width:"".concat(i,"%"),height:"100%",backgroundColor:e.color,transitionDuration:"0.3s"}},"itemSize-".concat(t.toString()))}))})},u=function(e){var n=e.totalCapacity,t=e.usedSpaceVariants,u=e.statusClass,m=e.render,v=void 0===m?"pie":m,p=["#8dacd3","#bca1ea","#92e8d2","#efc9ac","#97f274","#f7d291","#71ACCB","#f28282","#e28cc1","#2781B0"],h="#ededed",f=t.reduce((function(e,n){return e+n.value}),0),g=n-f,x=[],Z=t.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};t.length>10?x=[{value:f-Z.value,color:"#2781B0",label:"Total Tiers Space"}]:x=t.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,n){return{value:e.value,color:p[n],label:"Tier - ".concat(e.variant)}}));var j="#07193E",b=100*Z.value/n;b>=90?j="#C83B51":b>=75&&(j="#FFAB0F");var y=[{value:Z.value,color:j,label:"Used Space by Tenant"}].concat((0,i.Z)(x),[{value:g,color:"bar"===v?h:"transparent",label:"Empty Space"}]);if("bar"===v){var S=y.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,c.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,c.jsx)(d,{totalValue:n,sizeItems:S,bgColor:h})})}return(0,c.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,c.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:u,children:(0,c.jsx)(s.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,c.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(f)?"N/A":(0,r.l5)(f)}),(0,c.jsx)("div",{children:(0,c.jsxs)(o.u,{width:110,height:110,children:[(0,c.jsx)(a.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:h,isAnimationActive:!1,stroke:"none"}),(0,c.jsx)(a.b,{data:y,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:y.map((function(e,n){return(0,c.jsx)(l.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(n))}))})]})})]})}},21353:function(e,n,t){t.r(n),t.d(n,{default:function(){return G}});var i=t(29439),o=t(1413),a=t(72791),l=t(60364),r=t(26181),s=t.n(r),c=t(11135),d=t(25787),u=t(23814),m=t(61889),v=t(64554),p=t(36151),h=t(56028),f=t(21435),g=t(37516),x=t(81207),Z=t(87995),j=t(81551),b=t(80184),y=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({infoText:{fontSize:14}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,l=e.namespace,r=e.idTenant,s=e.classes,c=(0,j.TL)(),d=(0,a.useState)(!1),u=(0,i.Z)(d,2),v=u[0],y=u[1],S=(0,a.useState)(""),w=(0,i.Z)(S,2),k=w[0],P=w[1],C=(0,a.useState)(!1),R=(0,i.Z)(C,2),N=R[0],I=R[1],D=(0,a.useState)(""),E=(0,i.Z)(D,2),F=E[0],A=E[1],_=(0,a.useState)(""),B=(0,i.Z)(_,2),M=B[0],T=B[1],U=(0,a.useState)(""),W=(0,i.Z)(U,2),z=W[0],L=W[1],O=(0,a.useState)(!0),$=(0,i.Z)(O,2),V=$[0],K=$[1],G=(0,a.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)K(n.test(k))}),[k]);(0,a.useEffect)((function(){G("minioImage")}),[k,G]);return(0,b.jsx)(h.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,b.jsx)("div",{className:s.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:k,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){P(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(g.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:N,onChange:function(e){I(!N)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),N&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:F,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){A(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:M,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){T(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:z,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){L(e.target.value)}})})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,b.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){P(""),I(!1),A(""),T(""),L("")},children:"Clear"}),(0,b.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:!V||N&&(""===F.trim()||""===M.trim()||""===z.trim())||v,onClick:function(){y(!0);var e={image:k,enable_prometheus:!0};if(N){var n={image_registry:{registry:F,username:M,password:z}};e=(0,o.Z)((0,o.Z)({},e),n)}x.Z.invoke("PUT","/api/v1/namespaces/".concat(l,"/tenants/").concat(r),e).then((function(){y(!1),c((0,Z.y1)("Image updated successfully")),t(!0)})).catch((function(e){c((0,Z.zb)(e)),y(!1)}))},children:"Save"})]})]})})})),S=t(81806),w=t(40986),k=t(53767),P=t(15900),C=t(45248),R=t(72401),N=t(74815),I=t(22512),D=t(45902),E=((0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(w.Z),(0,d.Z)((function(e){return(0,c.Z)({centerItem:{textAlign:"center"}})}))((function(e){var n,t,i,o,l,r,s=e.classes,c=e.tenant,d=e.healthStatus,u=e.loading,v=e.error,p={value:"n/a",unit:""},h={value:"n/a",unit:""},f={value:"n/a",unit:""},g={value:"n/a",unit:""},x={value:"n/a",unit:""};if(null!==(n=c.status)&&void 0!==n&&null!==(t=n.usage)&&void 0!==t&&t.raw){var Z=(0,C.ae)("".concat(c.status.usage.raw),!0).split(" ");p.value=Z[0],p.unit=Z[1]}if(null!==(i=c.status)&&void 0!==i&&null!==(o=i.usage)&&void 0!==o&&o.capacity){var j=(0,C.ae)("".concat(c.status.usage.capacity),!0).split(" ");h.value=j[0],h.unit=j[1]}if(null!==(l=c.status)&&void 0!==l&&null!==(r=l.usage)&&void 0!==r&&r.capacity_usage){var y=(0,C.l5)(c.status.usage.capacity_usage,!0).split(" ");f.value=y[0],f.unit=y[1]}var S=[];if(c.tiers&&0!==c.tiers.length){S=c.tiers.map((function(e){return{value:e.size,variant:e.name}}));var w=c.tiers.filter((function(e){return"internal"===e.type})).reduce((function(e,n){return e+n.size}),0),E=c.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,n){return e+n.size}),0),F=(0,C.l5)(E,!0).split(" ");x.value=F[0],x.unit=F[1];var A=(0,C.l5)(w,!0).split(" ");g.value=A[0],g.unit=A[1]}else{var _,B;S=[{value:(null===(_=c.status)||void 0===_||null===(B=_.usage)||void 0===B?void 0:B.capacity_usage)||0,variant:"STANDARD"}]}return(0,b.jsxs)(a.Fragment,{children:[u&&(0,b.jsx)("div",{className:s.padChart,children:(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.centerItem,children:(0,b.jsx)(R.Z,{style:{width:40,height:40}})})}),function(){var e,n;return u?null:""!==v?(0,b.jsx)(I.Z,{errorMessage:v,withBreak:!1}):(0,b.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,b.jsx)(N.Z,{totalCapacity:(null===(e=c.status)||void 0===e||null===(n=e.usage)||void 0===n?void 0:n.raw)||0,usedSpaceVariants:S,statusClass:"",render:"bar"}),(0,b.jsxs)(k.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"0 0 15px 0",children:[(!c.tiers||0===c.tiers.length)&&(0,b.jsx)(a.Fragment,{children:(0,b.jsx)(D.Z,{label:"Internal:",orientation:"row",value:"".concat(f.value," ").concat(f.unit)})}),c.tiers&&c.tiers.length>0&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)(D.Z,{label:"Internal:",orientation:"row",value:"".concat(g.value," ").concat(g.unit)}),(0,b.jsx)(D.Z,{label:"Tiered:",orientation:"row",value:"".concat(x.value," ").concat(x.unit)})]}),d&&(0,b.jsx)(D.Z,{orientation:"row",label:"Health:",value:(0,b.jsx)("span",{className:d,children:(0,b.jsx)(P.J$M,{})})})]})]})}()]})}))),F=t(50896),A=t(40603),_=t(93433),B=t(13400),M=t(42419),T=t(51979),U=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({domainInline:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,o=e.namespace,l=e.idTenant,r=e.domains,s=e.classes,c=(0,j.TL)(),d=(0,a.useState)(!1),u=(0,i.Z)(d,2),v=u[0],g=u[1],y=(0,a.useState)(""),S=(0,i.Z)(y,2),w=S[0],k=S[1],P=(0,a.useState)([""]),C=(0,i.Z)(P,2),R=C[0],N=C[1],I=(0,a.useState)(!0),D=(0,i.Z)(I,2),E=D[0],F=D[1],A=(0,a.useState)([!0]),U=(0,i.Z)(A,2),W=U[0],z=U[1];(0,a.useEffect)((function(){if(r){var e=r.console||"";if(k(e),""!==e){var n=new RegExp(/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/);F(n.test(e))}else F(!0);if(r.minio&&r.minio.length>0){N(r.minio);var t=new RegExp(/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/),i=r.minio.map((function(e){return""===e.trim()||t.test(e)}));z(i)}}}),[r]);var L=function(){var e=(0,_.Z)(R),n=(0,_.Z)(W);e.push(""),n.push(!0),N(e),z(n)};return(0,b.jsx)(h.Z,{title:"Edit Tenant Domains - ".concat(l),modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsx)(m.ZP,{container:!0,children:(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(s.configSectionItem),children:[(0,b.jsx)("div",{className:s.containerItem,children:(0,b.jsx)(f.Z,{id:"console_domain",name:"console_domain",onChange:function(e){k(e.target.value),F(e.target.validity.valid)},label:"Console Domain",value:w,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-.\\/]*)?$",error:E?"":"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{children:"MinIO Domains"}),(0,b.jsx)("div",{children:R.map((function(e,n){return(0,b.jsxs)("div",{className:"".concat(s.domainInline),children:[(0,b.jsx)(f.Z,{id:"minio-domain-".concat(n.toString()),name:"minio-domain-".concat(n.toString()),onChange:function(e){!function(e,n){var t=(0,_.Z)(R);t[n]=e,N(t)}(e.target.value,n),function(e,n){var t=(0,_.Z)(W);t[n]=e,z(t)}(e.target.validity.valid,n)},label:"MinIO Domain ".concat(n+1),value:e,placeholder:"Eg. http://subdomain.domain",pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$",error:W[n]?"":"MinIO domain format is incorrect (http|https://subdomain.domain)"}),(0,b.jsx)("div",{className:s.overlayAction,children:(0,b.jsx)(B.Z,{size:"small",onClick:L,disabled:n!==R.length-1,children:(0,b.jsx)(M.Z,{})})}),(0,b.jsx)("div",{className:s.overlayAction,children:(0,b.jsx)(B.Z,{size:"small",onClick:function(){return function(e){var n=R.filter((function(n,t){return t!==e})),t=W.filter((function(n,t){return t!==e}));N(n),z(t)}(n)},disabled:R.length<=1,children:(0,b.jsx)(T.Z,{})})})]},"minio-domain-key-".concat(n.toString()))}))})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,b.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){k(""),F(!0),N([""]),z([!0])},children:"Clear"}),(0,b.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:v||!E||W.filter((function(e){return!e})).length>0,onClick:function(){g(!0);var e={domains:{console:w,minio:R.filter((function(e){return""!==e.trim()}))}};x.Z.invoke("PUT","/api/v1/namespaces/".concat(o,"/tenants/").concat(l,"/domains"),e).then((function(){g(!1),c((0,Z.y1)("Domains updated successfully")),t(!0)})).catch((function(e){g(!1),c((0,Z.zb)(e))}))},children:"Save"})]})]})})})})),W=t(16871),z=t(82295),L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"red",n=arguments.length>1?arguments[1]:void 0;return"red"===e?n.redState:"yellow"===e?n.yellowState:"green"===e?n.greenState:n.greyState},O=function(e){var n,t=e.tenant,i=e.classes;return t?(0,b.jsx)(E,{tenant:t,label:"Storage",error:"",loading:!1,healthStatus:L(null===t||void 0===t||null===(n=t.status)||void 0===n?void 0:n.health_status,i)}):null},$=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,b.jsx)(g.Z,{indicatorLabels:["Enabled","Disabled"],checked:e,value:e,id:"".concat(n,"-status"),name:"".concat(n,"-status"),onChange:function(){},switchOnly:!0})},V={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},K={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},G=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({},u.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},detailSection:{"& div":{"& b,i":{minWidth:80,display:"block",float:"left"},"& i":{fontStyle:"normal",wordWrap:"break-word",overflowWrap:"break-word"},"& div":{clear:"both"},clear:"both",marginBottom:2}},linkedSection:{color:e.palette.info.main,fontFamily:"'Lato', sans-serif"},autoGeneratedLink:{fontStyle:"italic"}},(0,u.Bz)(e.spacing(4))))}))((function(e){var n,t,r,c,d,u,p,h,f,g,x,Z,w,k,C,R,N,I,E,_,B,M,T,L,G=e.classes,H=(0,j.TL)(),q=(0,W.UO)(),J=q.tenantName,Q=q.tenantNamespace,Y=(0,l.v9)((function(e){return e.tenants.tenantInfo})),X=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"logEnabled",!1)})),ee=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"monitoringEnabled",!1)})),ne=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"encryptionEnabled",!1)})),te=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"minioTLS",!1)})),ie=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpAdEnabled",!1)})),oe=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpOidcEnabled",!1)})),ae=(0,a.useState)(0),le=(0,i.Z)(ae,2),re=le[0],se=le[1],ce=(0,a.useState)(0),de=(0,i.Z)(ce,2),ue=de[0],me=de[1],ve=(0,a.useState)(0),pe=(0,i.Z)(ve,2),he=pe[0],fe=pe[1],ge=(0,a.useState)(!1),xe=(0,i.Z)(ge,2),Ze=xe[0],je=xe[1],be=(0,a.useState)(!1),ye=(0,i.Z)(be,2),Se=ye[0],we=ye[1];(0,a.useEffect)((function(){Y&&(se(Y.pools.length),fe(Y.total_volumes||0),me(Y.total_instances||0))}),[Y]);return(0,b.jsxs)(a.Fragment,{children:[Ze&&(0,b.jsx)(y,{open:Ze,closeModalAndRefresh:function(e){je(!1),e&&H((0,z.v)())},idTenant:J||"",namespace:Q||""}),Se&&(0,b.jsx)(U,{open:Se,idTenant:J||"",namespace:Q||"",domains:(null===Y||void 0===Y?void 0:Y.domains)||null,closeModalAndRefresh:function(e){we(!1),e&&H((0,z.v)())}}),(0,b.jsx)(F.Z,{separator:!1,children:"Details"}),(0,b.jsx)(O,{tenant:Y,classes:G}),(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"State:",value:null===Y||void 0===Y?void 0:Y.currentState})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"MinIO:",value:(0,b.jsx)(S.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){je(!0)},children:Y?Y.image:""})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsxs)("h3",{children:["Domains",(0,b.jsx)(A.Z,{icon:(0,b.jsx)(P.dY8,{}),title:"",onClick:function(){we(!0)}})]})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"Console:",value:(0,b.jsxs)(a.Fragment,{children:[null!==Y&&void 0!==Y&&null!==(n=Y.domains)&&void 0!==n&&n.console&&""!==(null===Y||void 0===Y||null===(t=Y.domains)||void 0===t?void 0:t.console)||null!==Y&&void 0!==Y&&null!==(r=Y.endpoints)&&void 0!==r&&r.console?"":"-",(null===Y||void 0===Y||null===(c=Y.endpoints)||void 0===c?void 0:c.console)&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:null===Y||void 0===Y||null===(d=Y.endpoints)||void 0===d?void 0:d.console,target:"_blank",rel:"noopener noreferrer",className:"".concat(G.linkedSection," ").concat(G.autoGeneratedLink),children:(null===Y||void 0===Y||null===(u=Y.endpoints)||void 0===u?void 0:u.console)||"-"}),(0,b.jsx)("br",{})]}),(null===Y||void 0===Y||null===(p=Y.domains)||void 0===p?void 0:p.console)&&""!==(null===Y||void 0===Y||null===(h=Y.domains)||void 0===h?void 0:h.console)&&(0,b.jsx)("a",{href:(null===Y||void 0===Y||null===(f=Y.domains)||void 0===f?void 0:f.console)||"",target:"_blank",rel:"noopener noreferrer",className:G.linkedSection,children:(null===Y||void 0===Y||null===(g=Y.domains)||void 0===g?void 0:g.console)||""})]})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"MinIO Endpoint".concat(null!==Y&&void 0!==Y&&null!==(x=Y.endpoints)&&void 0!==x&&x.minio&&1===(null===Y||void 0===Y||null===(Z=Y.endpoints)||void 0===Z?void 0:Z.minio.length)?"":"s",":"),value:(0,b.jsxs)(a.Fragment,{children:[null!==Y&&void 0!==Y&&null!==(w=Y.domains)&&void 0!==w&&w.minio||null!==Y&&void 0!==Y&&null!==(k=Y.endpoints)&&void 0!==k&&k.minio?"":"-",(null===Y||void 0===Y||null===(C=Y.endpoints)||void 0===C?void 0:C.minio)&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:null===Y||void 0===Y||null===(R=Y.endpoints)||void 0===R?void 0:R.minio,target:"_blank",rel:"noopener noreferrer",className:"".concat(G.linkedSection," ").concat(G.autoGeneratedLink),children:(null===Y||void 0===Y||null===(N=Y.endpoints)||void 0===N?void 0:N.minio)||"-"}),(0,b.jsx)("br",{})]}),(null===Y||void 0===Y||null===(I=Y.domains)||void 0===I?void 0:I.minio)&&Y.domains.minio.map((function(e){return(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:G.linkedSection,children:e}),(0,b.jsx)("br",{})]},e)}))]})})})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"Instances:",value:ue})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"Clusters:",value:re,stkProps:{style:{marginRight:47}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"Total Drives:",value:he,stkProps:{style:{marginRight:43}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"Write Quorum:",value:null!==Y&&void 0!==Y&&null!==(E=Y.status)&&void 0!==E&&E.write_quorum?null===Y||void 0===Y||null===(_=Y.status)||void 0===_?void 0:_.write_quorum:0})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"Drives Online:",value:null!==Y&&void 0!==Y&&null!==(B=Y.status)&&void 0!==B&&B.drives_online?null===Y||void 0===Y||null===(M=Y.status)||void 0===M?void 0:M.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(D.Z,{label:"Drives Offline:",value:null!==Y&&void 0!==Y&&null!==(T=Y.status)&&void 0!==T&&T.drives_offline?null===Y||void 0===Y||null===(L=Y.status)||void 0===L?void 0:L.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,b.jsx)(F.Z,{children:"Features"}),(0,b.jsxs)(v.Z,{sx:(0,o.Z)({},V),children:[(0,b.jsx)(D.Z,(0,o.Z)({orientation:"row",label:"Logs:",value:$(X,"tenant-log")},K)),(0,b.jsx)(D.Z,(0,o.Z)({orientation:"row",label:"AD/LDAP:",value:$(ie,"tenant-sts")},K)),(0,b.jsx)(D.Z,(0,o.Z)({orientation:"row",label:"Encryption:",value:$(ne,"tenant-enc")},K))]}),(0,b.jsxs)(v.Z,{sx:(0,o.Z)({},V),children:[(0,b.jsx)(D.Z,(0,o.Z)({orientation:"row",label:"MinIO TLS:",value:$(te,"tenant-tls")},K)),(0,b.jsx)(D.Z,(0,o.Z)({orientation:"row",label:"Monitoring:",value:$(ee,"tenant-monitor")},K)),(0,b.jsx)(D.Z,(0,o.Z)({orientation:"row",label:"OpenID:",value:$(oe,"tenant-oidc")},K))]})]})}))},22512:function(e,n,t){var i=t(72791),o=t(20890),a=t(11135),l=t(25787),r=t(80184);n.Z=(0,l.Z)((function(e){var n;return(0,a.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,a=e.withBreak,l=void 0===a||a;return(0,r.jsxs)(i.Fragment,{children:[l&&(0,r.jsx)("br",{}),(0,r.jsx)(o.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(95318);n.Z=void 0;var o=i(t(45649)),a=t(80184),l=(0,o.default)((0,a.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=l},53767:function(e,n,t){var i=t(4942),o=t(63366),a=t(87462),l=t(72791),r=t(51184),s=t(45682),c=t(78519),d=t(82466),u=t(66934),m=t(31402),v=t(80184),p=["component","direction","spacing","divider","children"];function h(e,n){var t=l.Children.toArray(e).filter(Boolean);return t.reduce((function(e,i,o){return e.push(i),o :not(style) + :not(style)":(0,i.Z)({margin:0},"margin".concat((o=t?u[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[o])),(0,s.NA)(l,e))};var o})))}return o})),g=l.forwardRef((function(e,n){var t=(0,m.Z)({props:e,name:"MuiStack"}),i=(0,c.Z)(t),l=i.component,r=void 0===l?"div":l,s=i.direction,d=void 0===s?"column":s,u=i.spacing,g=void 0===u?0:u,x=i.divider,Z=i.children,j=(0,o.Z)(i,p),b={direction:d,spacing:g};return(0,v.jsx)(f,(0,a.Z)({as:r,ownerState:b,ref:n},j,{children:x?h(Z,x):Z}))}));n.Z=g},23688:function(e,n,t){function i(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function o(e){this.setState(function(n){var t=this.constructor.getDerivedStateFromProps(e,n);return null!==t&&void 0!==t?t:null}.bind(this))}function a(e,n){try{var t=this.props,i=this.state;this.props=e,this.state=n,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(t,i)}finally{this.props=t,this.state=i}}function l(e){var n=e.prototype;if(!n||!n.isReactComponent)throw new Error("Can only polyfill class components");if("function"!==typeof e.getDerivedStateFromProps&&"function"!==typeof n.getSnapshotBeforeUpdate)return e;var t=null,l=null,r=null;if("function"===typeof n.componentWillMount?t="componentWillMount":"function"===typeof n.UNSAFE_componentWillMount&&(t="UNSAFE_componentWillMount"),"function"===typeof n.componentWillReceiveProps?l="componentWillReceiveProps":"function"===typeof n.UNSAFE_componentWillReceiveProps&&(l="UNSAFE_componentWillReceiveProps"),"function"===typeof n.componentWillUpdate?r="componentWillUpdate":"function"===typeof n.UNSAFE_componentWillUpdate&&(r="UNSAFE_componentWillUpdate"),null!==t||null!==l||null!==r){var s=e.displayName||e.name,c="function"===typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+c+" but also contains the following legacy lifecycles:"+(null!==t?"\n "+t:"")+(null!==l?"\n "+l:"")+(null!==r?"\n "+r:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"===typeof e.getDerivedStateFromProps&&(n.componentWillMount=i,n.componentWillReceiveProps=o),"function"===typeof n.getSnapshotBeforeUpdate){if("function"!==typeof n.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");n.componentWillUpdate=a;var d=n.componentDidUpdate;n.componentDidUpdate=function(e,n,t){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:t;d.call(this,e,n,i)}}return e}t.r(n),t.d(n,{polyfill:function(){return l}}),i.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0}}]); +//# sourceMappingURL=1030.e86b3822.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1030.e86b3822.chunk.js.map b/portal-ui/build/static/js/1030.e86b3822.chunk.js.map new file mode 100644 index 0000000000..72522fb2fa --- /dev/null +++ b/portal-ui/build/static/js/1030.e86b3822.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1030.e86b3822.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Tenants/TenantDetails/EditDomains.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n \n );\n })}\n \n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"../../../../icons\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\"\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n
\n \n
\n );\n }\n\n return (\n
\n \n \n
\n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n \n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, Grid } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\nimport {\n setModalErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n classes,\n}: IUpdateTenantModal) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage]\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n enable_prometheus: true,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload\n )\n .then(() => {\n setIsSending(false);\n dispatch(setSnackBarMessage(`Image updated successfully`));\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n
\n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
\n
\n
\n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n
\n \n \n Clear\n \n \n Save\n \n \n
\n \n );\n};\n\nexport default withStyles(styles)(UpdateTenantModal);\n","import React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { LinearProgress, Stack } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n CapacityValues,\n ITenant,\n ValueUnit,\n} from \"../../Tenants/ListTenants/types\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport Loader from \"../Loader/Loader\";\nimport TenantCapacity from \"../../Tenants/ListTenants/TenantCapacity\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport LabelValuePair from \"./LabelValuePair\";\n\ninterface ISummaryUsageBar {\n tenant: ITenant;\n label: string;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n centerItem: {\n textAlign: \"center\",\n },\n });\n\nexport const BorderLinearProgress = withStyles((theme) => ({\n root: {\n height: 10,\n borderRadius: 5,\n },\n colorPrimary: {\n backgroundColor: \"#F4F4F4\",\n },\n bar: {\n borderRadius: 5,\n backgroundColor: \"#081C42\",\n },\n padChart: {\n padding: \"5px\",\n },\n}))(LinearProgress);\n\nconst SummaryUsageBar = ({\n classes,\n tenant,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.status?.usage?.raw) {\n const b = niceBytes(`${tenant.status.usage.raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity) {\n const b = niceBytes(`${tenant.status.usage.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity_usage) {\n const b = niceBytesInt(tenant.status.usage.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.status?.usage?.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size, variant: itemTenant.name };\n });\n let internalUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n \n )}\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n \n )}\n {healthStatus && (\n \n \n \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
\n \n \n \n
\n )}\n {renderComponent()}\n
\n );\n};\n\nexport default withStyles(styles)(SummaryUsageBar);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, Grid, IconButton } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IDomainsRequest,\n} from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport api from \"../../../../common/api\";\nimport RemoveIcon from \"../../../../icons/RemoveIcon\";\nimport {\n setModalErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IEditDomains {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n domains: IDomainsRequest | null;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n domainInline: {\n display: \"flex\",\n marginBottom: 15,\n },\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n width: 15,\n height: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst EditDomains = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n domains,\n classes,\n}: IEditDomains) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [consoleDomain, setConsoleDomain] = useState(\"\");\n const [minioDomains, setMinioDomains] = useState([\"\"]);\n const [consoleDomainValid, setConsoleDomainValid] = useState(true);\n const [minioDomainValid, setMinioDomainValid] = useState([true]);\n\n useEffect(() => {\n if (domains) {\n const consoleDomainSet = domains.console || \"\";\n setConsoleDomain(consoleDomainSet);\n\n if (consoleDomainSet !== \"\") {\n // We Validate console domain\n const consoleRegExp = new RegExp(\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-./]*)?$/\n );\n\n setConsoleDomainValid(consoleRegExp.test(consoleDomainSet));\n } else {\n setConsoleDomainValid(true);\n }\n\n if (domains.minio && domains.minio.length > 0) {\n setMinioDomains(domains.minio);\n\n const minioRegExp = new RegExp(\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$/\n );\n\n const initialValidations = domains.minio.map((domain) => {\n if (domain.trim() !== \"\") {\n return minioRegExp.test(domain);\n } else {\n return true;\n }\n });\n\n setMinioDomainValid(initialValidations);\n }\n }\n }, [domains]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setConsoleDomain(\"\");\n setConsoleDomainValid(true);\n setMinioDomains([\"\"]);\n setMinioDomainValid([true]);\n };\n\n const updateDomainsList = () => {\n setIsSending(true);\n\n let payload = {\n domains: {\n console: consoleDomain,\n minio: minioDomains.filter((minioDomain) => minioDomain.trim() !== \"\"),\n },\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}/domains`,\n payload\n )\n .then(() => {\n setIsSending(false);\n dispatch(setSnackBarMessage(`Domains updated successfully`));\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setIsSending(false);\n dispatch(setModalErrorSnackMessage(error));\n });\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const cloneDomains = [...minioDomains];\n cloneDomains[index] = value;\n\n setMinioDomains(cloneDomains);\n };\n\n const addNewMinIODomain = () => {\n const cloneDomains = [...minioDomains];\n const cloneValidations = [...minioDomainValid];\n\n cloneDomains.push(\"\");\n cloneValidations.push(true);\n\n setMinioDomains(cloneDomains);\n setMinioDomainValid(cloneValidations);\n };\n\n const removeMinIODomain = (removeIndex: number) => {\n const filteredDomains = minioDomains.filter(\n (_, index) => index !== removeIndex\n );\n\n const filterValidations = minioDomainValid.filter(\n (_, index) => index !== removeIndex\n );\n\n setMinioDomains(filteredDomains);\n setMinioDomainValid(filterValidations);\n };\n\n const setMinioDomainValidation = (domainValid: boolean, index: number) => {\n const cloneValidation = [...minioDomainValid];\n cloneValidation[index] = domainValid;\n\n setMinioDomainValid(cloneValidation);\n };\n return (\n \n \n \n \n
\n ) => {\n setConsoleDomain(e.target.value);\n\n setConsoleDomainValid(e.target.validity.valid);\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?(\\\\/[a-zA-Z0-9\\\\-.\\\\/]*)?$\"\n }\n error={\n !consoleDomainValid\n ? \"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)\"\n : \"\"\n }\n />\n
\n
\n

MinIO Domains

\n
\n {minioDomains.map((domain, index) => {\n return (\n \n ) => {\n updateMinIODomain(e.target.value, index);\n setMinioDomainValidation(\n e.target.validity.valid,\n index\n );\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?$\"\n }\n error={\n !minioDomainValid[index]\n ? \"MinIO domain format is incorrect (http|https://subdomain.domain)\"\n : \"\"\n }\n />\n
\n \n \n \n
\n\n
\n removeMinIODomain(index)}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n \n
\n \n \n Clear\n \n !domain).length > 0\n }\n onClick={updateDomainsList}\n >\n Save\n \n \n
\n
\n \n );\n};\n\nexport default withStyles(styles)(EditDomains);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid } from \"@mui/material\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SectionTitle from \"../../Common/SectionTitle\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { EditIcon } from \"../../../../icons\";\nimport EditDomains from \"./EditDomains\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { useParams } from \"react-router-dom\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\n\ninterface ITenantsSummary {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n detailSection: {\n \"& div\": {\n \"& b,i\": {\n minWidth: 80,\n display: \"block\",\n float: \"left\",\n },\n \"& i\": {\n fontStyle: \"normal\",\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n },\n \"& div\": {\n clear: \"both\",\n },\n clear: \"both\",\n marginBottom: 2,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n fontFamily: \"'Lato', sans-serif\",\n },\n autoGeneratedLink: {\n fontStyle: \"italic\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({\n tenant,\n classes,\n}: {\n tenant: ITenant | null;\n classes: any;\n}) => {\n if (!tenant) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n return (\n {}}\n switchOnly\n />\n );\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({ classes }: ITenantsSummary) => {\n const dispatch = useAppDispatch();\n const { tenantName, tenantNamespace } = useParams();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const logEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"logEnabled\", false)\n );\n const monitoringEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"monitoringEnabled\", false)\n );\n const encryptionEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"encryptionEnabled\", false)\n );\n const minioTLS = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"minioTLS\", false)\n );\n const adEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpAdEnabled\", false)\n );\n const oidcEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpOidcEnabled\", false)\n );\n\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n const [editDomainsOpen, setEditDomainsOpen] = useState(false);\n\n useEffect(() => {\n if (tenant) {\n setPoolCount(tenant.pools.length);\n setVolumes(tenant.total_volumes || 0);\n setInstances(tenant.total_instances || 0);\n }\n }, [tenant]);\n\n const closeEditDomainsModal = (refresh: boolean) => {\n setEditDomainsOpen(false);\n if (refresh) {\n dispatch(getTenantAsync());\n }\n };\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n if (refresh) {\n dispatch(getTenantAsync());\n }\n }}\n idTenant={tenantName || \"\"}\n namespace={tenantNamespace || \"\"}\n />\n )}\n\n {editDomainsOpen && (\n \n )}\n\n Details\n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n

\n Domains\n }\n title={\"\"}\n onClick={() => {\n setEditDomainsOpen(true);\n }}\n />\n

\n
\n \n \n {(!tenant?.domains?.console ||\n tenant?.domains?.console === \"\") &&\n !tenant?.endpoints?.console\n ? \"-\"\n : \"\"}\n\n {tenant?.endpoints?.console && (\n \n \n {tenant?.endpoints?.console || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.console && tenant?.domains?.console !== \"\" && (\n \n {tenant?.domains?.console || \"\"}\n \n )}\n
\n }\n />\n \n \n \n {!tenant?.domains?.minio && !tenant?.endpoints?.minio\n ? \"-\"\n : \"\"}\n {tenant?.endpoints?.minio && (\n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.minio &&\n tenant.domains.minio.map((domain) => {\n return (\n \n \n {domain}\n \n
\n
\n );\n })}\n \n }\n />\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n Features\n \n \n\n \n \n \n \n \n\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(TenantSummary);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","classes","children","rest","className","deleteDialogStyles","content","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","wideLimit","noContentPadding","titleIcon","dispatch","useAppDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","totalValue","sizeItems","bgColor","height","borderRadius","display","transitionDuration","overflow","map","sizeElement","index","itemPercentage","toString","totalCapacity","usedSpaceVariants","statusClass","render","colors","BGColor","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","variant","filter","standardTierColor","usedPercentage","plotValues","plotValuesForUsageBar","plotVal","itemName","marginBottom","position","right","top","zIndex","left","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","minioImage","setMinioImage","imageRegistry","setImageRegistry","imageRegistryEndpoint","setImageRegistryEndpoint","imageRegistryUsername","setImageRegistryUsername","imageRegistryPassword","setImageRegistryPassword","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","disabled","trim","payload","image","enable_prometheus","registry","image_registry","username","password","api","then","setSnackBarMessage","catch","error","setModalErrorSnackMessage","colorPrimary","bar","padChart","LinearProgress","centerItem","textAlign","tenant","healthStatus","loading","raw","unit","capacity","used","localUse","tieredUse","status","usage","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","internalUsage","sum","tieredUsage","partsInternal","Loader","ErrorBlock","errorMessage","withBreak","TenantCapacity","Stack","spacing","md","alignItems","LabelValuePair","renderComponent","domainInline","overlayAction","marginLeft","background","domains","consoleDomain","setConsoleDomain","minioDomains","setMinioDomains","consoleDomainValid","setConsoleDomainValid","minioDomainValid","setMinioDomainValid","consoleDomainSet","console","consoleRegExp","minio","minioRegExp","initialValidations","domain","addNewMinIODomain","cloneDomains","cloneValidations","push","configSectionItem","containerItem","validity","valid","updateMinIODomain","domainValid","cloneValidation","setMinioDomainValidation","IconButton","Add","removeIndex","filteredDomains","_","filterValidations","removeMinIODomain","RemoveIcon","minioDomain","healthStatusToClass","health_status","redState","yellowState","greenState","greyState","StorageSummary","getToggle","toggleValue","idPrefix","switchOnly","featureRowStyle","justifyContent","marginTop","flexFlow","featureItemStyleProps","sx","flex","minWidth","tenantDetailsStyles","warning","success","detailSection","float","fontStyle","wordWrap","overflowWrap","clear","linkedSection","autoGeneratedLink","containerForHeader","useParams","tenantName","tenantNamespace","tenants","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","adEnabled","oidcEnabled","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","editDomainsOpen","setEditDomainsOpen","pools","total_volumes","total_instances","refresh","getTenantAsync","SectionTitle","separator","currentState","AButton","textOverflow","whiteSpace","wordBreak","RBIconButton","icon","endpoints","href","rel","write_quorum","drives_online","drives_offline","Box","errorBlock","component","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_excluded","joinChildren","childrenArray","React","Boolean","output","child","key","StackRoot","styled","slot","overridesResolver","props","styles","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","transformer","createUnarySpacing","base","Object","keys","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","inProps","ref","themeProps","useThemeProps","extendSxProp","divider","other","_objectWithoutPropertiesLoose","_jsx","as","componentWillMount","this","constructor","getDerivedStateFromProps","undefined","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1182.20097feb.chunk.js.map b/portal-ui/build/static/js/1182.20097feb.chunk.js.map deleted file mode 100644 index d55a393207..0000000000 --- a/portal-ui/build/static/js/1182.20097feb.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1182.20097feb.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx","screens/Console/Common/FormComponents/DateTimePickerWrapper/DateTimePickerWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Dashboard/BasicDashboard/StatusCountCard.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Dashboard/Prometheus/types.ts","screens/Console/Dashboard/Prometheus/utils.tsx","screens/Console/Common/TabSelector/TabSelector.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/BarChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/ExpandGraphLink.tsx","screens/Console/Dashboard/Prometheus/Widgets/BarChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/LineChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/LinearGraphWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/PieChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SimpleWidget.tsx","screens/Console/Dashboard/DashboardItemBox.tsx","screens/Console/Dashboard/Prometheus/Widgets/NumericStatCard.tsx","screens/Console/Dashboard/Prometheus/Widgets/BucketsCountItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/ObjectsCountItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleRepWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleValueWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/CapacityItem.tsx","screens/Console/Dashboard/TimeStatItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/HealActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/ScanActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/UptimeActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/widgetUtils.tsx","screens/Console/Dashboard/Prometheus/ZoomWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/LayoutUtil.tsx","screens/Console/Dashboard/CommonCard.tsx","screens/Console/Dashboard/Prometheus/MergedWidgets.tsx","screens/Console/Dashboard/Prometheus/Widgets/EntityStateStatItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/DualStatCard.tsx","screens/Console/Dashboard/Prometheus/Widgets/EntityStateItemRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkGetItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkPutItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/MergedWidgetsRenderer.tsx","screens/Console/Dashboard/Prometheus/PrDashboard.tsx","screens/Console/Dashboard/BasicDashboard/ServerInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/DriveInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/ServersList.tsx","screens/Console/Dashboard/BasicDashboard/CounterCard.tsx","screens/Console/Dashboard/BasicDashboard/ReportedUsage.tsx","screens/Console/Dashboard/BasicDashboard/BasicDashboard.tsx","screens/Console/Dashboard/Dashboard.tsx","screens/shared/tabs.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Button, Grid } from \"@mui/material\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport WatchLaterIcon from \"@mui/icons-material/WatchLater\";\nimport { actionsTray, widgetContainerCommon } from \"../common/styleLibrary\";\nimport DateTimePickerWrapper from \"../DateTimePickerWrapper/DateTimePickerWrapper\";\nimport SyncIcon from \"../../../../../icons/SyncIcon\";\nimport { OpenListIcon } from \"../../../../../icons\";\n\ninterface IDateRangeSelector {\n classes: any;\n timeStart: any;\n setTimeStart: (date: any) => void;\n timeEnd: any;\n setTimeEnd: (date: any) => void;\n triggerSync?: () => void;\n label?: string;\n startLabel?: string;\n endLabel?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n syncButton: {\n \"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type\": {\n fontSize: 18,\n },\n },\n schedulerIcon: {\n opacity: 0.4,\n fontSize: 10,\n \"& svg\": {\n width: 18,\n height: 18,\n },\n },\n selectorLabel: {\n color: \"#9D9E9D\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n marginLeft: 10,\n fontSize: 12,\n },\n });\n\nconst DateFilterAdornIcon = () => {\n return (\n \n \n \n );\n};\n\nconst DateRangeSelector = ({\n classes,\n timeStart,\n setTimeStart,\n timeEnd,\n setTimeEnd,\n triggerSync,\n label = \"Filter:\",\n startLabel = \"Start Time:\",\n endLabel = \"End Time:\",\n}: IDateRangeSelector) => {\n return (\n \n \n \n {label}\n \n \n \n \n \n \n \n {startLabel}\n \n \n \n \n \n\n \n \n \n \n \n {endLabel}\n \n \n \n \n \n \n\n {triggerSync && (\n \n }\n className={classes.syncButton}\n >\n Sync\n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(DateRangeSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\nimport DateTimePicker from \"@mui/lab/DateTimePicker\";\nimport AdapterMoment from \"@mui/lab/AdapterMoment\";\nimport LocalizationProvider from \"@mui/lab/LocalizationProvider\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport OpenListIcon from \"../../../../../icons/OpenListIcon\";\n\ninterface IDateTimePicker {\n value: any;\n onChange: (value: any) => any;\n classes: any;\n forSearchBlock?: boolean;\n forFilterContained?: boolean;\n label?: string;\n required?: boolean;\n tooltip?: string;\n id: string;\n disabled?: boolean;\n noInputIcon?: boolean;\n classNamePrefix?: string;\n openPickerIcon?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelectorOverride: {\n height: 40,\n border: \"#EAEDEE 1px solid\",\n marginLeft: 15,\n backgroundColor: \"#fff\",\n padding: \"0 16px\",\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n borderColor: \"#000\",\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: 600,\n color: \"#393939\",\n },\n },\n dateSelectorFilterOverride: {\n width: 180,\n height: 42,\n marginLeft: 20,\n padding: 0,\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: \"bold\",\n color: \"#081C42\",\n },\n \"@media (max-width: 900px)\": {\n width: 103,\n },\n },\n dateSelectorFormOverride: {\n width: \"100%\",\n maxWidth: 840,\n },\n parentDateOverride: {\n flexGrow: 1,\n },\n textBoxContainer: {\n flexGrow: 1,\n },\n openListIcon: {\n color: \"#9D9E9D\",\n width: 8,\n marginTop: 2,\n },\n paperOverride: {\n \"& .MuiCalendarPicker-root\": {\n padding: \"0 22px\",\n \"& > div\": {\n padding: 0,\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type\":\n {\n color: \"#0A224C\",\n fontWeight: \"bold\",\n },\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type\": {\n color: \"#9D9E9D\",\n \"& + button.MuiButtonBase-root\": {\n color: \"#9D9E9D\",\n },\n },\n \"& > div:nth-child(2)\": {\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n },\n },\n },\n \"& .MuiTypography-root.MuiTypography-caption\": {\n width: 26,\n height: 26,\n margin: 5,\n color: \"#BCBCBC\",\n fontSize: 10,\n },\n \"& button.MuiPickersDay-root\": {\n fontWeight: \"bold\",\n width: 26,\n height: 26,\n margin: 5,\n textAlign: \"center\",\n \"&.Mui-selected\": {\n backgroundColor: theme.palette.primary.main,\n color: \"#fff\",\n },\n },\n \"& div.MuiPickersDay-hiddenDaySpacingFiller\": {\n width: 26,\n height: 26,\n margin: 5,\n },\n \"& div.PrivatePickersSlideTransition-root\": {\n minHeight: 240,\n },\n \"& div.MuiCalendarPicker-viewTransitionContainer\": {\n borderTop: \"#F0F3F5 1px solid\",\n },\n \"& .MuiClockPicker-arrowSwitcher\": {\n marginRight: 10,\n marginTop: -1,\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n \"& + div > div\": {\n width: 255,\n height: 255,\n backgroundColor: \"#fff\",\n marginTop: 30,\n marginBottom: 14,\n border: \"#F0F3F5 3px solid\",\n \"& > div:nth-child(2)\": {\n backgroundColor: \"#B4B5B4\",\n width: 12,\n height: 12,\n \"&::before\": {\n content: \"' '\",\n width: 35,\n height: 35,\n display: \"block\",\n position: \"absolute\",\n border: \"#F0F3F5 3px solid\",\n top: -12,\n left: -12,\n borderRadius: \"100%\",\n },\n },\n \"& > div:nth-child(3)\": {\n backgroundColor: \"#B4B5B4\",\n width: 4,\n },\n \"& > div:last-of-type\": {\n marginTop: 15,\n \"& > span\": {\n color: \"#0A224C\",\n \"&.Mui-selected\": {\n color: \"#fff\",\n },\n \"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']\":\n {\n fontWeight: \"bold\",\n fontSize: 20,\n marginTop: -1,\n },\n },\n },\n },\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n });\n\nconst DateTimePickerWrapper = ({\n value,\n onChange,\n classes,\n forSearchBlock = false,\n forFilterContained = false,\n label,\n tooltip = \"\",\n required,\n id,\n disabled = false,\n noInputIcon = false,\n classNamePrefix = \"\",\n openPickerIcon,\n}: IDateTimePicker) => {\n let adornment = {};\n\n if (!noInputIcon) {\n adornment = {\n startAdornment: (\n \n \n \n ),\n };\n }\n\n if (forFilterContained) {\n adornment = {\n endAdornment: (\n \n \n \n ),\n };\n }\n\n const classOverridden = `${classNamePrefix}date-time-input ${\n forSearchBlock ? classes.dateSelectorOverride : \"\"\n } ${\n forFilterContained && !forSearchBlock\n ? classes.dateSelectorFilterOverride\n : \"\"\n }`;\n\n const clsName = forSearchBlock\n ? classes.parentDateOverride\n : classes.dateSelectorFormOverride;\n\n const inputItem = (\n \n (\n \n )}\n ampm={false}\n PopperProps={{\n className: classes.paperOverride,\n }}\n />\n \n );\n\n if (forSearchBlock) {\n return inputItem;\n }\n\n const containerCls = !forFilterContained ? classes.fieldContainer : \"\";\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n\n \n {inputItem}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(DateTimePickerWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\n\nexport const StatusCountCard = ({\n onlineCount = 0,\n offlineCount = 0,\n icon = null,\n label = \"\",\n okStatusText = \"Online\",\n notOkStatusText = \"Offline\",\n}: {\n icon: any;\n onlineCount: number;\n offlineCount: number;\n label: string;\n okStatusText?: string;\n notOkStatusText?: string;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n {onlineCount}\n \n \n
{okStatusText}
\n
\n \n\n \n {offlineCount}\n \n {\" \"}\n
{notOkStatusText}
\n
\n \n \n \n \n {icon}\n \n \n \n );\n};\n\nexport default StatusCountCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#E7A219\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number\n) => {\n if (activeDisks <= totalDrives / 2) {\n return STATUS_COLORS.RED;\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeDisks === totalDrives) {\n return STATUS_COLORS.GREEN;\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"online\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return STATUS_COLORS.RED;\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeNetwork === networkTotal) {\n return STATUS_COLORS.GREEN;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n IBarChartConfiguration,\n IBarChartRelation,\n IDataSRep,\n ILinearGraphConfiguration,\n IPieChartConfiguration,\n} from \"./Widgets/types\";\n\nexport enum widgetType {\n singleValue = \"singleValue\",\n linearGraph = \"linearGraph\",\n areaGraph = \"areaGraph\",\n barChart = \"barChart\",\n pieChart = \"pieChart\",\n singleRep = \"singleRep\",\n simpleWidget = \"simpleWidget\",\n}\n\nexport interface IDashboardPanel {\n id: number;\n mergedPanels?: IDashboardPanel[];\n title: string;\n data?: string | object[] | IDataSRep[];\n dataOuter?: string | object[];\n type?: widgetType;\n widgetIcon?: any;\n widgetConfiguration?:\n | ILinearGraphConfiguration[]\n | IBarChartConfiguration[]\n | IPieChartConfiguration;\n color?: string;\n fillColor?: string;\n innerLabel?: string;\n labelDisplayFunction?: (value: string) => any;\n disableYAxis?: boolean;\n xAxisFormatter?: (item: string) => string;\n yAxisFormatter?: (item: string) => string;\n customStructure?: IBarChartRelation[];\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport {\n getTimeFromTimestamp,\n niceBytes,\n niceDays,\n representationNumber,\n textToRGBColor,\n units,\n} from \"../../../../common/utils\";\nimport HealIcon from \"../../../../icons/HealIcon\";\nimport DiagnosticsIcon from \"../../../../icons/DiagnosticsIcon\";\nimport { UptimeIcon } from \"../../../../icons\";\n\nconst colorsMain = [\n \"#C4D4E9\",\n \"#DCD1EE\",\n \"#D1EEE7\",\n \"#EEDED1\",\n \"#AAF38F\",\n \"#F9E6C5\",\n \"#C83B51\",\n \"#F4CECE\",\n \"#D6D6D6\",\n];\n\nconst niceDaysFromNS = (seconds: string) => {\n return niceDays(seconds, \"ns\");\n};\n\nconst roundNumber = (value: string) => {\n return parseInt(value).toString(10);\n};\n\nexport const panelsConfiguration: IDashboardPanel[] = [\n {\n id: 1,\n title: \"Uptime\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDays,\n },\n {\n id: 50,\n title: \"Capacity\",\n data: [],\n dataOuter: [{ name: \"outer\", value: 100 }],\n widgetConfiguration: {\n outerChart: {\n colorList: [\"#9c9c9c\"],\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n },\n innerChart: {\n colorList: colorsMain,\n innerRadius: 20,\n outerRadius: 50,\n startAngle: 90,\n endAngle: -200,\n },\n },\n type: widgetType.pieChart,\n innerLabel: \"N/A\",\n labelDisplayFunction: niceBytes,\n },\n {\n id: 51,\n title: \"Usable Capacity\",\n data: [],\n dataOuter: [{ name: \"outer\", value: 100 }],\n widgetConfiguration: {\n outerChart: {\n colorList: [\"#9c9c9c\"],\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n },\n innerChart: {\n colorList: colorsMain,\n innerRadius: 20,\n outerRadius: 50,\n startAngle: 90,\n endAngle: -200,\n },\n },\n type: widgetType.pieChart,\n innerLabel: \"N/A\",\n labelDisplayFunction: niceBytes,\n },\n {\n id: 68,\n title: \"Data Usage Growth\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.areaGraph,\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 52,\n title: \"Object size distribution\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"a\",\n color: \"#2781B0\",\n background: {\n fill: \"#EEF1F4\",\n },\n greatestColor: \"#081C42\",\n },\n ],\n customStructure: [\n { originTag: \"LESS_THAN_1024_B\", displayTag: \"Less than 1024B\" },\n {\n originTag: \"BETWEEN_1024_B_AND_1_MB\",\n displayTag: \"Between 1024B and 1MB\",\n },\n {\n originTag: \"BETWEEN_1_MB_AND_10_MB\",\n displayTag: \"Between 1MB and 10MB\",\n },\n {\n originTag: \"BETWEEN_10_MB_AND_64_MB\",\n displayTag: \"Between 10MB and 64MB\",\n },\n {\n originTag: \"BETWEEN_64_MB_AND_128_MB\",\n displayTag: \"Between 64MB and 128MB\",\n },\n {\n originTag: \"BETWEEN_128_MB_AND_512_MB\",\n displayTag: \"Between 128MB and 512MB\",\n },\n {\n originTag: \"GREATER_THAN_512_MB\",\n displayTag: \"Greater than 512MB\",\n },\n ],\n type: widgetType.barChart,\n },\n {\n id: 66,\n title: \"Buckets\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 44,\n title: \"Objects\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 63,\n title: \"API Data Received Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n strokeWidth: 3,\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 61,\n title: \"Total Open FDs\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#22B573\",\n fillColor: \"#A6E8C4\",\n },\n {\n id: 62,\n title: \"Total Goroutines\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#F7655E\",\n fillColor: \"#F4CECE\",\n },\n {\n id: 77,\n title: \"Node CPU Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 60,\n title: \"API Request Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 70,\n title: \"API Data Sent Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 17,\n title: \"Internode Data Transfer\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 73,\n title: \"Node IO\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 80,\n title: \"Time Since Last Heal Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 81,\n title: \"Time Since Last Scan Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 71,\n title: \"API Request Error Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 76,\n title: \"Node Memory Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 74,\n title: \"Drive Used Capacity\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 82,\n title: \"Drives Free Inodes\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n disableYAxis: true,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 11,\n title: \"Node Syscalls\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 8,\n title: \"Node File Descriptors\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 500,\n mergedPanels: [\n {\n id: 53,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 69,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Servers\",\n },\n {\n id: 501,\n mergedPanels: [\n {\n id: 9,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 78,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Drives\",\n },\n {\n id: 502,\n mergedPanels: [\n {\n id: 65,\n title: \"Upload\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n {\n id: 64,\n title: \"Download\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n ],\n title: \"Network\",\n },\n];\n\nconst calculateMainValue = (elements: any[], metricCalc: string) => {\n if (elements.length === 0) {\n return [\"\", \"0\"];\n }\n\n switch (metricCalc) {\n case \"mean\":\n const sumValues = elements.reduce((accumulator, currValue) => {\n return accumulator + parseFloat(currValue[1]);\n }, 0);\n\n const mean = Math.floor(sumValues / elements.length);\n\n return [\"\", mean.toString()];\n default:\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n return sortResult[sortResult.length - 1];\n }\n};\n\nconst constructLabelNames = (metrics: any, legendFormat: string) => {\n const keysToReplace = Object.keys(metrics);\n const expToReplace = new RegExp(`{{(${keysToReplace.join(\"|\")})}}`, \"g\");\n\n let replacedLegend = legendFormat.replace(expToReplace, (matchItem) => {\n const nwMatchItem = matchItem.replace(/({{|}})/g, \"\");\n return metrics[nwMatchItem];\n });\n\n const countVarsOpen = (replacedLegend.match(/{{/g) || []).length;\n const countVarsClose = (replacedLegend.match(/}}/g) || []).length;\n\n let cleanLegend = replacedLegend.replace(/{{(.*?)}}/g, \"\");\n\n if (\n countVarsOpen === countVarsClose &&\n countVarsOpen !== 0 &&\n countVarsClose !== 0\n ) {\n keysToReplace.forEach((element) => {\n replacedLegend = replacedLegend.replace(element, metrics[element]);\n });\n\n cleanLegend = replacedLegend;\n }\n\n // In case not all the legends were replaced, we remove the placeholders.\n return cleanLegend;\n};\n\nexport const getWidgetsWithValue = (payload: any[]): IDashboardPanel[] => {\n return panelsConfiguration.map((panelItem: IDashboardPanel) => {\n const payloadData = payload.find(\n (panelT) =>\n panelT.title.toLowerCase().trim() ===\n panelItem.title.toLowerCase().trim()\n );\n return widgetDetailsToPanel(payloadData, panelItem);\n });\n};\n\nexport const widgetDetailsToPanel = (\n payloadData: any,\n panelItem: IDashboardPanel\n) => {\n if (!payloadData) {\n return panelItem;\n }\n\n const typeOfPayload = payloadData.type;\n\n switch (panelItem.type) {\n case widgetType.singleValue:\n case widgetType.simpleWidget:\n if (typeOfPayload === \"stat\" || typeOfPayload === \"singlestat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n\n if (elements === null) {\n elements = [];\n }\n\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const data = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data,\n };\n }\n break;\n case widgetType.pieChart:\n if (typeOfPayload === \"gauge\") {\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n let chartSeries = get(payloadData, \"targets\", []).filter(\n (seriesItem: any) => seriesItem !== null\n );\n\n const values = chartSeries.map((chartTarget: any) => {\n const resultMap =\n chartTarget.result && Array.isArray(chartTarget.result)\n ? chartTarget.result\n : [];\n\n const values = resultMap.map((elementValue: any) => {\n const values = get(elementValue, \"values\", []);\n const metricKeyItem = Object.keys(elementValue.metric);\n const sortResult = values.sort(\n (value1: any[], value2: any[]) =>\n parseInt(value1[0][1]) - parseInt(value2[0][1])\n );\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n const value = sortResult[sortResult.length - 1];\n return {\n name: metricName,\n value: parseInt(value[1]),\n legend: chartTarget.legendFormat,\n };\n });\n\n return values;\n });\n\n const firstTarget =\n chartSeries[0].result && chartSeries[0].result.length > 0\n ? chartSeries[0].result[0].values\n : [];\n\n const totalValues = calculateMainValue(firstTarget, metricCalc);\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(totalValues[1])\n : totalValues[1];\n\n return {\n ...panelItem,\n data: values,\n innerLabel,\n };\n }\n break;\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n if (typeOfPayload === \"graph\") {\n let targets = get(payloadData, \"targets\", []);\n if (targets === null) {\n targets = [];\n }\n\n const series: any[] = [];\n const plotValues: any[] = [];\n\n targets.forEach(\n (\n targetMaster: { legendFormat: string; result: any[] },\n index: number\n ) => {\n // Add a new serie to plot variables in case it is not from multiple values\n let results = get(targetMaster, \"result\", []);\n const legendFormat = targetMaster.legendFormat;\n if (results === null) {\n results = [];\n }\n\n results.forEach((itemVals: { metric: object; values: any[] }) => {\n // Label Creation\n const labelName = constructLabelNames(\n itemVals.metric,\n legendFormat\n );\n const keyName = `key_${index}${labelName}`;\n\n // series creation with recently created label\n series.push({\n dataKey: keyName,\n keyLabel: labelName,\n lineColor: \"\",\n fillColor: \"\",\n });\n\n // we iterate over values and create elements\n let values = get(itemVals, \"values\", []);\n if (values === null) {\n values = [];\n }\n\n values.forEach((valInfo: any[]) => {\n const itemIndex = plotValues.findIndex(\n (element) => element.name === valInfo[0]\n );\n\n // Element not exists yet\n if (itemIndex === -1) {\n let itemToPush: any = { name: valInfo[0] };\n itemToPush[keyName] = valInfo[1];\n\n plotValues.push(itemToPush);\n } else {\n plotValues[itemIndex][keyName] = valInfo[1];\n }\n });\n });\n }\n );\n\n const sortedSeries = series.sort((series1: any, series2: any) => {\n if (series1.keyLabel < series2.keyLabel) {\n return -1;\n }\n if (series1.keyLabel > series2.keyLabel) {\n return 1;\n }\n return 0;\n });\n\n const seriesWithColors = sortedSeries.map(\n (serialC: any, index: number) => {\n return {\n ...serialC,\n lineColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n fillColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n };\n }\n );\n\n const sortedVals = plotValues.sort(\n (value1: any, value2: any) => value1.name - value2.name\n );\n\n return {\n ...panelItem,\n widgetConfiguration: seriesWithColors,\n data: sortedVals,\n };\n }\n break;\n case widgetType.barChart:\n if (typeOfPayload === \"bargauge\") {\n let chartBars = get(payloadData, \"targets[0].result\", []);\n\n if (chartBars === null) {\n chartBars = [];\n }\n\n const sortFunction = (value1: any[], value2: any[]) =>\n value1[0] - value2[0];\n\n let values = [];\n if (panelItem.customStructure) {\n values = panelItem.customStructure.map((structureItem) => {\n const metricTake = chartBars.find((element: any) => {\n const metricKeyItem = Object.keys(element.metric);\n\n const metricName = element.metric[metricKeyItem[0]];\n\n return metricName === structureItem.originTag;\n });\n\n const elements = get(metricTake, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n\n return {\n name: structureItem.displayTag,\n a: parseInt(lastValue[1]),\n };\n });\n } else {\n // If no configuration is set, we construct the series for bar chart and return the element\n values = chartBars.map((elementValue: any) => {\n const metricKeyItem = Object.keys(elementValue.metric);\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n\n const elements = get(elementValue, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n return { name: metricName, a: parseInt(lastValue[1]) };\n });\n }\n\n return {\n ...panelItem,\n data: values,\n };\n }\n break;\n case widgetType.singleRep:\n if (typeOfPayload === \"stat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n if (elements === null) {\n elements = [];\n }\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n let valuesForBackground = [];\n\n if (sortResult.length === 1) {\n valuesForBackground.push({ value: 0 });\n }\n\n sortResult.forEach((eachVal: any) => {\n valuesForBackground.push({ value: parseInt(eachVal[1]) });\n });\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data: valuesForBackground,\n innerLabel,\n };\n }\n break;\n }\n\n return panelItem;\n};\n\nconst verifyNumeric = (item: string) => {\n return !isNaN(parseFloat(item));\n};\n\nexport const splitSizeMetric = (val: string) => {\n const splittedText = val.split(\" \");\n // Value is not a size metric, we return as common string\n\n const singleValue = () => {\n let vl = val;\n\n if (verifyNumeric(val)) {\n vl = representationNumber(parseFloat(val));\n }\n return {vl};\n };\n\n if (splittedText.length !== 2) {\n return singleValue();\n }\n\n if (!units.includes(splittedText[1])) {\n return singleValue();\n }\n\n return (\n \n {splittedText[0]}\n {splittedText[1]}\n \n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { ITabOption } from \"./types\";\n\ninterface ITabSelector {\n selectedTab: number;\n onChange: (newValue: number) => void;\n tabOptions: ITabOption[];\n}\n\nconst tabSubStyles = makeStyles({\n tabRoot: {\n height: \"40px\",\n borderBottom: \"1px solid #eaeaea\",\n },\n root: {\n width: \"120px\",\n backgroundColor: \"transparent\",\n paddingTop: 0,\n paddingBottom: 0,\n fontSize: \"14px\",\n fontWeight: 600,\n color: \"#07193E\",\n height: \"40px\",\n },\n selected: {\n \"&.MuiTab-selected\": {\n backgroundColor: \"#F6F7F7 !important\",\n },\n \"&.MuiTab-wrapper\": {\n color: \"#07193E\",\n fontWeight: 600,\n },\n },\n indicator: {\n background:\n \"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;\",\n height: 2,\n },\n scroller: {\n maxWidth: 1185,\n position: \"relative\",\n \"&::after\": {\n content: '\" \"',\n backgroundColor: \"#EEF1F4\",\n height: 2,\n width: \"100%\",\n display: \"block\",\n },\n },\n});\n\nconst TabSelector = ({ selectedTab, onChange, tabOptions }: ITabSelector) => {\n const subStyles = tabSubStyles();\n\n return (\n \n , newValue: number) => {\n onChange(newValue);\n }}\n classes={{\n root: subStyles.tabRoot,\n indicator: subStyles.indicator,\n scroller: subStyles.scroller,\n }}\n >\n {tabOptions.map((option, index) => {\n let tabOptions: ITabOption = {\n label: option.label,\n };\n\n if (option.value) {\n tabOptions = { ...tabOptions, value: option.value };\n }\n\n if (option.disabled) {\n tabOptions = { ...tabOptions, disabled: option.disabled };\n }\n\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default TabSelector;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst BarChartTooltip = ({\n active,\n payload,\n label,\n barChartConfiguration,\n classes,\n}: any) => {\n if (active) {\n return (\n
\n
{label}
\n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n \n \n
\n {pl.value}\n
\n
\n );\n })}\n \n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(BarChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ZoomOutMapIcon from \"@mui/icons-material/ZoomOutMap\";\nimport { Box } from \"@mui/material\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { openZoomPage } from \"../../dashboardSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\nconst ExpandGraphLink = ({ panelItem }: { panelItem: IDashboardPanel }) => {\n const dispatch = useAppDispatch();\n return (\n \n {\n e.preventDefault();\n dispatch(openZoomPage(panelItem));\n }}\n >\n Expand Graph\n \n {\n dispatch(openZoomPage(panelItem));\n }}\n className={\"zoom-graph-icon\"}\n >\n \n \n \n );\n};\n\nexport default ExpandGraphLink;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\n\nimport {\n Bar,\n BarChart,\n Cell,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IBarChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport BarChartTooltip from \"./tooltips/BarChartTooltip\";\n\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport ExpandGraphLink from \"./ExpandGraphLink\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface IBarChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n zoomActivated?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n });\n\nconst CustomizedAxisTick = ({ y, payload }: any) => {\n return (\n \n {payload.value}\n \n );\n};\n\nconst BarChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n zoomActivated = false,\n}: IBarChartWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const barChartConfiguration = result\n ? (result.widgetConfiguration as IBarChartConfiguration[])\n : [];\n\n let greatestIndex = 0;\n let currentValue = 0;\n\n if (barChartConfiguration.length === 1) {\n const dataGraph = barChartConfiguration[0];\n data.forEach((item: any, index: number) => {\n if (item[dataGraph.dataKey] > currentValue) {\n currentValue = item[dataGraph.dataKey];\n greatestIndex = index;\n }\n });\n }\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n
\n {!zoomActivated && (\n
\n {title} \n
\n )}\n {loading && (\n
\n \n
\n )}\n {!loading && (\n \n \n \n \n }\n tickLine={false}\n axisLine={false}\n width={150}\n hide={!biggerThanMd}\n style={{\n fontSize: \"12px\",\n fontWeight: 100,\n }}\n />\n {barChartConfiguration.map((bar) => (\n \n {barChartConfiguration.length === 1 ? (\n \n {data.map((_: any, index: number) => (\n \n ))}\n \n ) : null}\n \n ))}\n \n }\n />\n \n \n
\n )}\n \n );\n};\n\nexport default withStyles(styles)(BarChartWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { getTimeFromTimestamp } from \"../../../../../../common/utils\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst LineChartTooltip = ({\n active,\n payload,\n label,\n linearConfiguration,\n yAxisFormatter,\n classes,\n}: any) => {\n if (active) {\n return (\n
\n
\n {getTimeFromTimestamp(label, true)}\n
\n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n \n \n
\n \n {linearConfiguration[index].keyLabel}:{\" \"}\n {yAxisFormatter(pl.value)}\n \n
\n
\n );\n })}\n \n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(LineChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\n\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { Box, useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ILinearGraphConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport LineChartTooltip from \"./tooltips/LineChartTooltip\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport ExpandGraphLink from \"./ExpandGraphLink\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ILinearGraphWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n hideYAxis?: boolean;\n yAxisFormatter?: (item: string) => string;\n xAxisFormatter?: (item: string) => string;\n areaWidget?: boolean;\n zoomActivated?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n verticalAlignment: {\n flexDirection: \"column\",\n },\n chartCont: {\n position: \"relative\",\n height: 140,\n width: \"100%\",\n },\n legendChart: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"0 1 auto\",\n maxHeight: 130,\n margin: 0,\n overflowY: \"auto\",\n position: \"relative\",\n textAlign: \"center\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n color: \"#404143\",\n fontWeight: \"bold\",\n fontSize: 12,\n },\n loadingAlign: {\n width: 40,\n height: 40,\n textAlign: \"center\",\n margin: \"15px auto\",\n },\n });\n\nconst LinearGraphWidget = ({\n classes,\n title,\n\n timeStart,\n timeEnd,\n propLoading,\n panelItem,\n apiPrefix,\n hideYAxis = false,\n areaWidget = false,\n yAxisFormatter = (item: string) => item,\n xAxisFormatter = (item: string) => item,\n zoomActivated = false,\n}: ILinearGraphWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [dataMax, setDataMax] = useState(0);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n let maxVal = 0;\n for (const dp of widgetsWithValue.data) {\n for (const key in dp) {\n if (key === \"name\") {\n continue;\n }\n let val = parseInt(dp[key]);\n\n if (isNaN(val)) {\n val = 0;\n }\n\n if (maxVal < val) {\n maxVal = val;\n }\n }\n }\n setDataMax(maxVal);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let intervalCount = Math.floor(data.length / 5);\n\n const linearConfiguration = result\n ? (result?.widgetConfiguration as ILinearGraphConfiguration[])\n : [];\n\n const CustomizedDot = (prop: any) => {\n const { cx, cy, index } = prop;\n\n if (index % 3 !== 0) {\n return null;\n }\n return ;\n };\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n \n {!zoomActivated && (\n
\n {title} \n
\n )}\n \n {loading && }\n {!loading && (\n \n \n \n \n {areaWidget && (\n \n \n \n \n\n \n \n \n )}\n \n xAxisFormatter(value)}\n interval={intervalCount}\n tick={{\n fontSize: \"68%\",\n fontWeight: \"normal\",\n color: \"#404143\",\n }}\n tickCount={10}\n stroke={\"#082045\"}\n />\n yAxisFormatter(value)}\n tick={{\n fontSize: \"68%\",\n fontWeight: \"normal\",\n color: \"#404143\",\n }}\n stroke={\"#082045\"}\n />\n {linearConfiguration.map((section, index) => {\n return (\n : false}\n />\n );\n })}\n \n }\n wrapperStyle={{\n zIndex: 5000,\n }}\n />\n \n \n \n {!areaWidget && (\n \n {zoomActivated && (\n \n Series\n
\n
\n
\n )}\n {biggerThanMd && (\n
\n {linearConfiguration.map((section, index) => {\n return (\n \n \n
\n {section.keyLabel}\n
\n
\n );\n })}\n \n )}\n
\n )}\n
\n )}\n
\n \n );\n};\n\nexport default withStyles(styles)(LinearGraphWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Cell, Pie, PieChart, ResponsiveContainer } from \"recharts\";\nimport { IPieChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IDashboardPanel } from \"../types\";\nimport { splitSizeMetric, widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport get from \"lodash/get\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface IPieChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n pieChartLabel: {\n fontSize: 60,\n color: \"#07193E\",\n fontWeight: \"bold\",\n width: \"100%\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n chartContainer: {\n width: \"100%\",\n height: 140,\n },\n });\n\nconst PieChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n\n apiPrefix,\n}: IPieChartWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [dataInner, setDataInner] = useState([]);\n const [dataOuter, setDataOuter] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setDataInner(widgetsWithValue.data);\n setDataOuter(widgetsWithValue.dataOuter as object[]);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const pieChartConfiguration = result\n ? (result.widgetConfiguration as IPieChartConfiguration)\n : [];\n const middleLabel = result?.innerLabel;\n\n const innerColors = get(pieChartConfiguration, \"innerChart.colorList\", []);\n const outerColors = get(pieChartConfiguration, \"outerChart.colorList\", []);\n\n return (\n
\n
{title}
\n {loading && (\n
\n \n
\n )}\n {!loading && (\n
\n \n {middleLabel && splitSizeMetric(middleLabel)}\n \n
\n \n \n {dataOuter && (\n \n {dataOuter.map((entry, index) => (\n \n ))}\n \n )}\n {dataInner && (\n \n {dataInner.map((entry, index) => {\n return (\n \n );\n })}\n \n )}\n \n \n
\n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(PieChartWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ISimpleWidget {\n classes: any;\n iconWidget: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n renderFn?: undefined | null | ((arg: Record) => any);\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n mainWidgetContainer: {\n display: \"inline-flex\",\n color: \"#072A4D\",\n alignItems: \"center\",\n },\n icon: {\n color: \"#072A4D\",\n fill: \"#072A4D\",\n marginRight: 5,\n marginLeft: 12,\n },\n widgetLabel: {\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n marginRight: 10,\n },\n widgetValue: {\n marginRight: 25,\n },\n });\n\nconst SimpleWidget = ({\n classes,\n iconWidget,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n renderFn,\n}: ISimpleWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n if (renderFn) {\n return renderFn({\n valueToRender: data,\n loading,\n title,\n id: panelItem.id,\n iconWidget: iconWidget,\n });\n }\n return (\n \n {loading && (\n
\n \n
\n )}\n {!loading && (\n \n {iconWidget ? iconWidget : null}\n {title}: \n {data}\n \n )}\n
\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SimpleWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\nconst DashboardItemBox = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default DashboardItemBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Tooltip } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\nconst NumericStatCard = ({\n value,\n label = \"\",\n icon = null,\n loading = false,\n}: {\n value: string | number;\n label?: any;\n icon?: any;\n loading?: boolean;\n}) => {\n const getContent = () => {\n return (\n \n \n \n {label}\n \n\n \n \n {value}\n \n \n \n \n {}\n {loading ? (\n \n ) : (\n icon\n )}\n \n \n );\n };\n\n return (\n \n {getContent()}\n \n );\n};\n\nexport default NumericStatCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport NumericStatCard from \"./NumericStatCard\";\nimport { BucketsIcon } from \"../../../../../icons\";\n\nconst BucketsCountItem = ({\n title,\n value,\n loading,\n}: {\n title: string;\n value: string;\n loading?: boolean;\n}) => {\n return (\n }\n value={value}\n loading={loading}\n />\n );\n};\n\nexport default BucketsCountItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport NumericStatCard from \"./NumericStatCard\";\nimport { TotalObjectsIcon } from \"../../../../../icons\";\n\nconst ObjectsCountItem = ({\n title,\n value,\n loading,\n}: {\n title: string;\n value: string;\n loading?: boolean;\n}) => {\n return (\n }\n value={value}\n loading={loading}\n />\n );\n};\n\nexport default ObjectsCountItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { representationNumber } from \"../../../../../common/utils\";\nimport api from \"../../../../../common/api\";\nimport DashboardItemBox from \"../../DashboardItemBox\";\nimport BucketsCountItem from \"./BucketsCountItem\";\nimport ObjectsCountItem from \"./ObjectsCountItem\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ISingleRepWidget {\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n color?: string;\n fillColor?: string;\n apiPrefix: string;\n}\n\nconst SingleRepWidget = ({\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n\n apiPrefix,\n}: ISingleRepWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let repNumber = \"\";\n\n if (result) {\n const resultRep = parseInt(result.innerLabel || \"0\");\n\n if (!isNaN(resultRep)) {\n repNumber = representationNumber(resultRep);\n } else {\n repNumber = \"0\";\n }\n }\n\n const renderById = (id: number) => {\n if (id === 66) {\n return (\n \n \n \n );\n }\n if (id === 44) {\n return (\n \n \n \n );\n }\n\n return null;\n };\n\n return renderById(panelItem.id);\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default connector(SingleRepWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { splitSizeMetric, widgetDetailsToPanel } from \"../utils\";\nimport { IDashboardPanel } from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ISingleValueWidget {\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n classes: any;\n apiPrefix: string;\n renderFn?: (arg: Record) => any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n metric: {\n fontSize: 60,\n lineHeight: 1,\n color: \"#07193E\",\n fontWeight: 700,\n },\n titleElement: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: 700,\n },\n containerAlignment: {\n display: \"flex\",\n height: 140,\n flexDirection: \"column\",\n justifyContent: \"center\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n });\n\nconst SingleValueWidget = ({\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n classes,\n apiPrefix,\n renderFn,\n}: ISingleValueWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const valueToRender = splitSizeMetric(data);\n\n if (renderFn) {\n return renderFn({ valueToRender, loading, title, id: panelItem.id });\n }\n return (\n
\n {loading && (\n
\n \n
\n )}\n {!loading && (\n \n
{splitSizeMetric(data)}
\n
{title}
\n
\n )}\n
\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SingleValueWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { IDashboardPanel } from \"../types\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\n\nimport {\n calculateBytes,\n capacityColors,\n niceBytesInt,\n} from \"../../../../../common/utils\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { ReportedUsageIcon } from \"../../../../../icons\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\nconst CapacityItem = ({\n value,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n}: {\n value: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n}) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n\n const [totalUsableFree, setTotalUsableFree] = useState(0);\n const [totalUsableFreeRatio, setTotalUsableFreeRatio] = useState(0);\n const [totalUsed, setTotalUsed] = useState(0);\n const [totalUsable, setTotalUsable] = useState(0);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${value.id}/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, value);\n\n let tUsable = 0;\n let tUsed = 0;\n let tFree = 0;\n\n widgetsWithValue.data.forEach((eachArray: any[]) => {\n eachArray.forEach((itemSum) => {\n switch (itemSum.legend) {\n case \"Total Usable\":\n tUsable += itemSum.value;\n break;\n case \"Used Space\":\n tUsed += itemSum.value;\n break;\n case \"Usable Free\":\n tFree += itemSum.value;\n break;\n }\n });\n });\n\n const freeRatio = Math.round((tFree / tUsable) * 100);\n\n setTotalUsableFree(tFree);\n setTotalUsableFreeRatio(freeRatio);\n setTotalUsed(tUsed);\n setTotalUsable(tUsable);\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, value, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const usedConvert = calculateBytes(totalUsed, true, false);\n\n const plotValues = [\n {\n value: totalUsableFree,\n color: \"#D6D6D6\",\n label: \"Usable Available Space\",\n },\n {\n value: totalUsed,\n color: capacityColors(totalUsed, totalUsable),\n label: \"Used Space\",\n },\n ];\n return (\n \n \n Capacity\n \n \n \n {`${totalUsableFreeRatio}%`}\n
\n \n Free\n \n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n \n \n \n \n Used:\n \n \n
{usedConvert.total}
\n
{usedConvert.unit}
\n \n \n
Of: {niceBytesInt(totalUsable)}
\n \n \n\n \n \n {loading ? (\n \n ) : (\n \n )}\n \n \n \n \n );\n};\n\nexport default CapacityItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { SuccessIcon } from \"../../../icons\";\nimport Loader from \"../Common/Loader/Loader\";\n\nconst TimeStatItem = ({\n icon,\n label,\n value,\n loading = false,\n}: {\n icon: any;\n label: any;\n value: string;\n loading?: boolean;\n}) => {\n return (\n \n {loading ? : icon}\n \n {label}\n \n {value}\n {value !== \"n/a\" ? : null}\n \n );\n};\n\nexport default TimeStatItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\n\nexport type SimpleWidgetRenderProps = {\n valueToRender?: any;\n loading?: boolean;\n title?: any;\n id?: number;\n iconWidget?: any;\n};\nconst HealActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n \n \n Time since last\n {\" \"}\n Heal Activity\n \n }\n value={valueToRender}\n />\n \n );\n};\n\nexport default HealActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\nimport { SimpleWidgetRenderProps } from \"./HealActivityRenderer\";\n\nconst ScanActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n \n \n Time since last\n {\" \"}\n Scan Activity\n \n }\n value={valueToRender}\n />\n \n );\n};\n\nexport default ScanActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\n\nexport type SimpleWidgetRenderProps = {\n valueToRender?: any;\n loading?: boolean;\n title?: any;\n id?: number;\n iconWidget?: any;\n};\nconst UptimeActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n Uptime}\n value={valueToRender}\n />\n \n );\n};\n\nexport default UptimeActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport BarChartWidget from \"./Widgets/BarChartWidget\";\nimport LinearGraphWidget from \"./Widgets/LinearGraphWidget\";\nimport PieChartWidget from \"./Widgets/PieChartWidget\";\nimport SimpleWidget from \"./Widgets/SimpleWidget\";\nimport SingleRepWidget from \"./Widgets/SingleRepWidget\";\nimport SingleValueWidget from \"./Widgets/SingleValueWidget\";\nimport CapacityItem from \"./Widgets/CapacityItem\";\nimport DashboardItemBox from \"../DashboardItemBox\";\nimport HealActivityRenderer, {\n SimpleWidgetRenderProps,\n} from \"./Widgets/HealActivityRenderer\";\nimport ScanActivityRenderer from \"./Widgets/ScanActivityRenderer\";\nimport UptimeActivityRenderer from \"./Widgets/UptimeActivityRenderer\";\n\nexport const componentToUse = (\n value: IDashboardPanel,\n timeStart: any,\n timeEnd: any,\n loading: boolean,\n apiPrefix: string,\n zoomActivated: boolean = false\n) => {\n switch (value.type) {\n case widgetType.singleValue:\n return (\n \n );\n case widgetType.simpleWidget:\n let renderFn;\n let CmpToRender: any = null;\n if (value.id === 80) {\n CmpToRender = HealActivityRenderer;\n } else if (value.id === 81) {\n CmpToRender = ScanActivityRenderer;\n } else if (value.id === 1) {\n CmpToRender = UptimeActivityRenderer;\n }\n\n if ([80, 81, 1].includes(value.id)) {\n renderFn = ({\n valueToRender,\n loading,\n title,\n id,\n iconWidget,\n }: SimpleWidgetRenderProps) => {\n return (\n \n );\n };\n }\n return (\n \n );\n case widgetType.pieChart:\n if (value.id === 50) {\n return (\n \n \n \n );\n }\n return (\n \n );\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n return (\n \n );\n case widgetType.barChart:\n return (\n \n );\n case widgetType.singleRep:\n const fillColor = value.fillColor ? value.fillColor : value.color;\n return (\n \n );\n default:\n return null;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { IDashboardPanel } from \"./types\";\nimport { componentToUse } from \"./widgetUtils\";\nimport { closeZoomPage } from \"../dashboardSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IZoomWidget {\n widgetRender: number;\n value: IDashboardPanel | null;\n modalOpen: boolean;\n timeStart: any;\n timeEnd: any;\n apiPrefix: string;\n}\n\nconst ZoomWidget = ({\n value,\n modalOpen,\n timeStart,\n timeEnd,\n apiPrefix,\n}: IZoomWidget) => {\n const dispatch = useAppDispatch();\n if (!value) {\n return null;\n }\n\n return (\n {\n dispatch(closeZoomPage());\n }}\n modalOpen={modalOpen}\n wideLimit={false}\n noContentPadding\n >\n \n {componentToUse(value, timeStart, timeEnd, true, apiPrefix, true)}\n \n \n );\n};\n\nexport default ZoomWidget;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box } from \"@mui/material\";\nimport { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type DLayoutColumnProps = {\n componentId: number;\n sx?: SxProps;\n};\nexport type DLayoutRowProps = {\n sx?: SxProps;\n columns: DLayoutColumnProps[];\n};\n\nexport const summaryPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n minWidth: 0,\n display: \"grid\",\n gridTemplateColumns: {\n md: \"1fr 1fr 1fr 1fr\",\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 66,\n },\n {\n componentId: 44,\n },\n {\n componentId: 500,\n },\n {\n componentId: 501,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0, // important to avoid css grid blow out.\n gridTemplateColumns: {\n md: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 50,\n },\n {\n componentId: 502,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n md: \"1fr 1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 80,\n },\n {\n componentId: 81,\n },\n {\n componentId: 1,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 68,\n },\n {\n componentId: 52,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 63,\n },\n {\n componentId: 70,\n },\n ],\n },\n];\n\nexport const trafficPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 60,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 71,\n sx: {\n flex: 1,\n width: \"50%\",\n flexShrink: 0,\n },\n },\n {\n componentId: 17,\n sx: {\n flex: 1,\n width: \"50%\",\n flexShrink: 0,\n },\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 73,\n },\n ],\n },\n];\n\nexport const resourcesPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 76,\n },\n {\n componentId: 77,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 82,\n },\n {\n componentId: 74,\n },\n ],\n },\n];\nexport const resourcesPanelsLayoutAdvanced: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 11,\n },\n {\n componentId: 8,\n },\n ],\n },\n];\n\nexport const RowPanelLayout = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Card, CardHeader } from \"@mui/material\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport React, { Fragment } from \"react\";\nimport { widgetCommon } from \"../Common/FormComponents/common/styleLibrary\";\n\nexport interface ISubInterface {\n message: string;\n fontWeight?: \"normal\" | \"bold\";\n}\n\ninterface ICommonCard {\n title: string;\n metricValue: any;\n metricUnit?: string;\n subMessage?: ISubInterface;\n moreLink?: string;\n rightComponent?: any;\n extraMargin?: boolean;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n cardRoot: {\n ...widgetCommon.singleValueContainer,\n \"&.MuiPaper-root\": {\n borderRadius: 10,\n },\n },\n metricText: {\n fontSize: 70,\n lineHeight: 1.1,\n color: \"#07193E\",\n fontWeight: \"bold\",\n },\n unitText: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: \"normal\",\n },\n subHearderContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n subMessage: {\n fontSize: 10,\n color: \"#767676\",\n \"&.bold\": {\n fontWeight: \"bold\",\n },\n },\n headerContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n viewAll: {\n fontSize: 10,\n color: \"#C83B51\",\n textTransform: \"capitalize\",\n\n \"& a, & a:hover, & a:visited, & a:active\": {\n color: \"#C83B51\",\n },\n },\n extraMargin: {\n margin: \"10px 20px 10px 0\",\n },\n });\n\nconst cardSubStyles = makeStyles({\n root: { backgroundColor: \"#fff\", padding: 0 },\n title: {\n ...widgetCommon.titleContainer,\n },\n content: {\n maxWidth: \"100%\",\n },\n});\n\nconst CommonCard = ({\n title,\n metricValue,\n metricUnit,\n subMessage,\n moreLink,\n rightComponent,\n extraMargin = false,\n classes,\n}: ICommonCard) => {\n const subStyles = cardSubStyles();\n const SubHeader = () => {\n return (\n \n
\n
\n
\n \n {metricValue}\n {metricUnit}\n \n
\n {subMessage && (\n \n {subMessage.message}\n
\n )}\n
\n
{rightComponent}
\n \n
\n );\n };\n\n const Header = () => {\n return (\n \n
\n {title}\n {moreLink && (\n \n \n View All\n \n \n )}\n
\n
\n );\n };\n\n return (\n \n \n {metricValue !== \"\" && (\n }\n subheader={\n \n \n \n }\n classes={{\n root: subStyles.root,\n title: subStyles.title,\n content: subStyles.content,\n }}\n />\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(CommonCard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport CommonCard from \"../CommonCard\";\n\ninterface IMergedWidgets {\n title: string;\n leftComponent: any;\n rightComponent: any;\n}\n\nconst MergedWidgets = ({\n title,\n leftComponent,\n rightComponent,\n}: IMergedWidgets) => {\n return (\n \n \n \n );\n};\n\nexport default MergedWidgets;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { IDashboardPanel } from \"../types\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\nconst EntityStateStatItem = ({\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n statLabel,\n}: {\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n statLabel: any;\n}) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let toRender = loading ? (\n \n \n \n ) : (\n \n {data}\n {statLabel}\n \n );\n\n return toRender;\n};\n\nexport default EntityStateStatItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\nconst DualStatCard = ({\n statItemLeft = null,\n statItemRight = null,\n icon = null,\n label = \"\",\n}: {\n statItemLeft: any;\n statItemRight: any;\n icon: any;\n label: string;\n}) => {\n const getContent = () => {\n return (\n \n \n \n {label}\n \n\n \n {statItemLeft}\n {statItemRight}\n \n \n \n {icon}\n \n \n );\n };\n\n return (\n \n {getContent()}\n \n );\n};\n\nexport default DualStatCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport EntityStateStatItem from \"./EntityStateStatItem\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon, DrivesIcon, ServersIcon } from \"../../../../../icons\";\nimport DualStatCard from \"./DualStatCard\";\nimport { IDashboardPanel } from \"../types\";\n\nconst EntityStateItemRenderer = ({\n info,\n timeStart,\n timeEnd,\n loading,\n apiPrefix,\n}: {\n info: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n loading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [], id } = info;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const lStatItem = (\n \n \n
Online
\n \n }\n />\n );\n const rStatItem = (\n \n \n
Offline
\n \n }\n />\n );\n\n let statIcon = null;\n let statLabel = \"\";\n if (id === 500) {\n statIcon = ;\n statLabel = \"Servers\";\n } else if (id === 501) {\n statIcon = ;\n statLabel = \"Drives\";\n }\n\n return (\n \n );\n};\nexport default EntityStateItemRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { NetworkGetIcon } from \"../../../../../icons\";\n\nconst NetworkGetItem = ({\n value,\n loading,\n}: {\n value: any;\n loading: boolean;\n title?: any;\n id?: number;\n}) => {\n return (\n \n \n \n GET\n \n {loading ? (\n \n ) : (\n \n )}\n \n \n {value}\n \n \n );\n};\n\nexport default NetworkGetItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { NetworkPutIcon } from \"../../../../../icons\";\n\nconst NetworkPutItem = ({\n value,\n loading,\n}: {\n value: any;\n loading: boolean;\n title?: any;\n id?: number;\n}) => {\n return (\n \n \n \n PUT\n \n {loading ? (\n \n ) : (\n \n )}\n \n \n {value}\n \n \n );\n};\n\nexport default NetworkPutItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IDashboardPanel } from \"../types\";\nimport { Box } from \"@mui/material\";\nimport { SpeedtestIcon } from \"../../../../../icons\";\nimport SingleValueWidget from \"./SingleValueWidget\";\nimport NetworkGetItem from \"./NetworkGetItem\";\nimport NetworkPutItem from \"./NetworkPutItem\";\n\nconst NetworkItem = ({\n value,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n}: {\n value: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [] } = value;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const rightCmp = (\n {\n return (\n \n );\n }}\n />\n );\n const leftCmp = (\n {\n return (\n \n );\n }}\n />\n );\n\n return (\n \n \n Network\n \n \n \n {leftCmp}\n \n \n \n \n {rightCmp}\n \n \n \n \n \n \n );\n};\n\nexport default NetworkItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { componentToUse } from \"../widgetUtils\";\nimport MergedWidgets from \"../MergedWidgets\";\nimport { IDashboardPanel } from \"../types\";\nimport EntityStateItemRenderer from \"./EntityStateItemRenderer\";\nimport NetworkItem from \"./NetworkItem\";\nimport DashboardItemBox from \"../../DashboardItemBox\";\n\nconst MergedWidgetsRenderer = ({\n info,\n timeStart,\n timeEnd,\n loading,\n apiPrefix,\n}: {\n info: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n loading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [], title = \"\", id } = info;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const renderById = () => {\n if ([500, 501].includes(id)) {\n return (\n \n \n \n );\n }\n\n if (id === 502) {\n return (\n \n \n \n );\n }\n\n return (\n \n );\n };\n\n return renderById();\n};\n\nexport default MergedWidgetsRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box } from \"@mui/material\";\nimport {\n actionsTray,\n widgetContainerCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"./types\";\nimport { getWidgetsWithValue, panelsConfiguration } from \"./utils\";\nimport { TabPanel } from \"../../../shared/tabs\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\n\nimport TabSelector from \"../../Common/TabSelector/TabSelector\";\nimport { componentToUse } from \"./widgetUtils\";\nimport ZoomWidget from \"./ZoomWidget\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport DateRangeSelector from \"../../Common/FormComponents/DateRangeSelector/DateRangeSelector\";\nimport {\n DLayoutColumnProps,\n DLayoutRowProps,\n resourcesPanelsLayout,\n resourcesPanelsLayoutAdvanced,\n RowPanelLayout,\n summaryPanelsLayout,\n trafficPanelsLayout,\n} from \"./Widgets/LayoutUtil\";\nimport MergedWidgetsRenderer from \"./Widgets/MergedWidgetsRenderer\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\n\ninterface IPrDashboard {\n classes?: any;\n apiPrefix?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n dashboardRow: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n flexWrap: \"wrap\",\n },\n });\n\nconst PrDashboard = ({ apiPrefix = \"admin\" }: IPrDashboard) => {\n const dispatch = useAppDispatch();\n const zoomOpen = useSelector(\n (state: AppState) => state.dashboard.zoom.openZoom\n );\n const zoomWidget = useSelector(\n (state: AppState) => state.dashboard.zoom.widgetRender\n );\n\n const [timeStart, setTimeStart] = useState(null);\n const [timeEnd, setTimeEnd] = useState(null);\n const [loading, setLoading] = useState(true);\n const [panelInformation, setPanelInformation] =\n useState(panelsConfiguration);\n const [curTab, setCurTab] = useState(0);\n\n const getPanelDetails = (id: number) => {\n return panelInformation.find((panel) => panel.id === id);\n };\n\n const fetchUsage = useCallback(() => {\n let stepCalc = 0;\n\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n if (res.widgets) {\n const widgetsWithValue = getWidgetsWithValue(res.widgets);\n setPanelInformation(widgetsWithValue);\n } else {\n dispatch(\n setErrorSnackMessage({\n errorMessage:\n \"Widget information could not be retrieved at this time. Please try again\",\n detailedError: \"\",\n })\n );\n }\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }, [timeStart, timeEnd, dispatch, apiPrefix]);\n\n const triggerLoad = () => {\n setLoading(true);\n };\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const renderCmpByConfig = (\n panelInfo: IDashboardPanel | undefined,\n key: string\n ) => {\n return (\n \n {panelInfo ? (\n \n {panelInfo.mergedPanels ? (\n \n ) : (\n componentToUse(panelInfo, timeStart, timeEnd, loading, apiPrefix)\n )}\n \n ) : null}\n \n );\n };\n\n const renderPanelItems = (layoutRows: DLayoutRowProps[]) => {\n return layoutRows.reduce((prev: any[], rowItem, rIdx) => {\n const { columns = [] } = rowItem;\n const cellItems: any[] = columns.map(\n (cellItem: DLayoutColumnProps, colIdx: number) => {\n const panelInfo = getPanelDetails(cellItem.componentId);\n return renderCmpByConfig(panelInfo, `${rIdx}-${colIdx}`);\n }\n );\n const rowConfig = (\n \n {cellItems}\n \n );\n return [...prev, rowConfig];\n }, []);\n };\n\n const renderSummaryPanels = () => {\n return renderPanelItems(summaryPanelsLayout);\n };\n\n const renderTrafficPanels = () => {\n return renderPanelItems(trafficPanelsLayout);\n };\n\n const renderResourcesPanels = () => {\n return renderPanelItems(resourcesPanelsLayout);\n };\n\n const renderAdvancedResourcesPanels = () => {\n return renderPanelItems(resourcesPanelsLayoutAdvanced);\n };\n\n return (\n \n {zoomOpen && (\n \n )}\n\n \n {\n setCurTab(newValue);\n }}\n tabOptions={[\n { label: \"Usage\" },\n { label: \"Traffic\" },\n { label: \"Resources\" },\n ]}\n />\n \n \n \n \n \n \n \n {panelInformation.length ? renderSummaryPanels() : null}\n \n \n \n \n {panelInformation.length ? renderTrafficPanels() : null}\n \n \n \n \n {panelInformation.length ? renderResourcesPanels() : null}\n

\n Advanced\n

\n {panelInformation.length ? renderAdvancedResourcesPanels() : null}\n
\n
\n \n
\n );\n};\n\nexport default withStyles(styles)(PrDashboard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ServerInfo } from \"../types\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\nimport get from \"lodash/get\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n getDriveStatusColor,\n getNetworkStatusColor,\n serverStatusColor,\n} from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n server: ServerInfo;\n index: number;\n}\n\nconst ServerStatItem = ({\n label = \"\",\n value = \"\",\n statusColor = \"\",\n hasStatus = false,\n}: {\n label?: string;\n value?: any;\n hasStatus?: boolean;\n statusColor: string | undefined;\n}) => {\n return (\n \n \n
\n {value}{\" \"}\n \n {hasStatus ? (\n \n \n \n ) : (\n \n )}\n \n
\n
{label}
\n \n \n );\n};\n\nconst ServerInfoItem = ({ server }: ICardProps) => {\n const networkKeys = Object.keys(get(server, \"network\", {}));\n const networkTotal = networkKeys.length;\n const totalDrives = server.drives ? server.drives.length : 0;\n const activeNetwork = networkKeys.reduce((acc: number, currValue: string) => {\n const item = server.network[currValue];\n if (item === \"online\") {\n return acc + 1;\n }\n return acc;\n }, 0);\n const activeDisks = server.drives\n ? server.drives.filter((element) => element.state === \"ok\").length\n : 0;\n return (\n \n \n \n \n {server.endpoint || \"\"}\n \n {server?.state && (\n \n \n \n )}\n \n\n \n \n \n\n \n \n \n Version:\n {server.version ? server.version : \"N/A\"}\n \n }\n />\n \n \n );\n};\nexport default withStyles(styles)(ServerInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IDriveInfo } from \"../types\";\nimport {\n capacityColors,\n niceBytes,\n niceBytesInt,\n} from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { STATUS_COLORS } from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n drive: IDriveInfo;\n}\n\nconst driveStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"ok\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\n\nconst DriveInfoItem = ({ drive }: ICardProps) => {\n const freeSpace = drive.totalSpace - drive.usedSpace;\n\n const plotValues = [\n { value: freeSpace, color: \"#D6D6D6\", label: \"Free Space\" },\n {\n value: drive.usedSpace,\n color: capacityColors(drive.usedSpace, drive.totalSpace),\n label: \"Used Space\",\n },\n ];\n return (\n \n \n \n
{drive.endpoint || \"\"}
\n {drive.state && }\n \n\n \n \n
\n \n {niceBytesInt(drive.usedSpace)}\n \n
\n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n
\n
\n\n \n \n
\n {niceBytes(\n drive.totalSpace ? drive.totalSpace.toString() : \"0\"\n )}\n
\n \n \n\n \n
\n {niceBytes(drive.usedSpace ? drive.usedSpace.toString() : \"0\")}\n
\n \n \n \n
\n {niceBytes(\n drive.availableSpace ? drive.availableSpace.toString() : \"0\"\n )}\n
\n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(DriveInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport Collapse from \"@mui/material/Collapse\";\nimport { ServerInfo } from \"../types\";\nimport ServerInfoItem from \"./ServerInfoItem\";\nimport { Box } from \"@mui/material\";\nimport DriveInfoItem from \"./DriveInfoItem\";\nimport {\n MenuCollapsedIcon,\n MenuExpandedIcon,\n} from \"../../../../icons/SidebarMenus\";\n\nconst ServersList = ({ data }: { data: ServerInfo[] }) => {\n const [expanded, setExpanded] = React.useState(\n data.length > 1 ? \"\" : data[0].endpoint + \"-0\"\n );\n\n const handleClick = (key: string) => {\n setExpanded(key);\n };\n\n return (\n \n \n Servers ({data.length})\n \n \n {data.map((serverInfo, index) => {\n const key = `${serverInfo.endpoint}-${index}`;\n const isExpanded = expanded === key;\n return (\n \n {\n if (!isExpanded) {\n handleClick(key);\n } else {\n handleClick(\"\");\n }\n }}\n className={isExpanded ? \"expanded\" : \"\"}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n border: \"1px solid #f1f1f1\",\n padding: \"3px 10px 3px 10px\",\n\n \"&:hover\": {\n background: \"#bebbbb0d\",\n },\n }}\n >\n \n \n {isExpanded ? (\n \n ) : (\n \n )}\n \n \n {isExpanded ? (\n \n \n Drives ({serverInfo.drives.length})\n \n\n \n {serverInfo.drives.map((driveInfo, index) => {\n return (\n \n );\n })}\n \n \n ) : null}\n \n );\n })}\n \n \n );\n};\n\nexport default ServersList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\n\nconst CounterCard = ({\n counterValue,\n label = \"\",\n icon = null,\n actions = null,\n loading = false,\n}: {\n counterValue: string | number;\n label?: any;\n icon?: any;\n actions?: any;\n loading?: boolean;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n {counterValue}\n \n \n \n \n {icon}\n\n {actions}\n \n \n \n );\n};\n\nexport default CounterCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\n\nconst ReportedUsage = ({\n usageValue,\n total,\n unit,\n}: {\n usageValue: string;\n total: number | string;\n unit: string;\n}) => {\n const plotValues = [\n { value: total, color: \"#D6D6D6\", label: \"Free Space\" },\n {\n value: usageValue,\n color: \"#073052\",\n label: \"Used Space\",\n },\n ];\n\n return (\n \n \n
\n Reported Usage\n
\n\n \n \n {total}\n \n \n \n
\n\n \n \n \n
\n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n \n
\n
\n \n );\n};\n\nexport default ReportedUsage;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n ArrowRightIcon,\n BucketsIcon,\n DrivesIcon,\n HealIcon,\n PrometheusErrorIcon,\n ServersIcon,\n TotalObjectsIcon,\n UptimeIcon,\n} from \"../../../../icons\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { calculateBytes, representationNumber } from \"../../../../common/utils\";\nimport { IDriveInfo, Usage } from \"../types\";\nimport StatusCountCard from \"./StatusCountCard\";\nimport groupBy from \"lodash/groupBy\";\nimport ServersList from \"./ServersList\";\nimport CounterCard from \"./CounterCard\";\nimport ReportedUsage from \"./ReportedUsage\";\nimport { DiagnosticsMenuIcon } from \"../../../../icons/SidebarMenus\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { Link } from \"react-router-dom\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport TimeStatItem from \"../TimeStatItem\";\n\nconst BoxItem = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n\ninterface IDashboardProps {\n usage: Usage | null;\n}\n\nconst getServersList = (usage: Usage | null) => {\n if (usage !== null) {\n return usage.servers.sort(function (a, b) {\n const nameA = a.endpoint.toLowerCase();\n const nameB = b.endpoint.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n }\n\n return [];\n};\n\nconst prettyUsage = (usage: string | undefined) => {\n if (usage === undefined) {\n return { total: \"0\", unit: \"Mi\" };\n }\n\n return calculateBytes(usage);\n};\n\nconst BasicDashboard = ({ usage }: IDashboardProps) => {\n const usageValue = usage && usage.usage ? usage.usage.toString() : \"0\";\n const usageToRepresent = prettyUsage(usageValue);\n\n const { lastScan = \"n/a\", lastHeal = \"n/a\", upTime = \"n/a\" } = usage || {};\n\n const serverList = getServersList(usage || null);\n\n let allDrivesArray: IDriveInfo[] = [];\n\n serverList.forEach((server) => {\n const drivesInput = server.drives.map((drive) => {\n return drive;\n });\n\n allDrivesArray = [...allDrivesArray, ...drivesInput];\n });\n\n const serversGroup = groupBy(serverList, \"state\");\n const { offline: offlineServers = [], online: onlineServers = [] } =\n serversGroup;\n const drivesGroup = groupBy(allDrivesArray, \"state\");\n const { offline: offlineDrives = [], ok: onlineDrives = [] } = drivesGroup;\n\n return (\n \n \n \n {usage?.prometheusNotReady && (\n }\n title={\"We can't retrieve advanced metrics at this time\"}\n help={\n \n MinIO Dashboard will display basic metrics as we couldn't\n connect to Prometheus successfully.\n

\n Please try again in a few minutes. If the problem persists,\n you can review your configuration and confirm that Prometheus\n server is up and running.\n
\n }\n />\n )}\n\n {!usage?.prometheusNotReady && (\n }\n title={\"We can’t retrieve advanced metrics at this time.\"}\n help={\n \n \n MinIO Dashboard will display basic metrics as we couldn’t\n connect to Prometheus successfully. Please try again in a\n few minutes. If the problem persists, you can review your\n configuration and confirm that Prometheus server is up and\n running.\n \n theme.colors.link,\n },\n }}\n >\n \n Read more about Prometheus on our Docs site.\n \n
\n \n }\n />\n )}\n \n\n \n \n \n }\n counterValue={usage ? representationNumber(usage.buckets) : 0}\n actions={\n \n {}}\n text={\"Browse\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n }\n />\n \n \n }\n counterValue={usage ? representationNumber(usage.objects) : 0}\n />\n \n\n \n }\n />\n \n \n }\n />\n \n\n \n \n\n \n }\n label={\n \n \n Time since last\n {\" \"}\n Heal Activity\n \n }\n value={lastHeal}\n />\n }\n label={\n \n \n Time since last\n {\" \"}\n Scan Activity\n \n }\n value={lastScan}\n />\n }\n label={\"Uptime\"}\n value={upTime}\n />\n \n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default BasicDashboard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\n\nimport get from \"lodash/get\";\nimport PrDashboard from \"./Prometheus/PrDashboard\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport Grid from \"@mui/material/Grid\";\nimport { containerForHeader } from \"../Common/FormComponents/common/styleLibrary\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport api from \"../../../common/api\";\nimport { Usage } from \"./types\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport BasicDashboard from \"./BasicDashboard/BasicDashboard\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\ninterface IDashboardSimple {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Dashboard = ({ classes }: IDashboardSimple) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [basicResult, setBasicResult] = useState(null);\n\n const fetchUsage = useCallback(() => {\n api\n .invoke(\"GET\", `/api/v1/admin/info`)\n .then((res: Usage) => {\n setBasicResult(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }, [setBasicResult, setLoading, dispatch]);\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const widgets = get(basicResult, \"widgets\", null);\n\n return (\n \n \n {loading ? (\n \n \n \n \n \n ) : (\n \n {widgets !== null ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(Dashboard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n value: any;\n}\n\nexport const TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n\n return (\n