From 2857b8c5867dc95c3c612dfc3b88edbed2ec6bd2 Mon Sep 17 00:00:00 2001
From: Alex <33497058+bexsoft@users.noreply.github.com>
Date: Wed, 10 Aug 2022 22:43:36 -0500
Subject: [PATCH] Release v0.19.5 (#2243)
---
.../base/console-deployment.yaml | 2 +-
.../standalone/console-deployment.yaml | 2 +-
portal-ui/build/asset-manifest.json | 404 +++++++++---------
portal-ui/build/index.html | 2 +-
...6b3822.chunk.js => 1030.a80a23bf.chunk.js} | 4 +-
...hunk.js.map => 1030.a80a23bf.chunk.js.map} | 2 +-
.../build/static/js/1182.0b468b7f.chunk.js | 2 +
.../static/js/1182.0b468b7f.chunk.js.map | 1 +
.../build/static/js/1182.264ec55e.chunk.js | 2 -
.../static/js/1182.264ec55e.chunk.js.map | 1 -
.../build/static/js/1199.acc7a3c5.chunk.js | 2 +
...hunk.js.map => 1199.acc7a3c5.chunk.js.map} | 2 +-
.../build/static/js/1199.ae4c29a1.chunk.js | 2 -
.../build/static/js/1260.5eb8500b.chunk.js | 2 -
.../static/js/1260.5eb8500b.chunk.js.map | 1 -
.../build/static/js/1260.add10538.chunk.js | 2 +
.../static/js/1260.add10538.chunk.js.map | 1 +
...6b69cf.chunk.js => 1268.6b4f91d2.chunk.js} | 4 +-
...hunk.js.map => 1268.6b4f91d2.chunk.js.map} | 2 +-
...a7a1e1.chunk.js => 1367.a94951c1.chunk.js} | 4 +-
...hunk.js.map => 1367.a94951c1.chunk.js.map} | 2 +-
.../build/static/js/1379.7e93fe73.chunk.js | 2 -
.../static/js/1379.7e93fe73.chunk.js.map | 1 -
.../build/static/js/1379.9ed2e025.chunk.js | 2 +
.../static/js/1379.9ed2e025.chunk.js.map | 1 +
...a2f19f.chunk.js => 1440.0a79a7c6.chunk.js} | 4 +-
...hunk.js.map => 1440.0a79a7c6.chunk.js.map} | 2 +-
...54336e.chunk.js => 1501.64c3165f.chunk.js} | 4 +-
...hunk.js.map => 1501.64c3165f.chunk.js.map} | 2 +-
...0c0082.chunk.js => 1581.b372ec91.chunk.js} | 4 +-
...hunk.js.map => 1581.b372ec91.chunk.js.map} | 2 +-
...690eb1.chunk.js => 1604.54fe3660.chunk.js} | 4 +-
...hunk.js.map => 1604.54fe3660.chunk.js.map} | 2 +-
...ce00fc.chunk.js => 1705.0a3da076.chunk.js} | 4 +-
...hunk.js.map => 1705.0a3da076.chunk.js.map} | 2 +-
.../build/static/js/1799.dceada24.chunk.js | 2 +
.../static/js/1799.dceada24.chunk.js.map | 1 +
...3fb198.chunk.js => 1829.51f89ce7.chunk.js} | 4 +-
...hunk.js.map => 1829.51f89ce7.chunk.js.map} | 2 +-
...9c180b.chunk.js => 1913.aef0d716.chunk.js} | 4 +-
...hunk.js.map => 1913.aef0d716.chunk.js.map} | 2 +-
...047ff5.chunk.js => 2112.218ae789.chunk.js} | 4 +-
...hunk.js.map => 2112.218ae789.chunk.js.map} | 2 +-
...cd0c4b.chunk.js => 2180.3032b83a.chunk.js} | 4 +-
...hunk.js.map => 2180.3032b83a.chunk.js.map} | 2 +-
...707550.chunk.js => 2185.c6714d7f.chunk.js} | 4 +-
...hunk.js.map => 2185.c6714d7f.chunk.js.map} | 2 +-
...b092f8.chunk.js => 2338.4512b89d.chunk.js} | 4 +-
...hunk.js.map => 2338.4512b89d.chunk.js.map} | 2 +-
...4b0ce6.chunk.js => 2408.a316c373.chunk.js} | 4 +-
...hunk.js.map => 2408.a316c373.chunk.js.map} | 2 +-
...ce190b5.chunk.js => 247.6b8f3ceb.chunk.js} | 4 +-
...chunk.js.map => 247.6b8f3ceb.chunk.js.map} | 2 +-
.../build/static/js/2527.65ee9c60.chunk.js | 2 +
.../static/js/2527.65ee9c60.chunk.js.map | 1 +
...7780d4.chunk.js => 2555.f6831ab1.chunk.js} | 4 +-
...hunk.js.map => 2555.f6831ab1.chunk.js.map} | 2 +-
...fe472e.chunk.js => 2637.583760ab.chunk.js} | 4 +-
...hunk.js.map => 2637.583760ab.chunk.js.map} | 2 +-
...e77f72.chunk.js => 2661.59158a7f.chunk.js} | 4 +-
...hunk.js.map => 2661.59158a7f.chunk.js.map} | 2 +-
...b792c0.chunk.js => 2684.3b290eb0.chunk.js} | 4 +-
...hunk.js.map => 2684.3b290eb0.chunk.js.map} | 2 +-
.../build/static/js/2763.eff3ace0.chunk.js | 2 +
.../static/js/2763.eff3ace0.chunk.js.map | 1 +
...a58310.chunk.js => 2850.0df9a9cb.chunk.js} | 4 +-
...hunk.js.map => 2850.0df9a9cb.chunk.js.map} | 2 +-
...a1771d.chunk.js => 2878.3aef87af.chunk.js} | 4 +-
...hunk.js.map => 2878.3aef87af.chunk.js.map} | 2 +-
...38a4fe.chunk.js => 2983.365588dd.chunk.js} | 4 +-
...hunk.js.map => 2983.365588dd.chunk.js.map} | 2 +-
...1cfd70.chunk.js => 3061.42c87510.chunk.js} | 4 +-
...hunk.js.map => 3061.42c87510.chunk.js.map} | 2 +-
.../build/static/js/3119.de98cea1.chunk.js | 2 +
.../static/js/3119.de98cea1.chunk.js.map | 1 +
...d77f5db.chunk.js => 312.9d2483e2.chunk.js} | 4 +-
...chunk.js.map => 312.9d2483e2.chunk.js.map} | 2 +-
...470c38.chunk.js => 3328.161f27a6.chunk.js} | 4 +-
...hunk.js.map => 3328.161f27a6.chunk.js.map} | 2 +-
...e17ca62.chunk.js => 343.b753d8a6.chunk.js} | 4 +-
...chunk.js.map => 343.b753d8a6.chunk.js.map} | 2 +-
...b4cd02.chunk.js => 3956.8ed30c16.chunk.js} | 4 +-
...hunk.js.map => 3956.8ed30c16.chunk.js.map} | 2 +-
...c660ae6.chunk.js => 402.56cf1d62.chunk.js} | 4 +-
...chunk.js.map => 402.56cf1d62.chunk.js.map} | 2 +-
...4b2694.chunk.js => 4061.c293b7bd.chunk.js} | 4 +-
...hunk.js.map => 4061.c293b7bd.chunk.js.map} | 2 +-
...077897.chunk.js => 4133.21aad0d8.chunk.js} | 4 +-
...hunk.js.map => 4133.21aad0d8.chunk.js.map} | 2 +-
...b25520.chunk.js => 4209.2f923e7c.chunk.js} | 4 +-
...hunk.js.map => 4209.2f923e7c.chunk.js.map} | 2 +-
...fd80f88.chunk.js => 426.8a124aa3.chunk.js} | 4 +-
...chunk.js.map => 426.8a124aa3.chunk.js.map} | 2 +-
...216a7e.chunk.js => 4298.39009639.chunk.js} | 4 +-
...hunk.js.map => 4298.39009639.chunk.js.map} | 2 +-
...87f6a6.chunk.js => 4335.c9054391.chunk.js} | 4 +-
...hunk.js.map => 4335.c9054391.chunk.js.map} | 2 +-
...edf059.chunk.js => 4414.428aea58.chunk.js} | 4 +-
...hunk.js.map => 4414.428aea58.chunk.js.map} | 2 +-
...6f5a0d.chunk.js => 4455.0e61928a.chunk.js} | 4 +-
...hunk.js.map => 4455.0e61928a.chunk.js.map} | 2 +-
...aa5b756.chunk.js => 455.ae9e0193.chunk.js} | 4 +-
...chunk.js.map => 455.ae9e0193.chunk.js.map} | 2 +-
...10a969.chunk.js => 4575.fcb7724d.chunk.js} | 4 +-
...hunk.js.map => 4575.fcb7724d.chunk.js.map} | 2 +-
...9ee17c.chunk.js => 4619.e0972aca.chunk.js} | 4 +-
...hunk.js.map => 4619.e0972aca.chunk.js.map} | 2 +-
...13044c.chunk.js => 4653.512865cd.chunk.js} | 4 +-
...hunk.js.map => 4653.512865cd.chunk.js.map} | 2 +-
...b2072e.chunk.js => 4873.b3b8ac8e.chunk.js} | 4 +-
...hunk.js.map => 4873.b3b8ac8e.chunk.js.map} | 2 +-
...27358d.chunk.js => 4902.09995c8f.chunk.js} | 4 +-
...hunk.js.map => 4902.09995c8f.chunk.js.map} | 2 +-
.../build/static/js/4932.09da6134.chunk.js | 2 +
.../static/js/4932.09da6134.chunk.js.map | 1 +
...92271b.chunk.js => 5088.37366b7d.chunk.js} | 4 +-
...hunk.js.map => 5088.37366b7d.chunk.js.map} | 2 +-
...f85def1c.chunk.js => 51.6f729db1.chunk.js} | 4 +-
....chunk.js.map => 51.6f729db1.chunk.js.map} | 2 +-
.../build/static/js/5112.30236fa2.chunk.js | 2 -
.../build/static/js/5112.f134e323.chunk.js | 2 +
...hunk.js.map => 5112.f134e323.chunk.js.map} | 2 +-
...0c796e.chunk.js => 5223.d2798e93.chunk.js} | 4 +-
...hunk.js.map => 5223.d2798e93.chunk.js.map} | 2 +-
...c9d169.chunk.js => 5289.289c4818.chunk.js} | 4 +-
...hunk.js.map => 5289.289c4818.chunk.js.map} | 2 +-
.../build/static/js/5367.4ee5c384.chunk.js | 2 +
.../static/js/5367.4ee5c384.chunk.js.map | 1 +
.../build/static/js/5367.991f75c4.chunk.js | 2 -
.../static/js/5367.991f75c4.chunk.js.map | 1 -
...a2f464.chunk.js => 5503.46dc465e.chunk.js} | 4 +-
...hunk.js.map => 5503.46dc465e.chunk.js.map} | 2 +-
...805a10.chunk.js => 5517.5881c974.chunk.js} | 4 +-
...hunk.js.map => 5517.5881c974.chunk.js.map} | 2 +-
...387455.chunk.js => 5926.67e41b5c.chunk.js} | 4 +-
...hunk.js.map => 5926.67e41b5c.chunk.js.map} | 2 +-
...486126.chunk.js => 6137.ebbd233b.chunk.js} | 4 +-
...hunk.js.map => 6137.ebbd233b.chunk.js.map} | 2 +-
.../build/static/js/6331.83e8107a.chunk.js | 2 +
.../static/js/6331.83e8107a.chunk.js.map | 1 +
.../build/static/js/6331.9d5ff423.chunk.js | 2 -
.../static/js/6331.9d5ff423.chunk.js.map | 1 -
.../build/static/js/6401.546f3ad0.chunk.js | 2 +
.../static/js/6401.546f3ad0.chunk.js.map | 1 +
.../build/static/js/6526.3ea27eec.chunk.js | 2 +
.../static/js/6526.3ea27eec.chunk.js.map | 1 +
...d06144.chunk.js => 6577.c372268c.chunk.js} | 4 +-
...hunk.js.map => 6577.c372268c.chunk.js.map} | 2 +-
.../build/static/js/6683.31f7943c.chunk.js | 2 +
.../static/js/6683.31f7943c.chunk.js.map | 1 +
.../build/static/js/6683.993a0cfc.chunk.js | 2 -
.../static/js/6683.993a0cfc.chunk.js.map | 1 -
...fe0032.chunk.js => 6763.ce363ce0.chunk.js} | 4 +-
...hunk.js.map => 6763.ce363ce0.chunk.js.map} | 2 +-
...ff9efd.chunk.js => 6860.2c2b34f2.chunk.js} | 4 +-
...hunk.js.map => 6860.2c2b34f2.chunk.js.map} | 2 +-
...78f23b.chunk.js => 6895.913992ec.chunk.js} | 4 +-
...hunk.js.map => 6895.913992ec.chunk.js.map} | 2 +-
...fa1e6f.chunk.js => 6901.0b8f3982.chunk.js} | 4 +-
...hunk.js.map => 6901.0b8f3982.chunk.js.map} | 2 +-
.../build/static/js/692.c28b1b9b.chunk.js | 2 -
.../build/static/js/692.cb0079a0.chunk.js | 2 +
...chunk.js.map => 692.cb0079a0.chunk.js.map} | 2 +-
.../build/static/js/701.05206868.chunk.js | 2 -
.../build/static/js/701.05206868.chunk.js.map | 1 -
.../build/static/js/701.e64d92dd.chunk.js | 2 +
.../build/static/js/701.e64d92dd.chunk.js.map | 1 +
.../build/static/js/7021.0cd1393a.chunk.js | 2 +
.../static/js/7021.0cd1393a.chunk.js.map | 1 +
.../build/static/js/7021.2df7e2e0.chunk.js | 2 -
.../static/js/7021.2df7e2e0.chunk.js.map | 1 -
...e9f8284.chunk.js => 711.f849ab21.chunk.js} | 4 +-
...chunk.js.map => 711.f849ab21.chunk.js.map} | 2 +-
...6a05831.chunk.js => 736.09b2feed.chunk.js} | 4 +-
...chunk.js.map => 736.09b2feed.chunk.js.map} | 2 +-
...e7c2ed.chunk.js => 7585.c6b3f151.chunk.js} | 4 +-
...hunk.js.map => 7585.c6b3f151.chunk.js.map} | 2 +-
...358177.chunk.js => 7659.a9f31d32.chunk.js} | 4 +-
...hunk.js.map => 7659.a9f31d32.chunk.js.map} | 2 +-
.../build/static/js/7770.5dad74f3.chunk.js | 2 -
.../static/js/7770.5dad74f3.chunk.js.map | 1 -
.../build/static/js/7770.ab89838c.chunk.js | 2 +
.../static/js/7770.ab89838c.chunk.js.map | 1 +
...74925d.chunk.js => 7798.3457153d.chunk.js} | 4 +-
...hunk.js.map => 7798.3457153d.chunk.js.map} | 2 +-
...81d37f.chunk.js => 7847.04dba10f.chunk.js} | 4 +-
...hunk.js.map => 7847.04dba10f.chunk.js.map} | 2 +-
...0f3d9f.chunk.js => 8253.112a3c07.chunk.js} | 4 +-
...hunk.js.map => 8253.112a3c07.chunk.js.map} | 2 +-
...721e94.chunk.js => 8350.927cb0f2.chunk.js} | 4 +-
...hunk.js.map => 8350.927cb0f2.chunk.js.map} | 2 +-
...8204ad.chunk.js => 8391.824bba1f.chunk.js} | 4 +-
...hunk.js.map => 8391.824bba1f.chunk.js.map} | 2 +-
...71a45b.chunk.js => 8455.01f5b771.chunk.js} | 4 +-
...hunk.js.map => 8455.01f5b771.chunk.js.map} | 2 +-
...e34c6f.chunk.js => 8626.8bb53c19.chunk.js} | 4 +-
...hunk.js.map => 8626.8bb53c19.chunk.js.map} | 2 +-
...4bf585.chunk.js => 8833.ff06f54a.chunk.js} | 4 +-
...hunk.js.map => 8833.ff06f54a.chunk.js.map} | 2 +-
...3037296.chunk.js => 889.22fc77b5.chunk.js} | 4 +-
...chunk.js.map => 889.22fc77b5.chunk.js.map} | 2 +-
...116952.chunk.js => 8896.af72e26d.chunk.js} | 4 +-
...hunk.js.map => 8896.af72e26d.chunk.js.map} | 2 +-
...4642a8.chunk.js => 8990.943dbbfb.chunk.js} | 4 +-
...hunk.js.map => 8990.943dbbfb.chunk.js.map} | 2 +-
...18741c.chunk.js => 8998.952b511e.chunk.js} | 4 +-
...hunk.js.map => 8998.952b511e.chunk.js.map} | 2 +-
...dd5d6a.chunk.js => 9088.0e6ebda2.chunk.js} | 4 +-
...hunk.js.map => 9088.0e6ebda2.chunk.js.map} | 2 +-
...d624c6.chunk.js => 9134.02674829.chunk.js} | 4 +-
...hunk.js.map => 9134.02674829.chunk.js.map} | 2 +-
...dff7c3.chunk.js => 9145.2e7a2761.chunk.js} | 4 +-
...hunk.js.map => 9145.2e7a2761.chunk.js.map} | 2 +-
...74e070.chunk.js => 9179.c920b1c6.chunk.js} | 4 +-
...hunk.js.map => 9179.c920b1c6.chunk.js.map} | 2 +-
...d6096a.chunk.js => 9221.696bb93f.chunk.js} | 4 +-
...hunk.js.map => 9221.696bb93f.chunk.js.map} | 2 +-
...7c5817.chunk.js => 9251.5be021a3.chunk.js} | 4 +-
...hunk.js.map => 9251.5be021a3.chunk.js.map} | 2 +-
.../build/static/js/9297.8a17bfe7.chunk.js | 2 +
.../static/js/9297.8a17bfe7.chunk.js.map | 1 +
.../build/static/js/9388.20842728.chunk.js | 2 -
.../static/js/9388.20842728.chunk.js.map | 1 -
.../build/static/js/9467.2f82fcf5.chunk.js | 2 +
.../static/js/9467.2f82fcf5.chunk.js.map | 1 +
.../build/static/js/9467.e157f032.chunk.js | 2 -
.../static/js/9467.e157f032.chunk.js.map | 1 -
...1e32db.chunk.js => 9561.ebe2bdbf.chunk.js} | 4 +-
...hunk.js.map => 9561.ebe2bdbf.chunk.js.map} | 2 +-
...6de82c.chunk.js => 9942.d86db577.chunk.js} | 4 +-
...hunk.js.map => 9942.d86db577.chunk.js.map} | 2 +-
...f204ee.chunk.js => 9968.42e61fd8.chunk.js} | 4 +-
...hunk.js.map => 9968.42e61fd8.chunk.js.map} | 2 +-
portal-ui/build/static/js/main.85f28419.js | 3 +
...CENSE.txt => main.85f28419.js.LICENSE.txt} | 0
...n.ccc73c66.js.map => main.85f28419.js.map} | 2 +-
portal-ui/build/static/js/main.ccc73c66.js | 3 -
237 files changed, 522 insertions(+), 487 deletions(-)
rename portal-ui/build/static/js/{1030.e86b3822.chunk.js => 1030.a80a23bf.chunk.js} (98%)
rename portal-ui/build/static/js/{1030.e86b3822.chunk.js.map => 1030.a80a23bf.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/1182.0b468b7f.chunk.js
create mode 100644 portal-ui/build/static/js/1182.0b468b7f.chunk.js.map
delete mode 100644 portal-ui/build/static/js/1182.264ec55e.chunk.js
delete mode 100644 portal-ui/build/static/js/1182.264ec55e.chunk.js.map
create mode 100644 portal-ui/build/static/js/1199.acc7a3c5.chunk.js
rename portal-ui/build/static/js/{1199.ae4c29a1.chunk.js.map => 1199.acc7a3c5.chunk.js.map} (99%)
delete mode 100644 portal-ui/build/static/js/1199.ae4c29a1.chunk.js
delete mode 100644 portal-ui/build/static/js/1260.5eb8500b.chunk.js
delete mode 100644 portal-ui/build/static/js/1260.5eb8500b.chunk.js.map
create mode 100644 portal-ui/build/static/js/1260.add10538.chunk.js
create mode 100644 portal-ui/build/static/js/1260.add10538.chunk.js.map
rename portal-ui/build/static/js/{1268.cb6b69cf.chunk.js => 1268.6b4f91d2.chunk.js} (96%)
rename portal-ui/build/static/js/{1268.cb6b69cf.chunk.js.map => 1268.6b4f91d2.chunk.js.map} (99%)
rename portal-ui/build/static/js/{1367.79a7a1e1.chunk.js => 1367.a94951c1.chunk.js} (98%)
rename portal-ui/build/static/js/{1367.79a7a1e1.chunk.js.map => 1367.a94951c1.chunk.js.map} (99%)
delete mode 100644 portal-ui/build/static/js/1379.7e93fe73.chunk.js
delete mode 100644 portal-ui/build/static/js/1379.7e93fe73.chunk.js.map
create mode 100644 portal-ui/build/static/js/1379.9ed2e025.chunk.js
create mode 100644 portal-ui/build/static/js/1379.9ed2e025.chunk.js.map
rename portal-ui/build/static/js/{1440.b9a2f19f.chunk.js => 1440.0a79a7c6.chunk.js} (98%)
rename portal-ui/build/static/js/{1440.b9a2f19f.chunk.js.map => 1440.0a79a7c6.chunk.js.map} (99%)
rename portal-ui/build/static/js/{1501.3b54336e.chunk.js => 1501.64c3165f.chunk.js} (97%)
rename portal-ui/build/static/js/{1501.3b54336e.chunk.js.map => 1501.64c3165f.chunk.js.map} (99%)
rename portal-ui/build/static/js/{1581.c60c0082.chunk.js => 1581.b372ec91.chunk.js} (96%)
rename portal-ui/build/static/js/{1581.c60c0082.chunk.js.map => 1581.b372ec91.chunk.js.map} (99%)
rename portal-ui/build/static/js/{1604.25690eb1.chunk.js => 1604.54fe3660.chunk.js} (96%)
rename portal-ui/build/static/js/{1604.25690eb1.chunk.js.map => 1604.54fe3660.chunk.js.map} (99%)
rename portal-ui/build/static/js/{1705.32ce00fc.chunk.js => 1705.0a3da076.chunk.js} (93%)
rename portal-ui/build/static/js/{1705.32ce00fc.chunk.js.map => 1705.0a3da076.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/1799.dceada24.chunk.js
create mode 100644 portal-ui/build/static/js/1799.dceada24.chunk.js.map
rename portal-ui/build/static/js/{1829.223fb198.chunk.js => 1829.51f89ce7.chunk.js} (98%)
rename portal-ui/build/static/js/{1829.223fb198.chunk.js.map => 1829.51f89ce7.chunk.js.map} (99%)
rename portal-ui/build/static/js/{1913.549c180b.chunk.js => 1913.aef0d716.chunk.js} (95%)
rename portal-ui/build/static/js/{1913.549c180b.chunk.js.map => 1913.aef0d716.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2112.e0047ff5.chunk.js => 2112.218ae789.chunk.js} (90%)
rename portal-ui/build/static/js/{2112.e0047ff5.chunk.js.map => 2112.218ae789.chunk.js.map} (98%)
rename portal-ui/build/static/js/{2180.03cd0c4b.chunk.js => 2180.3032b83a.chunk.js} (98%)
rename portal-ui/build/static/js/{2180.03cd0c4b.chunk.js.map => 2180.3032b83a.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2185.12707550.chunk.js => 2185.c6714d7f.chunk.js} (95%)
rename portal-ui/build/static/js/{2185.12707550.chunk.js.map => 2185.c6714d7f.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2338.56b092f8.chunk.js => 2338.4512b89d.chunk.js} (95%)
rename portal-ui/build/static/js/{2338.56b092f8.chunk.js.map => 2338.4512b89d.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2763.ec4b0ce6.chunk.js => 2408.a316c373.chunk.js} (83%)
rename portal-ui/build/static/js/{2763.ec4b0ce6.chunk.js.map => 2408.a316c373.chunk.js.map} (98%)
rename portal-ui/build/static/js/{247.9ce190b5.chunk.js => 247.6b8f3ceb.chunk.js} (93%)
rename portal-ui/build/static/js/{247.9ce190b5.chunk.js.map => 247.6b8f3ceb.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/2527.65ee9c60.chunk.js
create mode 100644 portal-ui/build/static/js/2527.65ee9c60.chunk.js.map
rename portal-ui/build/static/js/{2555.247780d4.chunk.js => 2555.f6831ab1.chunk.js} (97%)
rename portal-ui/build/static/js/{2555.247780d4.chunk.js.map => 2555.f6831ab1.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2637.97fe472e.chunk.js => 2637.583760ab.chunk.js} (99%)
rename portal-ui/build/static/js/{2637.97fe472e.chunk.js.map => 2637.583760ab.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2661.7fe77f72.chunk.js => 2661.59158a7f.chunk.js} (96%)
rename portal-ui/build/static/js/{2661.7fe77f72.chunk.js.map => 2661.59158a7f.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2684.52b792c0.chunk.js => 2684.3b290eb0.chunk.js} (98%)
rename portal-ui/build/static/js/{2684.52b792c0.chunk.js.map => 2684.3b290eb0.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/2763.eff3ace0.chunk.js
create mode 100644 portal-ui/build/static/js/2763.eff3ace0.chunk.js.map
rename portal-ui/build/static/js/{2850.92a58310.chunk.js => 2850.0df9a9cb.chunk.js} (96%)
rename portal-ui/build/static/js/{2850.92a58310.chunk.js.map => 2850.0df9a9cb.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2878.caa1771d.chunk.js => 2878.3aef87af.chunk.js} (98%)
rename portal-ui/build/static/js/{2878.caa1771d.chunk.js.map => 2878.3aef87af.chunk.js.map} (99%)
rename portal-ui/build/static/js/{2983.e938a4fe.chunk.js => 2983.365588dd.chunk.js} (99%)
rename portal-ui/build/static/js/{2983.e938a4fe.chunk.js.map => 2983.365588dd.chunk.js.map} (99%)
rename portal-ui/build/static/js/{3061.bb1cfd70.chunk.js => 3061.42c87510.chunk.js} (98%)
rename portal-ui/build/static/js/{3061.bb1cfd70.chunk.js.map => 3061.42c87510.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/3119.de98cea1.chunk.js
create mode 100644 portal-ui/build/static/js/3119.de98cea1.chunk.js.map
rename portal-ui/build/static/js/{312.cd77f5db.chunk.js => 312.9d2483e2.chunk.js} (79%)
rename portal-ui/build/static/js/{312.cd77f5db.chunk.js.map => 312.9d2483e2.chunk.js.map} (98%)
rename portal-ui/build/static/js/{3328.c7470c38.chunk.js => 3328.161f27a6.chunk.js} (98%)
rename portal-ui/build/static/js/{3328.c7470c38.chunk.js.map => 3328.161f27a6.chunk.js.map} (99%)
rename portal-ui/build/static/js/{343.ce17ca62.chunk.js => 343.b753d8a6.chunk.js} (97%)
rename portal-ui/build/static/js/{343.ce17ca62.chunk.js.map => 343.b753d8a6.chunk.js.map} (99%)
rename portal-ui/build/static/js/{3956.d3b4cd02.chunk.js => 3956.8ed30c16.chunk.js} (89%)
rename portal-ui/build/static/js/{3956.d3b4cd02.chunk.js.map => 3956.8ed30c16.chunk.js.map} (98%)
rename portal-ui/build/static/js/{402.5c660ae6.chunk.js => 402.56cf1d62.chunk.js} (85%)
rename portal-ui/build/static/js/{402.5c660ae6.chunk.js.map => 402.56cf1d62.chunk.js.map} (98%)
rename portal-ui/build/static/js/{4061.1e4b2694.chunk.js => 4061.c293b7bd.chunk.js} (97%)
rename portal-ui/build/static/js/{4061.1e4b2694.chunk.js.map => 4061.c293b7bd.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4133.45077897.chunk.js => 4133.21aad0d8.chunk.js} (97%)
rename portal-ui/build/static/js/{4133.45077897.chunk.js.map => 4133.21aad0d8.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4209.05b25520.chunk.js => 4209.2f923e7c.chunk.js} (98%)
rename portal-ui/build/static/js/{4209.05b25520.chunk.js.map => 4209.2f923e7c.chunk.js.map} (99%)
rename portal-ui/build/static/js/{426.9fd80f88.chunk.js => 426.8a124aa3.chunk.js} (97%)
rename portal-ui/build/static/js/{426.9fd80f88.chunk.js.map => 426.8a124aa3.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4298.e8216a7e.chunk.js => 4298.39009639.chunk.js} (96%)
rename portal-ui/build/static/js/{4298.e8216a7e.chunk.js.map => 4298.39009639.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4335.7187f6a6.chunk.js => 4335.c9054391.chunk.js} (99%)
rename portal-ui/build/static/js/{4335.7187f6a6.chunk.js.map => 4335.c9054391.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4414.34edf059.chunk.js => 4414.428aea58.chunk.js} (97%)
rename portal-ui/build/static/js/{4414.34edf059.chunk.js.map => 4414.428aea58.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4455.596f5a0d.chunk.js => 4455.0e61928a.chunk.js} (98%)
rename portal-ui/build/static/js/{4455.596f5a0d.chunk.js.map => 4455.0e61928a.chunk.js.map} (99%)
rename portal-ui/build/static/js/{455.6aa5b756.chunk.js => 455.ae9e0193.chunk.js} (88%)
rename portal-ui/build/static/js/{455.6aa5b756.chunk.js.map => 455.ae9e0193.chunk.js.map} (98%)
rename portal-ui/build/static/js/{4575.5b10a969.chunk.js => 4575.fcb7724d.chunk.js} (98%)
rename portal-ui/build/static/js/{4575.5b10a969.chunk.js.map => 4575.fcb7724d.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4619.8d9ee17c.chunk.js => 4619.e0972aca.chunk.js} (93%)
rename portal-ui/build/static/js/{4619.8d9ee17c.chunk.js.map => 4619.e0972aca.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4653.0d13044c.chunk.js => 4653.512865cd.chunk.js} (99%)
rename portal-ui/build/static/js/{4653.0d13044c.chunk.js.map => 4653.512865cd.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4873.6fb2072e.chunk.js => 4873.b3b8ac8e.chunk.js} (99%)
rename portal-ui/build/static/js/{4873.6fb2072e.chunk.js.map => 4873.b3b8ac8e.chunk.js.map} (99%)
rename portal-ui/build/static/js/{4902.8927358d.chunk.js => 4902.09995c8f.chunk.js} (99%)
rename portal-ui/build/static/js/{4902.8927358d.chunk.js.map => 4902.09995c8f.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/4932.09da6134.chunk.js
create mode 100644 portal-ui/build/static/js/4932.09da6134.chunk.js.map
rename portal-ui/build/static/js/{5088.7692271b.chunk.js => 5088.37366b7d.chunk.js} (97%)
rename portal-ui/build/static/js/{5088.7692271b.chunk.js.map => 5088.37366b7d.chunk.js.map} (99%)
rename portal-ui/build/static/js/{51.f85def1c.chunk.js => 51.6f729db1.chunk.js} (99%)
rename portal-ui/build/static/js/{51.f85def1c.chunk.js.map => 51.6f729db1.chunk.js.map} (99%)
delete mode 100644 portal-ui/build/static/js/5112.30236fa2.chunk.js
create mode 100644 portal-ui/build/static/js/5112.f134e323.chunk.js
rename portal-ui/build/static/js/{5112.30236fa2.chunk.js.map => 5112.f134e323.chunk.js.map} (99%)
rename portal-ui/build/static/js/{5223.750c796e.chunk.js => 5223.d2798e93.chunk.js} (94%)
rename portal-ui/build/static/js/{5223.750c796e.chunk.js.map => 5223.d2798e93.chunk.js.map} (99%)
rename portal-ui/build/static/js/{5289.39c9d169.chunk.js => 5289.289c4818.chunk.js} (97%)
rename portal-ui/build/static/js/{5289.39c9d169.chunk.js.map => 5289.289c4818.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/5367.4ee5c384.chunk.js
create mode 100644 portal-ui/build/static/js/5367.4ee5c384.chunk.js.map
delete mode 100644 portal-ui/build/static/js/5367.991f75c4.chunk.js
delete mode 100644 portal-ui/build/static/js/5367.991f75c4.chunk.js.map
rename portal-ui/build/static/js/{5503.79a2f464.chunk.js => 5503.46dc465e.chunk.js} (99%)
rename portal-ui/build/static/js/{5503.79a2f464.chunk.js.map => 5503.46dc465e.chunk.js.map} (99%)
rename portal-ui/build/static/js/{5517.84805a10.chunk.js => 5517.5881c974.chunk.js} (78%)
rename portal-ui/build/static/js/{5517.84805a10.chunk.js.map => 5517.5881c974.chunk.js.map} (99%)
rename portal-ui/build/static/js/{5926.c0387455.chunk.js => 5926.67e41b5c.chunk.js} (98%)
rename portal-ui/build/static/js/{5926.c0387455.chunk.js.map => 5926.67e41b5c.chunk.js.map} (99%)
rename portal-ui/build/static/js/{6137.2c486126.chunk.js => 6137.ebbd233b.chunk.js} (98%)
rename portal-ui/build/static/js/{6137.2c486126.chunk.js.map => 6137.ebbd233b.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/6331.83e8107a.chunk.js
create mode 100644 portal-ui/build/static/js/6331.83e8107a.chunk.js.map
delete mode 100644 portal-ui/build/static/js/6331.9d5ff423.chunk.js
delete mode 100644 portal-ui/build/static/js/6331.9d5ff423.chunk.js.map
create mode 100644 portal-ui/build/static/js/6401.546f3ad0.chunk.js
create mode 100644 portal-ui/build/static/js/6401.546f3ad0.chunk.js.map
create mode 100644 portal-ui/build/static/js/6526.3ea27eec.chunk.js
create mode 100644 portal-ui/build/static/js/6526.3ea27eec.chunk.js.map
rename portal-ui/build/static/js/{6577.06d06144.chunk.js => 6577.c372268c.chunk.js} (98%)
rename portal-ui/build/static/js/{6577.06d06144.chunk.js.map => 6577.c372268c.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/6683.31f7943c.chunk.js
create mode 100644 portal-ui/build/static/js/6683.31f7943c.chunk.js.map
delete mode 100644 portal-ui/build/static/js/6683.993a0cfc.chunk.js
delete mode 100644 portal-ui/build/static/js/6683.993a0cfc.chunk.js.map
rename portal-ui/build/static/js/{6763.16fe0032.chunk.js => 6763.ce363ce0.chunk.js} (99%)
rename portal-ui/build/static/js/{6763.16fe0032.chunk.js.map => 6763.ce363ce0.chunk.js.map} (99%)
rename portal-ui/build/static/js/{6860.f8ff9efd.chunk.js => 6860.2c2b34f2.chunk.js} (99%)
rename portal-ui/build/static/js/{6860.f8ff9efd.chunk.js.map => 6860.2c2b34f2.chunk.js.map} (99%)
rename portal-ui/build/static/js/{6895.5d78f23b.chunk.js => 6895.913992ec.chunk.js} (99%)
rename portal-ui/build/static/js/{6895.5d78f23b.chunk.js.map => 6895.913992ec.chunk.js.map} (99%)
rename portal-ui/build/static/js/{6901.5afa1e6f.chunk.js => 6901.0b8f3982.chunk.js} (98%)
rename portal-ui/build/static/js/{6901.5afa1e6f.chunk.js.map => 6901.0b8f3982.chunk.js.map} (99%)
delete mode 100644 portal-ui/build/static/js/692.c28b1b9b.chunk.js
create mode 100644 portal-ui/build/static/js/692.cb0079a0.chunk.js
rename portal-ui/build/static/js/{692.c28b1b9b.chunk.js.map => 692.cb0079a0.chunk.js.map} (99%)
delete mode 100644 portal-ui/build/static/js/701.05206868.chunk.js
delete mode 100644 portal-ui/build/static/js/701.05206868.chunk.js.map
create mode 100644 portal-ui/build/static/js/701.e64d92dd.chunk.js
create mode 100644 portal-ui/build/static/js/701.e64d92dd.chunk.js.map
create mode 100644 portal-ui/build/static/js/7021.0cd1393a.chunk.js
create mode 100644 portal-ui/build/static/js/7021.0cd1393a.chunk.js.map
delete mode 100644 portal-ui/build/static/js/7021.2df7e2e0.chunk.js
delete mode 100644 portal-ui/build/static/js/7021.2df7e2e0.chunk.js.map
rename portal-ui/build/static/js/{711.be9f8284.chunk.js => 711.f849ab21.chunk.js} (86%)
rename portal-ui/build/static/js/{711.be9f8284.chunk.js.map => 711.f849ab21.chunk.js.map} (98%)
rename portal-ui/build/static/js/{736.66a05831.chunk.js => 736.09b2feed.chunk.js} (98%)
rename portal-ui/build/static/js/{736.66a05831.chunk.js.map => 736.09b2feed.chunk.js.map} (99%)
rename portal-ui/build/static/js/{7585.90e7c2ed.chunk.js => 7585.c6b3f151.chunk.js} (98%)
rename portal-ui/build/static/js/{7585.90e7c2ed.chunk.js.map => 7585.c6b3f151.chunk.js.map} (99%)
rename portal-ui/build/static/js/{7659.8b358177.chunk.js => 7659.a9f31d32.chunk.js} (98%)
rename portal-ui/build/static/js/{7659.8b358177.chunk.js.map => 7659.a9f31d32.chunk.js.map} (99%)
delete mode 100644 portal-ui/build/static/js/7770.5dad74f3.chunk.js
delete mode 100644 portal-ui/build/static/js/7770.5dad74f3.chunk.js.map
create mode 100644 portal-ui/build/static/js/7770.ab89838c.chunk.js
create mode 100644 portal-ui/build/static/js/7770.ab89838c.chunk.js.map
rename portal-ui/build/static/js/{7798.b974925d.chunk.js => 7798.3457153d.chunk.js} (98%)
rename portal-ui/build/static/js/{7798.b974925d.chunk.js.map => 7798.3457153d.chunk.js.map} (99%)
rename portal-ui/build/static/js/{7847.6c81d37f.chunk.js => 7847.04dba10f.chunk.js} (97%)
rename portal-ui/build/static/js/{7847.6c81d37f.chunk.js.map => 7847.04dba10f.chunk.js.map} (99%)
rename portal-ui/build/static/js/{8253.ec0f3d9f.chunk.js => 8253.112a3c07.chunk.js} (98%)
rename portal-ui/build/static/js/{8253.ec0f3d9f.chunk.js.map => 8253.112a3c07.chunk.js.map} (99%)
rename portal-ui/build/static/js/{8350.ee721e94.chunk.js => 8350.927cb0f2.chunk.js} (91%)
rename portal-ui/build/static/js/{8350.ee721e94.chunk.js.map => 8350.927cb0f2.chunk.js.map} (99%)
rename portal-ui/build/static/js/{8391.968204ad.chunk.js => 8391.824bba1f.chunk.js} (95%)
rename portal-ui/build/static/js/{8391.968204ad.chunk.js.map => 8391.824bba1f.chunk.js.map} (99%)
rename portal-ui/build/static/js/{8455.6f71a45b.chunk.js => 8455.01f5b771.chunk.js} (92%)
rename portal-ui/build/static/js/{8455.6f71a45b.chunk.js.map => 8455.01f5b771.chunk.js.map} (99%)
rename portal-ui/build/static/js/{8626.58e34c6f.chunk.js => 8626.8bb53c19.chunk.js} (97%)
rename portal-ui/build/static/js/{8626.58e34c6f.chunk.js.map => 8626.8bb53c19.chunk.js.map} (99%)
rename portal-ui/build/static/js/{8833.8e4bf585.chunk.js => 8833.ff06f54a.chunk.js} (96%)
rename portal-ui/build/static/js/{8833.8e4bf585.chunk.js.map => 8833.ff06f54a.chunk.js.map} (99%)
rename portal-ui/build/static/js/{889.43037296.chunk.js => 889.22fc77b5.chunk.js} (97%)
rename portal-ui/build/static/js/{889.43037296.chunk.js.map => 889.22fc77b5.chunk.js.map} (99%)
rename portal-ui/build/static/js/{8896.86116952.chunk.js => 8896.af72e26d.chunk.js} (83%)
rename portal-ui/build/static/js/{8896.86116952.chunk.js.map => 8896.af72e26d.chunk.js.map} (98%)
rename portal-ui/build/static/js/{8990.194642a8.chunk.js => 8990.943dbbfb.chunk.js} (87%)
rename portal-ui/build/static/js/{8990.194642a8.chunk.js.map => 8990.943dbbfb.chunk.js.map} (98%)
rename portal-ui/build/static/js/{8998.9a18741c.chunk.js => 8998.952b511e.chunk.js} (98%)
rename portal-ui/build/static/js/{8998.9a18741c.chunk.js.map => 8998.952b511e.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9088.1edd5d6a.chunk.js => 9088.0e6ebda2.chunk.js} (93%)
rename portal-ui/build/static/js/{9088.1edd5d6a.chunk.js.map => 9088.0e6ebda2.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9134.3cd624c6.chunk.js => 9134.02674829.chunk.js} (96%)
rename portal-ui/build/static/js/{9134.3cd624c6.chunk.js.map => 9134.02674829.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9145.82dff7c3.chunk.js => 9145.2e7a2761.chunk.js} (97%)
rename portal-ui/build/static/js/{9145.82dff7c3.chunk.js.map => 9145.2e7a2761.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9179.3874e070.chunk.js => 9179.c920b1c6.chunk.js} (98%)
rename portal-ui/build/static/js/{9179.3874e070.chunk.js.map => 9179.c920b1c6.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9221.14d6096a.chunk.js => 9221.696bb93f.chunk.js} (94%)
rename portal-ui/build/static/js/{9221.14d6096a.chunk.js.map => 9221.696bb93f.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9251.4a7c5817.chunk.js => 9251.5be021a3.chunk.js} (97%)
rename portal-ui/build/static/js/{9251.4a7c5817.chunk.js.map => 9251.5be021a3.chunk.js.map} (99%)
create mode 100644 portal-ui/build/static/js/9297.8a17bfe7.chunk.js
create mode 100644 portal-ui/build/static/js/9297.8a17bfe7.chunk.js.map
delete mode 100644 portal-ui/build/static/js/9388.20842728.chunk.js
delete mode 100644 portal-ui/build/static/js/9388.20842728.chunk.js.map
create mode 100644 portal-ui/build/static/js/9467.2f82fcf5.chunk.js
create mode 100644 portal-ui/build/static/js/9467.2f82fcf5.chunk.js.map
delete mode 100644 portal-ui/build/static/js/9467.e157f032.chunk.js
delete mode 100644 portal-ui/build/static/js/9467.e157f032.chunk.js.map
rename portal-ui/build/static/js/{9561.bf1e32db.chunk.js => 9561.ebe2bdbf.chunk.js} (98%)
rename portal-ui/build/static/js/{9561.bf1e32db.chunk.js.map => 9561.ebe2bdbf.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9942.406de82c.chunk.js => 9942.d86db577.chunk.js} (98%)
rename portal-ui/build/static/js/{9942.406de82c.chunk.js.map => 9942.d86db577.chunk.js.map} (99%)
rename portal-ui/build/static/js/{9968.14f204ee.chunk.js => 9968.42e61fd8.chunk.js} (80%)
rename portal-ui/build/static/js/{9968.14f204ee.chunk.js.map => 9968.42e61fd8.chunk.js.map} (98%)
create mode 100644 portal-ui/build/static/js/main.85f28419.js
rename portal-ui/build/static/js/{main.ccc73c66.js.LICENSE.txt => main.85f28419.js.LICENSE.txt} (100%)
rename portal-ui/build/static/js/{main.ccc73c66.js.map => main.85f28419.js.map} (63%)
delete mode 100644 portal-ui/build/static/js/main.ccc73c66.js
diff --git a/k8s/operator-console/base/console-deployment.yaml b/k8s/operator-console/base/console-deployment.yaml
index 0ace738a8..ba2a4fd8b 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.4'
+ image: 'minio/console:v0.19.5'
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 41939f0ac..87f43e559 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.4'
+ image: 'minio/console:v0.19.5'
imagePullPolicy: "IfNotPresent"
env:
- name: CONSOLE_MINIO_SERVER
diff --git a/portal-ui/build/asset-manifest.json b/portal-ui/build/asset-manifest.json
index 9c1b43a51..8ed3cc116 100644
--- a/portal-ui/build/asset-manifest.json
+++ b/portal-ui/build/asset-manifest.json
@@ -1,123 +1,129 @@
{
"files": {
"main.css": "./static/css/main.90d417ae.css",
- "main.js": "./static/js/main.ccc73c66.js",
+ "main.js": "./static/js/main.85f28419.js",
"static/js/6914.ed2f1662.chunk.js": "./static/js/6914.ed2f1662.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.7692271b.chunk.js": "./static/js/5088.7692271b.chunk.js",
+ "static/js/4209.2f923e7c.chunk.js": "./static/js/4209.2f923e7c.chunk.js",
+ "static/js/1829.51f89ce7.chunk.js": "./static/js/1829.51f89ce7.chunk.js",
+ "static/js/4455.0e61928a.chunk.js": "./static/js/4455.0e61928a.chunk.js",
+ "static/js/5088.37366b7d.chunk.js": "./static/js/5088.37366b7d.chunk.js",
"static/js/5140.b1dd0e23.chunk.js": "./static/js/5140.b1dd0e23.chunk.js",
- "static/js/1260.5eb8500b.chunk.js": "./static/js/1260.5eb8500b.chunk.js",
+ "static/js/2527.65ee9c60.chunk.js": "./static/js/2527.65ee9c60.chunk.js",
+ "static/js/1260.add10538.chunk.js": "./static/js/1260.add10538.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/6137.ebbd233b.chunk.js": "./static/js/6137.ebbd233b.chunk.js",
"static/js/7045.bc049940.chunk.js": "./static/js/7045.bc049940.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.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/9251.5be021a3.chunk.js": "./static/js/9251.5be021a3.chunk.js",
+ "static/js/2338.4512b89d.chunk.js": "./static/js/2338.4512b89d.chunk.js",
+ "static/js/4335.c9054391.chunk.js": "./static/js/4335.c9054391.chunk.js",
+ "static/js/3061.42c87510.chunk.js": "./static/js/3061.42c87510.chunk.js",
+ "static/js/6763.ce363ce0.chunk.js": "./static/js/6763.ce363ce0.chunk.js",
+ "static/js/4575.fcb7724d.chunk.js": "./static/js/4575.fcb7724d.chunk.js",
+ "static/js/4061.c293b7bd.chunk.js": "./static/js/4061.c293b7bd.chunk.js",
+ "static/js/5112.f134e323.chunk.js": "./static/js/5112.f134e323.chunk.js",
"static/js/9611.c217768e.chunk.js": "./static/js/9611.c217768e.chunk.js",
- "static/js/2637.97fe472e.chunk.js": "./static/js/2637.97fe472e.chunk.js",
+ "static/js/2637.583760ab.chunk.js": "./static/js/2637.583760ab.chunk.js",
"static/css/5503.90c9cdc7.chunk.css": "./static/css/5503.90c9cdc7.chunk.css",
- "static/js/5503.79a2f464.chunk.js": "./static/js/5503.79a2f464.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/5503.46dc465e.chunk.js": "./static/js/5503.46dc465e.chunk.js",
+ "static/js/5926.67e41b5c.chunk.js": "./static/js/5926.67e41b5c.chunk.js",
+ "static/js/701.e64d92dd.chunk.js": "./static/js/701.e64d92dd.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.92a58310.chunk.js": "./static/js/2850.92a58310.chunk.js",
- "static/js/1182.264ec55e.chunk.js": "./static/js/1182.264ec55e.chunk.js",
+ "static/js/2850.0df9a9cb.chunk.js": "./static/js/2850.0df9a9cb.chunk.js",
+ "static/js/1182.0b468b7f.chunk.js": "./static/js/1182.0b468b7f.chunk.js",
"static/css/343.90c9cdc7.chunk.css": "./static/css/343.90c9cdc7.chunk.css",
- "static/js/343.ce17ca62.chunk.js": "./static/js/343.ce17ca62.chunk.js",
+ "static/js/343.b753d8a6.chunk.js": "./static/js/343.b753d8a6.chunk.js",
"static/css/1199.90c9cdc7.chunk.css": "./static/css/1199.90c9cdc7.chunk.css",
- "static/js/1199.ae4c29a1.chunk.js": "./static/js/1199.ae4c29a1.chunk.js",
+ "static/js/1199.acc7a3c5.chunk.js": "./static/js/1199.acc7a3c5.chunk.js",
"static/css/5517.90c9cdc7.chunk.css": "./static/css/5517.90c9cdc7.chunk.css",
- "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/5517.5881c974.chunk.js": "./static/js/5517.5881c974.chunk.js",
+ "static/js/2555.f6831ab1.chunk.js": "./static/js/2555.f6831ab1.chunk.js",
+ "static/js/7585.c6b3f151.chunk.js": "./static/js/7585.c6b3f151.chunk.js",
+ "static/js/4902.09995c8f.chunk.js": "./static/js/4902.09995c8f.chunk.js",
+ "static/js/7847.04dba10f.chunk.js": "./static/js/7847.04dba10f.chunk.js",
+ "static/js/4653.512865cd.chunk.js": "./static/js/4653.512865cd.chunk.js",
+ "static/js/692.cb0079a0.chunk.js": "./static/js/692.cb0079a0.chunk.js",
+ "static/js/8626.8bb53c19.chunk.js": "./static/js/8626.8bb53c19.chunk.js",
+ "static/js/736.09b2feed.chunk.js": "./static/js/736.09b2feed.chunk.js",
+ "static/js/6577.c372268c.chunk.js": "./static/js/6577.c372268c.chunk.js",
+ "static/js/9561.ebe2bdbf.chunk.js": "./static/js/9561.ebe2bdbf.chunk.js",
+ "static/js/6401.546f3ad0.chunk.js": "./static/js/6401.546f3ad0.chunk.js",
+ "static/js/4932.09da6134.chunk.js": "./static/js/4932.09da6134.chunk.js",
+ "static/js/3119.de98cea1.chunk.js": "./static/js/3119.de98cea1.chunk.js",
+ "static/js/6860.2c2b34f2.chunk.js": "./static/js/6860.2c2b34f2.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.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/4414.428aea58.chunk.js": "./static/js/4414.428aea58.chunk.js",
+ "static/js/7798.3457153d.chunk.js": "./static/js/7798.3457153d.chunk.js",
+ "static/js/8833.ff06f54a.chunk.js": "./static/js/8833.ff06f54a.chunk.js",
+ "static/js/6526.3ea27eec.chunk.js": "./static/js/6526.3ea27eec.chunk.js",
"static/js/483.ef8155e7.chunk.js": "./static/js/483.ef8155e7.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/js/9467.2f82fcf5.chunk.js": "./static/js/9467.2f82fcf5.chunk.js",
+ "static/js/6895.913992ec.chunk.js": "./static/js/6895.913992ec.chunk.js",
+ "static/js/1379.9ed2e025.chunk.js": "./static/js/1379.9ed2e025.chunk.js",
+ "static/js/6331.83e8107a.chunk.js": "./static/js/6331.83e8107a.chunk.js",
+ "static/js/4133.21aad0d8.chunk.js": "./static/js/4133.21aad0d8.chunk.js",
"static/css/1367.90c9cdc7.chunk.css": "./static/css/1367.90c9cdc7.chunk.css",
- "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/js/1367.a94951c1.chunk.js": "./static/js/1367.a94951c1.chunk.js",
+ "static/js/3956.8ed30c16.chunk.js": "./static/js/3956.8ed30c16.chunk.js",
+ "static/js/9221.696bb93f.chunk.js": "./static/js/9221.696bb93f.chunk.js",
+ "static/js/8896.af72e26d.chunk.js": "./static/js/8896.af72e26d.chunk.js",
+ "static/js/9134.02674829.chunk.js": "./static/js/9134.02674829.chunk.js",
"static/css/1268.90c9cdc7.chunk.css": "./static/css/1268.90c9cdc7.chunk.css",
- "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.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/1268.6b4f91d2.chunk.js": "./static/js/1268.6b4f91d2.chunk.js",
+ "static/js/1030.a80a23bf.chunk.js": "./static/js/1030.a80a23bf.chunk.js",
+ "static/js/9145.2e7a2761.chunk.js": "./static/js/9145.2e7a2761.chunk.js",
+ "static/js/8998.952b511e.chunk.js": "./static/js/8998.952b511e.chunk.js",
+ "static/js/1501.64c3165f.chunk.js": "./static/js/1501.64c3165f.chunk.js",
+ "static/js/7770.ab89838c.chunk.js": "./static/js/7770.ab89838c.chunk.js",
+ "static/js/426.8a124aa3.chunk.js": "./static/js/426.8a124aa3.chunk.js",
+ "static/js/4298.39009639.chunk.js": "./static/js/4298.39009639.chunk.js",
+ "static/js/2878.3aef87af.chunk.js": "./static/js/2878.3aef87af.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.2df7e2e0.chunk.js": "./static/js/7021.2df7e2e0.chunk.js",
- "static/js/2684.52b792c0.chunk.js": "./static/js/2684.52b792c0.chunk.js",
- "static/js/6683.993a0cfc.chunk.js": "./static/js/6683.993a0cfc.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.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.c7470c38.chunk.js": "./static/js/3328.c7470c38.chunk.js",
- "static/js/1440.b9a2f19f.chunk.js": "./static/js/1440.b9a2f19f.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/js/9942.d86db577.chunk.js": "./static/js/9942.d86db577.chunk.js",
+ "static/js/7021.0cd1393a.chunk.js": "./static/js/7021.0cd1393a.chunk.js",
+ "static/js/2684.3b290eb0.chunk.js": "./static/js/2684.3b290eb0.chunk.js",
+ "static/js/6683.31f7943c.chunk.js": "./static/js/6683.31f7943c.chunk.js",
+ "static/js/8350.927cb0f2.chunk.js": "./static/js/8350.927cb0f2.chunk.js",
+ "static/js/4873.b3b8ac8e.chunk.js": "./static/js/4873.b3b8ac8e.chunk.js",
+ "static/js/5367.4ee5c384.chunk.js": "./static/js/5367.4ee5c384.chunk.js",
+ "static/js/5223.d2798e93.chunk.js": "./static/js/5223.d2798e93.chunk.js",
+ "static/js/7659.a9f31d32.chunk.js": "./static/js/7659.a9f31d32.chunk.js",
+ "static/js/1799.dceada24.chunk.js": "./static/js/1799.dceada24.chunk.js",
+ "static/js/9297.8a17bfe7.chunk.js": "./static/js/9297.8a17bfe7.chunk.js",
+ "static/js/9968.42e61fd8.chunk.js": "./static/js/9968.42e61fd8.chunk.js",
+ "static/js/2180.3032b83a.chunk.js": "./static/js/2180.3032b83a.chunk.js",
+ "static/js/8253.112a3c07.chunk.js": "./static/js/8253.112a3c07.chunk.js",
+ "static/js/3328.161f27a6.chunk.js": "./static/js/3328.161f27a6.chunk.js",
+ "static/js/1440.0a79a7c6.chunk.js": "./static/js/1440.0a79a7c6.chunk.js",
+ "static/js/9179.c920b1c6.chunk.js": "./static/js/9179.c920b1c6.chunk.js",
+ "static/js/51.6f729db1.chunk.js": "./static/js/51.6f729db1.chunk.js",
+ "static/js/711.f849ab21.chunk.js": "./static/js/711.f849ab21.chunk.js",
+ "static/js/6901.0b8f3982.chunk.js": "./static/js/6901.0b8f3982.chunk.js",
+ "static/js/2185.c6714d7f.chunk.js": "./static/js/2185.c6714d7f.chunk.js",
+ "static/js/312.9d2483e2.chunk.js": "./static/js/312.9d2483e2.chunk.js",
+ "static/js/2112.218ae789.chunk.js": "./static/js/2112.218ae789.chunk.js",
+ "static/js/4619.e0972aca.chunk.js": "./static/js/4619.e0972aca.chunk.js",
+ "static/js/8990.943dbbfb.chunk.js": "./static/js/8990.943dbbfb.chunk.js",
+ "static/js/8455.01f5b771.chunk.js": "./static/js/8455.01f5b771.chunk.js",
"static/css/1913.90c9cdc7.chunk.css": "./static/css/1913.90c9cdc7.chunk.css",
- "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.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.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/1913.aef0d716.chunk.js": "./static/js/1913.aef0d716.chunk.js",
+ "static/js/1604.54fe3660.chunk.js": "./static/js/1604.54fe3660.chunk.js",
+ "static/js/8391.824bba1f.chunk.js": "./static/js/8391.824bba1f.chunk.js",
+ "static/js/402.56cf1d62.chunk.js": "./static/js/402.56cf1d62.chunk.js",
+ "static/js/1705.0a3da076.chunk.js": "./static/js/1705.0a3da076.chunk.js",
+ "static/js/1581.b372ec91.chunk.js": "./static/js/1581.b372ec91.chunk.js",
+ "static/js/455.ae9e0193.chunk.js": "./static/js/455.ae9e0193.chunk.js",
+ "static/js/2661.59158a7f.chunk.js": "./static/js/2661.59158a7f.chunk.js",
+ "static/js/889.22fc77b5.chunk.js": "./static/js/889.22fc77b5.chunk.js",
+ "static/js/9088.0e6ebda2.chunk.js": "./static/js/9088.0e6ebda2.chunk.js",
+ "static/js/247.6b8f3ceb.chunk.js": "./static/js/247.6b8f3ceb.chunk.js",
+ "static/js/2408.a316c373.chunk.js": "./static/js/2408.a316c373.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/3691.ef93d563.chunk.js": "./static/js/3691.ef93d563.chunk.js",
+ "static/js/2426.ab27f6f9.chunk.js": "./static/js/2426.ab27f6f9.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",
@@ -137,127 +143,134 @@
"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.e938a4fe.chunk.js": "./static/js/2983.e938a4fe.chunk.js",
- "static/js/5289.39c9d169.chunk.js": "./static/js/5289.39c9d169.chunk.js",
+ "static/js/2983.365588dd.chunk.js": "./static/js/2983.365588dd.chunk.js",
+ "static/js/5289.289c4818.chunk.js": "./static/js/5289.289c4818.chunk.js",
+ "static/js/2763.eff3ace0.chunk.js": "./static/js/2763.eff3ace0.chunk.js",
"index.html": "./index.html",
"main.90d417ae.css.map": "./static/css/main.90d417ae.css.map",
- "main.ccc73c66.js.map": "./static/js/main.ccc73c66.js.map",
+ "main.85f28419.js.map": "./static/js/main.85f28419.js.map",
"6914.ed2f1662.chunk.js.map": "./static/js/6914.ed2f1662.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.7692271b.chunk.js.map": "./static/js/5088.7692271b.chunk.js.map",
+ "4209.2f923e7c.chunk.js.map": "./static/js/4209.2f923e7c.chunk.js.map",
+ "1829.51f89ce7.chunk.js.map": "./static/js/1829.51f89ce7.chunk.js.map",
+ "4455.0e61928a.chunk.js.map": "./static/js/4455.0e61928a.chunk.js.map",
+ "5088.37366b7d.chunk.js.map": "./static/js/5088.37366b7d.chunk.js.map",
"5140.b1dd0e23.chunk.js.map": "./static/js/5140.b1dd0e23.chunk.js.map",
- "1260.5eb8500b.chunk.js.map": "./static/js/1260.5eb8500b.chunk.js.map",
+ "2527.65ee9c60.chunk.js.map": "./static/js/2527.65ee9c60.chunk.js.map",
+ "1260.add10538.chunk.js.map": "./static/js/1260.add10538.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",
+ "6137.ebbd233b.chunk.js.map": "./static/js/6137.ebbd233b.chunk.js.map",
"7045.bc049940.chunk.js.map": "./static/js/7045.bc049940.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.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",
+ "9251.5be021a3.chunk.js.map": "./static/js/9251.5be021a3.chunk.js.map",
+ "2338.4512b89d.chunk.js.map": "./static/js/2338.4512b89d.chunk.js.map",
+ "4335.c9054391.chunk.js.map": "./static/js/4335.c9054391.chunk.js.map",
+ "3061.42c87510.chunk.js.map": "./static/js/3061.42c87510.chunk.js.map",
+ "6763.ce363ce0.chunk.js.map": "./static/js/6763.ce363ce0.chunk.js.map",
+ "4575.fcb7724d.chunk.js.map": "./static/js/4575.fcb7724d.chunk.js.map",
+ "4061.c293b7bd.chunk.js.map": "./static/js/4061.c293b7bd.chunk.js.map",
+ "5112.f134e323.chunk.js.map": "./static/js/5112.f134e323.chunk.js.map",
"9611.c217768e.chunk.js.map": "./static/js/9611.c217768e.chunk.js.map",
- "2637.97fe472e.chunk.js.map": "./static/js/2637.97fe472e.chunk.js.map",
+ "2637.583760ab.chunk.js.map": "./static/js/2637.583760ab.chunk.js.map",
"5503.90c9cdc7.chunk.css.map": "./static/css/5503.90c9cdc7.chunk.css.map",
- "5503.79a2f464.chunk.js.map": "./static/js/5503.79a2f464.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",
+ "5503.46dc465e.chunk.js.map": "./static/js/5503.46dc465e.chunk.js.map",
+ "5926.67e41b5c.chunk.js.map": "./static/js/5926.67e41b5c.chunk.js.map",
+ "701.e64d92dd.chunk.js.map": "./static/js/701.e64d92dd.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.92a58310.chunk.js.map": "./static/js/2850.92a58310.chunk.js.map",
- "1182.264ec55e.chunk.js.map": "./static/js/1182.264ec55e.chunk.js.map",
+ "2850.0df9a9cb.chunk.js.map": "./static/js/2850.0df9a9cb.chunk.js.map",
+ "1182.0b468b7f.chunk.js.map": "./static/js/1182.0b468b7f.chunk.js.map",
"343.90c9cdc7.chunk.css.map": "./static/css/343.90c9cdc7.chunk.css.map",
- "343.ce17ca62.chunk.js.map": "./static/js/343.ce17ca62.chunk.js.map",
+ "343.b753d8a6.chunk.js.map": "./static/js/343.b753d8a6.chunk.js.map",
"1199.90c9cdc7.chunk.css.map": "./static/css/1199.90c9cdc7.chunk.css.map",
- "1199.ae4c29a1.chunk.js.map": "./static/js/1199.ae4c29a1.chunk.js.map",
+ "1199.acc7a3c5.chunk.js.map": "./static/js/1199.acc7a3c5.chunk.js.map",
"5517.90c9cdc7.chunk.css.map": "./static/css/5517.90c9cdc7.chunk.css.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",
+ "5517.5881c974.chunk.js.map": "./static/js/5517.5881c974.chunk.js.map",
+ "2555.f6831ab1.chunk.js.map": "./static/js/2555.f6831ab1.chunk.js.map",
+ "7585.c6b3f151.chunk.js.map": "./static/js/7585.c6b3f151.chunk.js.map",
+ "4902.09995c8f.chunk.js.map": "./static/js/4902.09995c8f.chunk.js.map",
+ "7847.04dba10f.chunk.js.map": "./static/js/7847.04dba10f.chunk.js.map",
+ "4653.512865cd.chunk.js.map": "./static/js/4653.512865cd.chunk.js.map",
+ "692.cb0079a0.chunk.js.map": "./static/js/692.cb0079a0.chunk.js.map",
+ "8626.8bb53c19.chunk.js.map": "./static/js/8626.8bb53c19.chunk.js.map",
+ "736.09b2feed.chunk.js.map": "./static/js/736.09b2feed.chunk.js.map",
+ "6577.c372268c.chunk.js.map": "./static/js/6577.c372268c.chunk.js.map",
+ "9561.ebe2bdbf.chunk.js.map": "./static/js/9561.ebe2bdbf.chunk.js.map",
+ "6401.546f3ad0.chunk.js.map": "./static/js/6401.546f3ad0.chunk.js.map",
+ "4932.09da6134.chunk.js.map": "./static/js/4932.09da6134.chunk.js.map",
+ "3119.de98cea1.chunk.js.map": "./static/js/3119.de98cea1.chunk.js.map",
+ "6860.2c2b34f2.chunk.js.map": "./static/js/6860.2c2b34f2.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.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",
+ "4414.428aea58.chunk.js.map": "./static/js/4414.428aea58.chunk.js.map",
+ "7798.3457153d.chunk.js.map": "./static/js/7798.3457153d.chunk.js.map",
+ "8833.ff06f54a.chunk.js.map": "./static/js/8833.ff06f54a.chunk.js.map",
+ "6526.3ea27eec.chunk.js.map": "./static/js/6526.3ea27eec.chunk.js.map",
"483.ef8155e7.chunk.js.map": "./static/js/483.ef8155e7.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",
+ "9467.2f82fcf5.chunk.js.map": "./static/js/9467.2f82fcf5.chunk.js.map",
+ "6895.913992ec.chunk.js.map": "./static/js/6895.913992ec.chunk.js.map",
+ "1379.9ed2e025.chunk.js.map": "./static/js/1379.9ed2e025.chunk.js.map",
+ "6331.83e8107a.chunk.js.map": "./static/js/6331.83e8107a.chunk.js.map",
+ "4133.21aad0d8.chunk.js.map": "./static/js/4133.21aad0d8.chunk.js.map",
"1367.90c9cdc7.chunk.css.map": "./static/css/1367.90c9cdc7.chunk.css.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",
+ "1367.a94951c1.chunk.js.map": "./static/js/1367.a94951c1.chunk.js.map",
+ "3956.8ed30c16.chunk.js.map": "./static/js/3956.8ed30c16.chunk.js.map",
+ "9221.696bb93f.chunk.js.map": "./static/js/9221.696bb93f.chunk.js.map",
+ "8896.af72e26d.chunk.js.map": "./static/js/8896.af72e26d.chunk.js.map",
+ "9134.02674829.chunk.js.map": "./static/js/9134.02674829.chunk.js.map",
"1268.90c9cdc7.chunk.css.map": "./static/css/1268.90c9cdc7.chunk.css.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.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",
+ "1268.6b4f91d2.chunk.js.map": "./static/js/1268.6b4f91d2.chunk.js.map",
+ "1030.a80a23bf.chunk.js.map": "./static/js/1030.a80a23bf.chunk.js.map",
+ "9145.2e7a2761.chunk.js.map": "./static/js/9145.2e7a2761.chunk.js.map",
+ "8998.952b511e.chunk.js.map": "./static/js/8998.952b511e.chunk.js.map",
+ "1501.64c3165f.chunk.js.map": "./static/js/1501.64c3165f.chunk.js.map",
+ "7770.ab89838c.chunk.js.map": "./static/js/7770.ab89838c.chunk.js.map",
+ "426.8a124aa3.chunk.js.map": "./static/js/426.8a124aa3.chunk.js.map",
+ "4298.39009639.chunk.js.map": "./static/js/4298.39009639.chunk.js.map",
+ "2878.3aef87af.chunk.js.map": "./static/js/2878.3aef87af.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.2df7e2e0.chunk.js.map": "./static/js/7021.2df7e2e0.chunk.js.map",
- "2684.52b792c0.chunk.js.map": "./static/js/2684.52b792c0.chunk.js.map",
- "6683.993a0cfc.chunk.js.map": "./static/js/6683.993a0cfc.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.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.c7470c38.chunk.js.map": "./static/js/3328.c7470c38.chunk.js.map",
- "1440.b9a2f19f.chunk.js.map": "./static/js/1440.b9a2f19f.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",
+ "9942.d86db577.chunk.js.map": "./static/js/9942.d86db577.chunk.js.map",
+ "7021.0cd1393a.chunk.js.map": "./static/js/7021.0cd1393a.chunk.js.map",
+ "2684.3b290eb0.chunk.js.map": "./static/js/2684.3b290eb0.chunk.js.map",
+ "6683.31f7943c.chunk.js.map": "./static/js/6683.31f7943c.chunk.js.map",
+ "8350.927cb0f2.chunk.js.map": "./static/js/8350.927cb0f2.chunk.js.map",
+ "4873.b3b8ac8e.chunk.js.map": "./static/js/4873.b3b8ac8e.chunk.js.map",
+ "5367.4ee5c384.chunk.js.map": "./static/js/5367.4ee5c384.chunk.js.map",
+ "5223.d2798e93.chunk.js.map": "./static/js/5223.d2798e93.chunk.js.map",
+ "7659.a9f31d32.chunk.js.map": "./static/js/7659.a9f31d32.chunk.js.map",
+ "1799.dceada24.chunk.js.map": "./static/js/1799.dceada24.chunk.js.map",
+ "9297.8a17bfe7.chunk.js.map": "./static/js/9297.8a17bfe7.chunk.js.map",
+ "9968.42e61fd8.chunk.js.map": "./static/js/9968.42e61fd8.chunk.js.map",
+ "2180.3032b83a.chunk.js.map": "./static/js/2180.3032b83a.chunk.js.map",
+ "8253.112a3c07.chunk.js.map": "./static/js/8253.112a3c07.chunk.js.map",
+ "3328.161f27a6.chunk.js.map": "./static/js/3328.161f27a6.chunk.js.map",
+ "1440.0a79a7c6.chunk.js.map": "./static/js/1440.0a79a7c6.chunk.js.map",
+ "9179.c920b1c6.chunk.js.map": "./static/js/9179.c920b1c6.chunk.js.map",
+ "51.6f729db1.chunk.js.map": "./static/js/51.6f729db1.chunk.js.map",
+ "711.f849ab21.chunk.js.map": "./static/js/711.f849ab21.chunk.js.map",
+ "6901.0b8f3982.chunk.js.map": "./static/js/6901.0b8f3982.chunk.js.map",
+ "2185.c6714d7f.chunk.js.map": "./static/js/2185.c6714d7f.chunk.js.map",
+ "312.9d2483e2.chunk.js.map": "./static/js/312.9d2483e2.chunk.js.map",
+ "2112.218ae789.chunk.js.map": "./static/js/2112.218ae789.chunk.js.map",
+ "4619.e0972aca.chunk.js.map": "./static/js/4619.e0972aca.chunk.js.map",
+ "8990.943dbbfb.chunk.js.map": "./static/js/8990.943dbbfb.chunk.js.map",
+ "8455.01f5b771.chunk.js.map": "./static/js/8455.01f5b771.chunk.js.map",
"1913.90c9cdc7.chunk.css.map": "./static/css/1913.90c9cdc7.chunk.css.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.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.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",
+ "1913.aef0d716.chunk.js.map": "./static/js/1913.aef0d716.chunk.js.map",
+ "1604.54fe3660.chunk.js.map": "./static/js/1604.54fe3660.chunk.js.map",
+ "8391.824bba1f.chunk.js.map": "./static/js/8391.824bba1f.chunk.js.map",
+ "402.56cf1d62.chunk.js.map": "./static/js/402.56cf1d62.chunk.js.map",
+ "1705.0a3da076.chunk.js.map": "./static/js/1705.0a3da076.chunk.js.map",
+ "1581.b372ec91.chunk.js.map": "./static/js/1581.b372ec91.chunk.js.map",
+ "455.ae9e0193.chunk.js.map": "./static/js/455.ae9e0193.chunk.js.map",
+ "2661.59158a7f.chunk.js.map": "./static/js/2661.59158a7f.chunk.js.map",
+ "889.22fc77b5.chunk.js.map": "./static/js/889.22fc77b5.chunk.js.map",
+ "9088.0e6ebda2.chunk.js.map": "./static/js/9088.0e6ebda2.chunk.js.map",
+ "247.6b8f3ceb.chunk.js.map": "./static/js/247.6b8f3ceb.chunk.js.map",
+ "2408.a316c373.chunk.js.map": "./static/js/2408.a316c373.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",
"3691.ef93d563.chunk.js.map": "./static/js/3691.ef93d563.chunk.js.map",
+ "2426.ab27f6f9.chunk.js.map": "./static/js/2426.ab27f6f9.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",
@@ -277,11 +290,12 @@
"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.e938a4fe.chunk.js.map": "./static/js/2983.e938a4fe.chunk.js.map",
- "5289.39c9d169.chunk.js.map": "./static/js/5289.39c9d169.chunk.js.map"
+ "2983.365588dd.chunk.js.map": "./static/js/2983.365588dd.chunk.js.map",
+ "5289.289c4818.chunk.js.map": "./static/js/5289.289c4818.chunk.js.map",
+ "2763.eff3ace0.chunk.js.map": "./static/js/2763.eff3ace0.chunk.js.map"
},
"entrypoints": [
"static/css/main.90d417ae.css",
- "static/js/main.ccc73c66.js"
+ "static/js/main.85f28419.js"
]
}
\ No newline at end of file
diff --git a/portal-ui/build/index.html b/portal-ui/build/index.html
index b87b39e57..003ec938b 100644
--- a/portal-ui/build/index.html
+++ b/portal-ui/build/index.html
@@ -1 +1 @@
-
MinIO Console You need to enable JavaScript to run this app.
\ No newline at end of file
+MinIO Console You need to enable JavaScript to run this app.
\ 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.a80a23bf.chunk.js
similarity index 98%
rename from portal-ui/build/static/js/1030.e86b3822.chunk.js
rename to portal-ui/build/static/js/1030.a80a23bf.chunk.js
index 01881cf79..63a646eec 100644
--- a/portal-ui/build/static/js/1030.e86b3822.chunk.js
+++ b/portal-ui/build/static/js/1030.a80a23bf.chunk.js
@@ -1,2 +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
+"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(25469),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(38734),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(25469),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(38734),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.a80a23bf.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.a80a23bf.chunk.js.map
similarity index 99%
rename from portal-ui/build/static/js/1030.e86b3822.chunk.js.map
rename to portal-ui/build/static/js/1030.a80a23bf.chunk.js.map
index 72522fb2f..a6f11b6ae 100644
--- a/portal-ui/build/static/js/1030.e86b3822.chunk.js.map
+++ b/portal-ui/build/static/js/1030.a80a23bf.chunk.js.map
@@ -1 +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 {children}\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 {label}\n \n \n {value}\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 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
+{"version":3,"file":"static/js/1030.a80a23bf.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 {children}\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 {label}\n \n \n {value}\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 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.0b468b7f.chunk.js b/portal-ui/build/static/js/1182.0b468b7f.chunk.js
new file mode 100644
index 000000000..6ec70fd8d
--- /dev/null
+++ b/portal-ui/build/static/js/1182.0b468b7f.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1182],{23804:function(e,t,i){i(72791);var n=i(11135),a=i(25787),l=i(61889),r=i(80184);t.Z=(0,a.Z)((function(e){return(0,n.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,i=e.iconComponent,n=e.title,a=e.help;return(0,r.jsx)("div",{className:t.root,children:(0,r.jsxs)(l.ZP,{container:!0,children:[(0,r.jsxs)(l.ZP,{item:!0,xs:12,className:t.leftItems,children:[i,n]}),(0,r.jsx)(l.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},63856:function(e,t,i){var n=i(1413),a=(i(72791),i(11135)),l=i(25787),r=i(64554),o=i(61889),s=i(36151),d=i(27197),c=i(32686),x=i(23814),u=i(80705),p=i(85090),f=i(38734),h=i(80184),m=function(){return(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px"}},children:(0,h.jsx)(f.Q2V,{})})};t.Z=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},x.OR),x.bN),{},{syncButton:{"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type":{fontSize:18}},schedulerIcon:{opacity:.4,fontSize:10,"& svg":{width:18,height:18}},selectorLabel:{color:"#9D9E9D",fontWeight:"bold",whiteSpace:"nowrap",marginLeft:10,fontSize:12}}))}))((function(e){var t=e.classes,i=e.timeStart,n=e.setTimeStart,a=e.timeEnd,l=e.setTimeEnd,x=e.triggerSync,f=e.label,g=void 0===f?"Filter:":f,v=e.startLabel,j=void 0===v?"Start Time:":v,b=e.endLabel,y=void 0===b?"End Time:":b;return(0,h.jsx)(o.ZP,{item:!0,xs:12,sx:{"& .filter-date-input-label, .end-time-input-label":{display:"none"},"& .MuiInputBase-adornedEnd.filter-date-date-time-input":{width:"100%",border:"1px solid #eaeaea",paddingLeft:"8px",paddingRight:"8px",borderRadius:"1px"},"& .MuiInputAdornment-root button":{height:"20px",width:"20px",marginRight:"5px"},"& .filter-date-input-wrapper":{height:"30px",width:"100%","& .MuiTextField-root":{height:"30px",width:"90%","& input.Mui-disabled":{color:"#000000",WebkitTextFillColor:"#101010"}}}},children:(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},alignItems:"center",gridTemplateColumns:{md:"auto 2fr auto",sm:"1fr"},padding:{md:"0",xs:" 5px"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{fontSize:"14px",fontWeight:500,marginRight:"5px"},children:g}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},border:{md:"1px solid #eaeaea"},alignItems:"center",gridTemplateColumns:{md:"1fr 1fr",sm:"1fr"},gap:"8px",paddingLeft:"8px",paddingRight:"8px"},children:[(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(d.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:j}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:i,onChange:n,id:"stTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(c.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:y}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:a,onChange:l,id:"endTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]})]}),x&&(0,h.jsx)(r.Z,{sx:{alignItems:"flex-end",display:"flex",justifyContent:"flex-end",marginRight:"35px"},children:(0,h.jsx)(s.Z,{type:"button",variant:"contained",color:"primary",onClick:x,endIcon:(0,h.jsx)(p.Z,{}),className:t.syncButton,children:"Sync"})})]})})}))},80705:function(e,t,i){var n=i(1413),a=i(72791),l=i(27391),r=i(61889),o=i(30829),s=i(20068),d=i(49979),c=i(69783),x=i(71652),u=i(63466),p=i(27197),f=i(11135),h=i(25787),m=i(84570),g=i(23814),v=i(33976),j=i(80184);t.Z=(0,h.Z)((function(e){return(0,f.Z)((0,n.Z)((0,n.Z)({dateSelectorOverride:{height:40,border:"#EAEDEE 1px solid",marginLeft:15,backgroundColor:"#fff",padding:"0 16px",borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{borderColor:"#000","&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:600,color:"#393939"}},dateSelectorFilterOverride:{width:180,height:42,marginLeft:20,padding:0,borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{"&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:"bold",color:"#081C42"},"@media (max-width: 900px)":{width:103}},dateSelectorFormOverride:{width:"100%",maxWidth:840},parentDateOverride:{flexGrow:1},textBoxContainer:{flexGrow:1},openListIcon:{color:"#9D9E9D",width:8,marginTop:2},paperOverride:{"& .MuiCalendarPicker-root":{padding:"0 22px","& > div":{padding:0,"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type":{color:"#0A224C",fontWeight:"bold"},"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type":{color:"#9D9E9D","& + button.MuiButtonBase-root":{color:"#9D9E9D"}},"& > div:nth-child(2)":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"}}}},"& .MuiTypography-root.MuiTypography-caption":{width:26,height:26,margin:5,color:"#BCBCBC",fontSize:10},"& button.MuiPickersDay-root":{fontWeight:"bold",width:26,height:26,margin:5,textAlign:"center","&.Mui-selected":{backgroundColor:e.palette.primary.main,color:"#fff"}},"& div.MuiPickersDay-hiddenDaySpacingFiller":{width:26,height:26,margin:5},"& div.PrivatePickersSlideTransition-root":{minHeight:240},"& div.MuiCalendarPicker-viewTransitionContainer":{borderTop:"#F0F3F5 1px solid"},"& .MuiClockPicker-arrowSwitcher":{marginRight:10,marginTop:-1,"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"},"& + div > div":{width:255,height:255,backgroundColor:"#fff",marginTop:30,marginBottom:14,border:"#F0F3F5 3px solid","& > div:nth-child(2)":{backgroundColor:"#B4B5B4",width:12,height:12,"&::before":{content:"' '",width:35,height:35,display:"block",position:"absolute",border:"#F0F3F5 3px solid",top:-12,left:-12,borderRadius:"100%"}},"& > div:nth-child(3)":{backgroundColor:"#B4B5B4",width:4},"& > div:last-of-type":{marginTop:15,"& > span":{color:"#0A224C","&.Mui-selected":{color:"#fff"},"&[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']":{fontWeight:"bold",fontSize:20,marginTop:-1}}}}}}},g.YI),g.Hr))}))((function(e){var t=e.value,i=e.onChange,f=e.classes,h=e.forSearchBlock,g=void 0!==h&&h,b=e.forFilterContained,y=void 0!==b&&b,Z=e.label,C=e.tooltip,w=void 0===C?"":C,S=e.required,E=e.id,N=e.disabled,T=void 0!==N&&N,F=e.noInputIcon,I=void 0!==F&&F,A=e.classNamePrefix,k=void 0===A?"":A,L=e.openPickerIcon,B={};I||(B={startAdornment:(0,j.jsx)(u.Z,{position:"start",children:(0,j.jsx)(p.Z,{})})}),y&&(B={endAdornment:(0,j.jsx)(u.Z,{position:"end",children:(0,j.jsx)(v.Z,{className:f.openListIcon})})});var R="".concat(k,"date-time-input ").concat(g?f.dateSelectorOverride:""," ").concat(y&&!g?f.dateSelectorFilterOverride:""),W=g?f.parentDateOverride:f.dateSelectorFormOverride,D=(0,j.jsx)(x._,{dateAdapter:c.Z,children:(0,j.jsx)(d.x,{value:t,onChange:i,InputProps:(0,n.Z)((0,n.Z)({},B),{},{className:R}),components:{OpenPickerIcon:L},label:"",className:W,disabled:T,renderInput:function(e){return(0,j.jsx)(l.Z,(0,n.Z)((0,n.Z)({id:E,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:f.paperOverride}})});if(g)return D;var z=y?"":f.fieldContainer;return(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(z," ").concat(k,"input-field-container "),children:[""!==Z&&(0,j.jsxs)(o.Z,{htmlFor:E,className:"".concat(f.inputLabel," ").concat(k,"input-label"),children:[(0,j.jsxs)("span",{children:[Z,S?"*":""]}),""!==w&&(0,j.jsx)("div",{className:f.tooltipContainer,children:(0,j.jsx)(s.Z,{title:w,placement:"top-start",children:(0,j.jsx)("div",{className:f.tooltip,children:(0,j.jsx)(m.Z,{})})})})]}),(0,j.jsx)("div",{className:"".concat(f.textBoxContainer," ").concat(k,"input-wrapper "),children:D})]})})}))},56028:function(e,t,i){var n=i(29439),a=i(1413),l=i(72791),r=i(60364),o=i(13400),s=i(55646),d=i(5574),c=i(65661),x=i(39157),u=i(11135),p=i(25787),f=i(23814),h=i(25469),m=i(29823),g=i(28057),v=i(87995),j=i(80184);t.Z=(0,p.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))((function(e){var t=e.onClose,i=e.modalOpen,u=e.title,p=e.children,f=e.classes,b=e.wideLimit,y=void 0===b||b,Z=e.noContentPadding,C=e.titleIcon,w=void 0===C?null:C,S=(0,h.TL)(),E=(0,l.useState)(!1),N=(0,n.Z)(E,2),T=N[0],F=N[1],I=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,l.useEffect)((function(){S((0,v.MK)(""))}),[S]),(0,l.useEffect)((function(){if(I){if(""===I.message)return void F(!1);"error"!==I.type&&F(!0)}}),[I]);var A=y?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},k="";return I&&(k=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(k=I.message)),(0,j.jsxs)(d.Z,(0,a.Z)((0,a.Z)({open:i,classes:f},A),{},{scroll:"paper",onClose:function(e,i){"backdropClick"!==i&&t()},className:f.root,children:[(0,j.jsxs)(c.Z,{className:f.title,children:[(0,j.jsxs)("div",{className:f.titleText,children:[w," ",u]}),(0,j.jsx)("div",{className:f.closeContainer,children:(0,j.jsx)(o.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,j.jsx)(m.Z,{})})})]}),(0,j.jsx)(g.Z,{isModal:!0}),(0,j.jsx)(s.Z,{open:T,className:f.snackBarModal,onClose:function(){F(!1),S((0,v.MK)(""))},message:k,ContentProps:{className:"".concat(f.snackBar," ").concat(I&&"error"===I.type?f.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,j.jsx)(x.Z,{className:Z?"":f.content,children:p})]}))}))},31300:function(e,t,i){i(72791);var n=i(64554),a=i(38734),l=i(80184);t.Z=function(e){var t=e.onlineCount,i=void 0===t?0:t,r=e.offlineCount,o=void 0===r?0:r,s=e.icon,d=void 0===s?null:s,c=e.label,x=void 0===c?"":c,u=e.okStatusText,p=void 0===u?"Online":u,f=e.notOkStatusText,h=void 0===f?"Offline":f;return(0,l.jsx)(n.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,l.jsx)(n.Z,{sx:{fontSize:"16px",fontWeight:600},children:x}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:i}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,l.jsx)(a.J$M,{}),(0,l.jsx)("div",{className:"stat-text",children:p})]})]}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:o}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"8px","& .min-icon":{fill:"#C83B51"}},children:[(0,l.jsx)(a.J$M,{})," ",(0,l.jsx)("div",{className:"stat-text",children:h})]})]})]})]}),(0,l.jsx)(n.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:d})]})})}},879:function(e,t,i){i.d(t,{D_:function(){return r},Et:function(){return a},GJ:function(){return l},yh:function(){return n}});var n={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},a=function(e,t){return e<=t/2?n.RED:2!==t&&e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0},l=function(e){switch(e){case"offline":return n.RED;case"online":return n.GREEN;default:return n.YELLOW}},r=function(e,t){return e<=t/2?n.RED:e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0}},21182:function(e,t,i){i.r(t),i.d(t,{default:function(){return mt}});var n,a=i(29439),l=i(1413),r=i(72791),o=i(26181),s=i.n(o),d=i(93433),c=i(60364),x=i(61889),u=i(11135),p=i(25787),f=i(64554),h=i(23814);!function(e){e.singleValue="singleValue",e.linearGraph="linearGraph",e.areaGraph="areaGraph",e.barChart="barChart",e.pieChart="pieChart",e.singleRep="singleRep",e.simpleWidget="simpleWidget"}(n||(n={}));var m=i(45248),g=i(51846),v=i(82332),j=i(38734),b=i(80184),y=["#C4D4E9","#DCD1EE","#D1EEE7","#EEDED1","#AAF38F","#F9E6C5","#C83B51","#F4CECE","#D6D6D6"],Z=function(e){return(0,m.v1)(e,"ns")},C=function(e){return parseInt(e).toString(10)},w=[{id:1,title:"Uptime",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(j.oNq,{}),labelDisplayFunction:m.v1},{id:50,title:"Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:51,title:"Usable Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:68,title:"Data Usage Growth",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.areaGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:52,title:"Object size distribution",data:[],widgetConfiguration:[{dataKey:"a",color:"#2781B0",background:{fill:"#EEF1F4"},greatestColor:"#081C42"}],customStructure:[{originTag:"LESS_THAN_1024_B",displayTag:"Less than 1024B"},{originTag:"BETWEEN_1024_B_AND_1_MB",displayTag:"Between 1024B and 1MB"},{originTag:"BETWEEN_1_MB_AND_10_MB",displayTag:"Between 1MB and 10MB"},{originTag:"BETWEEN_10_MB_AND_64_MB",displayTag:"Between 10MB and 64MB"},{originTag:"BETWEEN_64_MB_AND_128_MB",displayTag:"Between 64MB and 128MB"},{originTag:"BETWEEN_128_MB_AND_512_MB",displayTag:"Between 128MB and 512MB"},{originTag:"GREATER_THAN_512_MB",displayTag:"Greater than 512MB"}],type:n.barChart},{id:66,title:"Buckets",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:44,title:"Objects",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:63,title:"API Data Received Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000",strokeWidth:3}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:61,title:"Total Open FDs",data:[],innerLabel:"N/A",type:n.singleRep,color:"#22B573",fillColor:"#A6E8C4"},{id:62,title:"Total Goroutines",data:[],innerLabel:"N/A",type:n.singleRep,color:"#F7655E",fillColor:"#F4CECE"},{id:77,title:"Node CPU Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:60,title:"API Request Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:70,title:"API Data Sent Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:17,title:"Internode Data Transfer",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:73,title:"Node IO",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:80,title:"Time Since Last Heal Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(g.Z,{}),labelDisplayFunction:Z},{id:81,title:"Time Since Last Scan Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(v.Z,{}),labelDisplayFunction:Z},{id:71,title:"API Request Error Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue},{id:76,title:"Node Memory Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:74,title:"Drive Used Capacity",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:82,title:"Drives Free Inodes",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,disableYAxis:!0,xAxisFormatter:m.Ue},{id:11,title:"Node Syscalls",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:8,title:"Node File Descriptors",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:500,mergedPanels:[{id:53,title:"Online",data:"N/A",type:n.singleValue},{id:69,title:"Offline",data:"N/A",type:n.singleValue}],title:"Servers"},{id:501,mergedPanels:[{id:9,title:"Online",data:"N/A",type:n.singleValue},{id:78,title:"Offline",data:"N/A",type:n.singleValue}],title:"Drives"},{id:502,mergedPanels:[{id:65,title:"Upload",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae},{id:64,title:"Download",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae}],title:"Network"}],S=function(e,t){if(0===e.length)return["","0"];if("mean"===t){var i=e.reduce((function(e,t){return e+parseFloat(t[1])}),0);return["",Math.floor(i/e.length).toString()]}var n=e.sort((function(e,t){return e[0]-t[0]}));return n[n.length-1]},E=function(e,t){if(!e)return t;var i=e.type;switch(t.type){case n.singleValue:case n.simpleWidget:if("stat"===i||"singlestat"===i){var a=s()(e,"targets[0].result[0].values",[]);null===a&&(a=[]);var r=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),o=S(a,r),d=t.labelDisplayFunction?t.labelDisplayFunction(o[1]):o[1];return(0,l.Z)((0,l.Z)({},t),{},{data:d})}break;case n.pieChart:if("gauge"===i){var c=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),x=s()(e,"targets",[]).filter((function(e){return null!==e})),u=x.map((function(e){var t=(e.result&&Array.isArray(e.result)?e.result:[]).map((function(t){var i=s()(t,"values",[]),n=Object.keys(t.metric),a=i.sort((function(e,t){return parseInt(e[0][1])-parseInt(t[0][1])})),l=t.metric[n[0]],r=a[a.length-1];return{name:l,value:parseInt(r[1]),legend:e.legendFormat}}));return t})),p=x[0].result&&x[0].result.length>0?x[0].result[0].values:[],f=S(p,c),h=t.labelDisplayFunction?t.labelDisplayFunction(f[1]):f[1];return(0,l.Z)((0,l.Z)({},t),{},{data:u,innerLabel:h})}break;case n.linearGraph:case n.areaGraph:if("graph"===i){var g=s()(e,"targets",[]);null===g&&(g=[]);var v=[],j=[];g.forEach((function(e,t){var i=s()(e,"result",[]),n=e.legendFormat;null===i&&(i=[]),i.forEach((function(e){var i=function(e,t){var i=Object.keys(e),n=new RegExp("{{(".concat(i.join("|"),")}}"),"g"),a=t.replace(n,(function(t){var i=t.replace(/({{|}})/g,"");return e[i]})),l=(a.match(/{{/g)||[]).length,r=(a.match(/}}/g)||[]).length,o=a.replace(/{{(.*?)}}/g,"");return l===r&&0!==l&&0!==r&&(i.forEach((function(t){a=a.replace(t,e[t])})),o=a),o}(e.metric,n),a="key_".concat(t).concat(i);v.push({dataKey:a,keyLabel:i,lineColor:"",fillColor:""});var l=s()(e,"values",[]);null===l&&(l=[]),l.forEach((function(e){var t=j.findIndex((function(t){return t.name===e[0]}));if(-1===t){var i={name:e[0]};i[a]=e[1],j.push(i)}else j[t][a]=e[1]}))}))}));var b=v.sort((function(e,t){return e.keyLabelt.keyLabel?1:0})).map((function(e,t){return(0,l.Z)((0,l.Z)({},e),{},{lineColor:y[t]||(0,m.C5)(e.keyLabel),fillColor:y[t]||(0,m.C5)(e.keyLabel)})})),Z=j.sort((function(e,t){return e.name-t.name}));return(0,l.Z)((0,l.Z)({},t),{},{widgetConfiguration:b,data:Z})}break;case n.barChart:if("bargauge"===i){var C=s()(e,"targets[0].result",[]);null===C&&(C=[]);var w=function(e,t){return e[0]-t[0]},E=[];return E=t.customStructure?t.customStructure.map((function(e){var t=C.find((function(t){var i=Object.keys(t.metric);return t.metric[i[0]]===e.originTag})),i=s()(t,"values",[]).sort(w),n=i[i.length-1]||["","0"];return{name:e.displayTag,a:parseInt(n[1])}})):C.map((function(e){var t=Object.keys(e.metric),i=e.metric[t[0]],n=s()(e,"values",[]).sort(w),a=n[n.length-1]||["","0"];return{name:i,a:parseInt(a[1])}})),(0,l.Z)((0,l.Z)({},t),{},{data:E})}break;case n.singleRep:if("stat"===i){var N=s()(e,"targets[0].result[0].values",[]);null===N&&(N=[]);var T=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),F=S(N,T),I=N.sort((function(e,t){return e[0]-t[0]})),A=[];1===I.length&&A.push({value:0}),I.forEach((function(e){A.push({value:parseInt(e[1])})}));var k=t.labelDisplayFunction?t.labelDisplayFunction(F[1]):F[1];return(0,l.Z)((0,l.Z)({},t),{},{data:A,innerLabel:k})}}return t},N=function(e){var t=e.split(" "),i=function(){var t=e;return isNaN(parseFloat(e))||(t=(0,m.nk)(parseFloat(e))),(0,b.jsx)(r.Fragment,{children:t})};return 2!==t.length?i():m.Dl.includes(t[1])?(0,b.jsxs)("span",{className:"commonValue",children:[t[0],(0,b.jsx)("span",{className:"unitText",children:t[1]})]}):i()},T=i(19847),F=i(81207),I=i(72455),A=i(18073),k=i(43896),L=(0,I.Z)({tabRoot:{height:"40px",borderBottom:"1px solid #eaeaea"},root:{width:"120px",backgroundColor:"transparent",paddingTop:0,paddingBottom:0,fontSize:"14px",fontWeight:600,color:"#07193E",height:"40px"},selected:{"&.MuiTab-selected":{backgroundColor:"#F6F7F7 !important"},"&.MuiTab-wrapper":{color:"#07193E",fontWeight:600}},indicator:{background:"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;",height:2},scroller:{maxWidth:1185,position:"relative","&::after":{content:'" "',backgroundColor:"#EEF1F4",height:2,width:"100%",display:"block"}}}),B=function(e){var t=e.selectedTab,i=e.onChange,n=e.tabOptions,a=L();return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(A.Z,{indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",value:t,onChange:function(e,t){i(t)},classes:{root:a.tabRoot,indicator:a.indicator,scroller:a.scroller},children:n.map((function(e,t){var i={label:e.label};return e.value&&(i=(0,l.Z)((0,l.Z)({},i),{},{value:e.value})),e.disabled&&(i=(0,l.Z)((0,l.Z)({},i),{},{disabled:e.disabled})),(0,r.createElement)(k.Z,(0,l.Z)((0,l.Z)({},i),{},{classes:{root:a.root,selected:a.selected},id:"simple-tab-".concat(t),"aria-controls":"simple-tabpanel-".concat(t),key:"tab-".concat(t,"-").concat(e.label)}))}))})})},R=i(19913),W=i(38725),D=i(90466),z=i(12891),P=i(24714),M=i(41048),O=i(35667),G=i(95193),U=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.barChartConfiguration,l=e.classes;return t?(0,b.jsxs)("div",{className:l.customTooltip,children:[(0,b.jsx)("div",{className:l.timeStampTitle,children:n}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:l.labelContainer,children:[(0,b.jsx)("div",{className:l.labelColor,style:{backgroundColor:a[t].color}}),(0,b.jsx)("div",{className:l.itemValue,children:(0,b.jsx)("span",{className:l.valueContainer,children:e.value})})]},"pltiem-".concat(t,"-").concat(n))}))]}):null})),_=i(29598),K=i(72401),V=i(64119),H=i(71080),$=i(25469),Y=function(e){var t=e.panelItem,i=(0,$.TL)();return(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"10px","& .link-text":{color:"#2781B0",fontSize:"12px",fontWeight:600},"& .zoom-graph-icon":{backgroundColor:"transparent",border:0,padding:0,cursor:"pointer","& svg":{color:"#D0D0D0",height:16},"&:hover":{"& svg":{color:"#404143"}}}},children:[(0,b.jsx)("a",{href:"void:(0);",rel:"noreferrer noopener",className:"link-text",onClick:function(e){e.preventDefault(),i((0,H.xG)(t))},children:"Expand Graph"}),(0,b.jsx)("button",{onClick:function(){i((0,H.xG)(t))},className:"zoom-graph-icon",children:(0,b.jsx)(V.Z,{})})]})},J=i(87995),q=function(e){var t=e.y,i=e.payload;return(0,b.jsx)("text",{width:50,fontSize:"69.7%",textAnchor:"start",fill:"#333",transform:"translate(5,".concat(t,")"),fontWeight:400,dy:3,children:i.value})},Q=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{loadingAlign:{width:"100%",paddingTop:"15px",textAlign:"center",margin:"auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.panelItem,l=e.timeStart,o=e.timeEnd,s=e.propLoading,d=e.apiPrefix,c=e.zoomActivated,x=void 0!==c&&c,u=(0,$.TL)(),p=(0,r.useState)(!0),f=(0,a.Z)(p,2),h=f[0],m=f[1],g=(0,r.useState)([]),v=(0,a.Z)(g,2),j=v[0],y=v[1],Z=(0,r.useState)(null),C=(0,a.Z)(Z,2),w=C[0],S=C[1];(0,r.useEffect)((function(){s&&m(!0)}),[s]),(0,r.useEffect)((function(){if(h){var e=0;if(null!==l&&null!==o){var t=o.unix()-l.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(n.id,"/?step=").concat(e,"&").concat(null!==l?"&start=".concat(l.unix()):"").concat(null!==l&&null!==o?"&":"").concat(null!==o?"end=".concat(o.unix()):"")).then((function(e){var t=E(e,n);y(t.data),S(t),m(!1)})).catch((function(e){u((0,J.Ih)(e)),m(!1)}))}}),[h,n,o,l,u,d]);var N=w?w.widgetConfiguration:[],T=0,I=0;if(1===N.length){var A=N[0];j.forEach((function(e,t){e[A.dataKey]>I&&(I=e[A.dataKey],T=t)}))}var k=(0,_.Z)(),L=(0,G.Z)(k.breakpoints.up("md"));return(0,b.jsxs)("div",{className:x?"":t.singleValueContainer,children:[!x&&(0,b.jsxs)("div",{className:t.titleContainer,children:[i," ",(0,b.jsx)(Y,{panelItem:n})]}),h&&(0,b.jsx)("div",{className:t.loadingAlign,children:(0,b.jsx)(K.Z,{})}),!h&&(0,b.jsx)("div",{className:x?t.zoomChartCont:t.contentContainer,children:(0,b.jsx)(R.h,{width:"99%",children:(0,b.jsxs)(W.v,{data:j,layout:"vertical",barCategoryGap:1,children:[(0,b.jsx)(D.K,{type:"number",hide:!0}),(0,b.jsx)(z.B,{dataKey:"name",type:"category",interval:0,tick:(0,b.jsx)(q,{}),tickLine:!1,axisLine:!1,width:150,hide:!L,style:{fontSize:"12px",fontWeight:100}}),N.map((function(e){return(0,b.jsx)(P.$,{dataKey:e.dataKey,fill:e.color,background:e.background,barSize:x?25:12,children:1===N.length?(0,b.jsx)(r.Fragment,{children:j.map((function(t,i){return(0,b.jsx)(M.b,{fill:i===T?e.greatestColor:e.color},"chart-bar-".concat(i.toString()))}))}):null},"bar-".concat(e.dataKey))})),(0,b.jsx)(O.u,{cursor:{fill:"rgba(255, 255, 255, 0.3)"},content:(0,b.jsx)(U,{barChartConfiguration:N})})]})})})]})})),X=i(37762),ee=i(28265),te=i(82839),ie=i(18602),ne=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.linearConfiguration,l=e.yAxisFormatter,r=e.classes;return t?(0,b.jsxs)("div",{className:r.customTooltip,children:[(0,b.jsx)("div",{className:r.timeStampTitle,children:(0,m.Ue)(n,!0)}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:r.labelContainer,children:[(0,b.jsx)("div",{className:r.labelColor,style:{backgroundColor:a[t].lineColor}}),(0,b.jsx)("div",{className:r.itemValue,children:(0,b.jsxs)("span",{className:r.valueContainer,children:[a[t].keyLabel,":"," ",l(e.value)]})})]},"lbPl-".concat(t,"-").concat(a[t].keyLabel))}))]}):null})),ae=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{verticalAlignment:{flexDirection:"column"},chartCont:{position:"relative",height:140,width:"100%"},legendChart:{display:"flex",flexDirection:"column",flex:"0 1 auto",maxHeight:130,margin:0,overflowY:"auto",position:"relative",textAlign:"center",width:"100%",justifyContent:"flex-start",color:"#404143",fontWeight:"bold",fontSize:12},loadingAlign:{width:40,height:40,textAlign:"center",margin:"15px auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.timeStart,l=e.timeEnd,o=e.propLoading,s=e.panelItem,d=e.apiPrefix,c=e.hideYAxis,x=void 0!==c&&c,u=e.areaWidget,p=void 0!==u&&u,h=e.yAxisFormatter,m=void 0===h?function(e){return e}:h,g=e.xAxisFormatter,v=void 0===g?function(e,t,i){return e}:g,j=e.zoomActivated,y=void 0!==j&&j,Z=(0,$.TL)(),C=(0,r.useState)(!0),w=(0,a.Z)(C,2),S=w[0],N=w[1],T=(0,r.useState)([]),I=(0,a.Z)(T,2),A=I[0],k=I[1],L=(0,r.useState)(0),B=(0,a.Z)(L,2),W=B[0],P=B[1],M=(0,r.useState)(null),U=(0,a.Z)(M,2),V=U[0],H=U[1];(0,r.useEffect)((function(){o&&N(!0)}),[o]),(0,r.useEffect)((function(){if(S){var e=0;if(null!==n&&null!==l){var t=l.unix()-n.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(s.id,"/?step=").concat(e,"&").concat(null!==n?"&start=".concat(n.unix()):"").concat(null!==n&&null!==l?"&":"").concat(null!==l?"end=".concat(l.unix()):"")).then((function(e){var t=E(e,s);k(t.data),H(t),N(!1);var i,n=0,a=(0,X.Z)(t.data);try{for(a.s();!(i=a.n()).done;){var l=i.value;for(var r in l)if("name"!==r){var o=parseInt(l[r]);isNaN(o)&&(o=0),n5&&void 0!==arguments[5]&&arguments[5];switch(e.type){case n.singleValue:return(0,b.jsx)(ge,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.simpleWidget:var o,s=null;return 80===e.id?s=be:81===e.id?s=ye:1===e.id&&(s=Ze),[80,81,1].includes(e.id)&&(o=function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id,l=e.iconWidget;return(0,b.jsx)(s,{valueToRender:t,loading:i,title:n,id:a,iconWidget:l})}),(0,b.jsx)(de,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,iconWidget:e.widgetIcon,renderFn:o});case n.pieChart:return 50===e.id?(0,b.jsx)(ce,{children:(0,b.jsx)(ve,{value:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l})}):(0,b.jsx)(oe,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.linearGraph:case n.areaGraph:return(0,b.jsx)(ae,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,hideYAxis:e.disableYAxis,xAxisFormatter:e.xAxisFormatter,yAxisFormatter:e.yAxisFormatter,apiPrefix:l,areaWidget:e.type===n.areaGraph,zoomActivated:r});case n.barChart:return(0,b.jsx)(Q,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,zoomActivated:r});case n.singleRep:var d=e.fillColor?e.fillColor:e.color;return(0,b.jsx)(he,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,color:e.color,fillColor:d,apiPrefix:l});default:return null}},we=i(56028),Se=function(e){var t=e.value,i=e.modalOpen,n=e.timeStart,a=e.timeEnd,l=e.apiPrefix,o=(0,$.TL)();return t?(0,b.jsx)(we.Z,{title:t.title,onClose:function(){o((0,H.jv)())},modalOpen:i,wideLimit:!1,noContentPadding:!0,children:(0,b.jsx)(r.Fragment,{children:Ce(t,n,a,!0,l,!0)})}):null},Ee=i(63856),Ne=[{sx:{minWidth:0,display:"grid",gridTemplateColumns:{md:"1fr 1fr 1fr 1fr",sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:66},{componentId:44},{componentId:500},{componentId:501}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:50},{componentId:502}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:80},{componentId:81},{componentId:1}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:68},{componentId:52}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:63},{componentId:70}]}],Te=[{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:60}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:71,sx:{flex:1,width:"50%",flexShrink:0}},{componentId:17,sx:{flex:1,width:"50%",flexShrink:0}}]},{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:73}]}],Fe=[{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:76},{componentId:77}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:82},{componentId:74}]}],Ie=[{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:11},{componentId:8}]}],Ae=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},children:t})},ke=i(57621),Le=i(9585),Be=i(43504),Re=(0,I.Z)({root:{backgroundColor:"#fff",padding:0},title:(0,l.Z)({},h.NP.titleContainer),content:{maxWidth:"100%"}}),We=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{cardRoot:(0,l.Z)((0,l.Z)({},h.NP.singleValueContainer),{},{"&.MuiPaper-root":{borderRadius:10}}),metricText:{fontSize:70,lineHeight:1.1,color:"#07193E",fontWeight:"bold"},unitText:{fontSize:10,color:"#767676",fontWeight:"normal"},subHearderContainer:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center"},subMessage:{fontSize:10,color:"#767676","&.bold":{fontWeight:"bold"}},headerContainer:{display:"flex",justifyContent:"space-between"},viewAll:{fontSize:10,color:"#C83B51",textTransform:"capitalize","& a, & a:hover, & a:visited, & a:active":{color:"#C83B51"}},extraMargin:{margin:"10px 20px 10px 0"}}))}))((function(e){var t=e.title,i=e.metricValue,n=e.metricUnit,a=e.subMessage,l=e.moreLink,o=e.rightComponent,s=e.extraMargin,d=void 0!==s&&s,c=e.classes,x=Re(),u=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.subHearderContainer,children:[(0,b.jsxs)("div",{className:c.leftSide,children:[(0,b.jsx)("div",{children:(0,b.jsxs)("span",{className:c.metricText,children:[i,(0,b.jsx)("span",{className:c.unitText,children:n})]})}),a&&(0,b.jsx)("div",{className:"".concat(c.subMessage," ").concat(a.fontWeight?a.fontWeight:""),children:a.message})]}),(0,b.jsx)("div",{className:c.rightSide,children:o})]})})},p=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.headerContainer,children:[(0,b.jsx)("span",{className:c.title,children:t}),l&&(0,b.jsx)(r.Fragment,{children:(0,b.jsx)("span",{className:c.viewAll,children:(0,b.jsx)(Be.rU,{to:l,children:"View All"})})})]})})};return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(ke.Z,{className:"".concat(c.cardRoot," ").concat(d?c.extraMargin:""),children:""!==i&&(0,b.jsx)(Le.Z,{title:(0,b.jsx)(p,{}),subheader:(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(u,{})}),classes:{root:x.root,title:x.title,content:x.content}})})})})),De=function(e){var t=e.title,i=e.leftComponent,n=e.rightComponent;return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(We,{title:t,metricValue:i,rightComponent:n})})},ze=function(e){var t=e.panelItem,i=e.timeStart,n=e.timeEnd,l=e.propLoading,o=e.apiPrefix,s=e.statLabel,d=(0,$.TL)(),c=(0,r.useState)(!0),x=(0,a.Z)(c,2),u=x[0],p=x[1],h=(0,r.useState)(""),m=(0,a.Z)(h,2),g=m[0],v=m[1];return(0,r.useEffect)((function(){l&&p(!0)}),[l]),(0,r.useEffect)((function(){if(u){var e=0;if(null!==i&&null!==n){var a=n.unix()-i.unix(),l=Math.floor(a/60);e=l<1?15:l}F.Z.invoke("GET","/api/v1/".concat(o,"/info/widgets/").concat(t.id,"/?step=").concat(e,"&").concat(null!==i?"&start=".concat(i.unix()):"").concat(null!==i&&null!==n?"&":"").concat(null!==n?"end=".concat(n.unix()):"")).then((function(e){var i=E(e,t);v(i.data),p(!1)})).catch((function(e){d((0,J.Ih)(e)),p(!1)}))}}),[u,t,n,i,d,o]),u?(0,b.jsx)(f.Z,{sx:{width:"100%",paddingTop:"5px",textAlign:"center",margin:"auto"},children:(0,b.jsx)(K.Z,{style:{width:12,height:12}})}):(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{className:"stat-value",children:g}),s]})},Pe=function(e){var t=e.statItemLeft,i=void 0===t?null:t,n=e.statItemRight,a=void 0===n?null:n,l=e.icon,r=void 0===l?null:l,o=e.label,s=void 0===o?"":o;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:s}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[i,a]})]}),(0,b.jsx)(f.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:r})]})})},Me=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.id,c=(0,a.Z)(s,2),x=c[0],u=c[1],p=(0,b.jsx)(ze,{panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Online"})]})}),h=(0,b.jsx)(ze,{panelItem:u,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#C83B51"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Offline"})]})}),m=null,g="";return 500===d?(m=(0,b.jsx)(j.SBZ,{}),g="Servers"):501===d&&(m=(0,b.jsx)(j.FU8,{}),g="Drives"),(0,b.jsx)(Pe,{statItemLeft:p,statItemRight:h,icon:m,label:g})},Oe=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"10px",gap:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#4ccb92"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969"},children:"GET"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.vUj,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Ge=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"10px",alignItems:"center",marginTop:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#2781b0"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969",fontWeight:"normal"},children:"PUT"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.Uxq,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Ue=function(e){var t=e.value,i=e.timeStart,n=e.timeEnd,l=e.propLoading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=(0,a.Z)(s,2),c=d[0],x=d[1],u=(0,b.jsx)(ge,{title:t.title,panelItem:c,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Ge,{value:t,loading:i,title:n,id:a})}}),p=(0,b.jsx)(ge,{title:t.title,panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Oe,{value:t,loading:i,title:n,id:a})}});return(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"},gap:"15px","& .unitText":{fontSize:"14px",color:"#5E5E5E",marginLeft:"5px"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:"Network"}),(0,b.jsx)(f.Z,{sx:{position:"relative",width:110,height:110,marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{position:"absolute",display:"flex",flexFlow:"column",alignItems:"center",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:p})}),(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center","& .value":{fontSize:"50px",fontFamily:"Lato"},"& .unit":{color:"#5E5E5E",fontSize:"18px",marginLeft:"12px",marginTop:"10px"}},children:u})}),(0,b.jsx)(f.Z,{sx:{marginLeft:"15px",height:"100%",display:"flex",alignItems:"flex-start","& .min-icon":{height:"15px",width:"15px"}},children:(0,b.jsx)(j.QBB,{})})]})},_e=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.title,c=void 0===d?"":d,x=t.id,u=(0,a.Z)(s,2),p=u[0],f=u[1];return[500,501].includes(x)?(0,b.jsx)(ce,{children:(0,b.jsx)(Me,{info:t,timeStart:i,timeEnd:n,loading:l,apiPrefix:r})}):502===x?(0,b.jsx)(ce,{children:(0,b.jsx)(Ue,{apiPrefix:r,timeEnd:n,timeStart:i,value:t,propLoading:l})}):(0,b.jsx)(De,{title:c,leftComponent:Ce(p,i,n,l,r),rightComponent:Ce(f,i,n,l,r)})},Ke=i(74794),Ve=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},h.OR),h.bN),{},{dashboardRow:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap"}}))}))((function(e){var t=e.apiPrefix,i=void 0===t?"admin":t,n=(0,$.TL)(),l=(0,c.v9)((function(e){return e.dashboard.zoom.openZoom})),o=(0,c.v9)((function(e){return e.dashboard.zoom.widgetRender})),s=(0,r.useState)(null),u=(0,a.Z)(s,2),p=u[0],h=u[1],m=(0,r.useState)(null),g=(0,a.Z)(m,2),v=g[0],j=g[1],y=(0,r.useState)(!0),Z=(0,a.Z)(y,2),C=Z[0],S=Z[1],N=(0,r.useState)(w),I=(0,a.Z)(N,2),A=I[0],k=I[1],L=(0,r.useState)(0),R=(0,a.Z)(L,2),W=R[0],D=R[1],z=(0,r.useCallback)((function(){var e=0;if(null!==p&&null!==v){var t=v.unix()-p.unix(),a=Math.floor(t/60);e=a<1?15:a}F.Z.invoke("GET","/api/v1/".concat(i,"/info?step=").concat(e,"&").concat(null!==p?"&start=".concat(p.unix()):"").concat(null!==p&&null!==v?"&":"").concat(null!==v?"end=".concat(v.unix()):"")).then((function(e){if(e.widgets){var t=(i=e.widgets,w.map((function(e){var t=i.find((function(t){return t.title.toLowerCase().trim()===e.title.toLowerCase().trim()}));return E(t,e)})));k(t)}else n((0,J.Ih)({errorMessage:"Widget information could not be retrieved at this time. Please try again",detailedError:""}));var i;S(!1)})).catch((function(e){n((0,J.Ih)(e)),S(!1)}))}),[p,v,n,i]);(0,r.useEffect)((function(){C&&z()}),[C,z]);var P=function(e){return e.reduce((function(e,t,n){var a=t.columns,l=(void 0===a?[]:a).map((function(e,t){var a;return function(e,t){return(0,b.jsx)(r.Fragment,{children:e?(0,b.jsx)(r.Fragment,{children:e.mergedPanels?(0,b.jsx)(_e,{info:e,timeStart:p,timeEnd:v,loading:C,apiPrefix:i}):Ce(e,p,v,C,i)}):null},"widget-".concat(t))}((a=e.componentId,A.find((function(e){return e.id===a}))),"".concat(n,"-").concat(t))})),o=(0,b.jsx)(f.Z,{sx:t.sx,children:l},"layout-row-".concat(n));return[].concat((0,d.Z)(e),[o])}),[])};return(0,b.jsxs)(Ke.Z,{children:[l&&(0,b.jsx)(Se,{modalOpen:l,timeStart:p,timeEnd:v,widgetRender:0,value:o,apiPrefix:i}),(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)(B,{selectedTab:W,onChange:function(e){D(e)},tabOptions:[{label:"Usage"},{label:"Traffic"},{label:"Resources"}]})}),(0,b.jsxs)(x.ZP,{item:!0,xs:12,sx:{paddingTop:"20px"},children:[(0,b.jsx)(f.Z,{sx:{marginBottom:"20px"},children:(0,b.jsx)(Ee.Z,{timeStart:p,setTimeStart:h,timeEnd:v,setTimeEnd:j,triggerSync:function(){S(!0)}})}),(0,b.jsx)(T.x,{index:0,value:W,children:(0,b.jsx)(Ae,{children:A.length?P(Ne):null})}),(0,b.jsx)(T.x,{index:1,value:W,children:(0,b.jsx)(Ae,{children:A.length?P(Te):null})}),(0,b.jsx)(T.x,{index:2,value:W,children:(0,b.jsxs)(Ae,{children:[A.length?P(Fe):null,(0,b.jsx)("h2",{style:{margin:0,borderBottom:"1px solid #dedede"},children:"Advanced"}),A.length?P(Ie):null]})})]})]})})),He=i(32291),$e=i(40986),Ye=i(23804),Je=i(31300),qe=i(98444),Qe=i.n(qe),Xe=i(79834),et=i(90493),tt=i(76278),it=i(56125),nt=i(879),at=function(e){var t=e.label,i=void 0===t?"":t,n=e.value,a=void 0===n?"":n,l=e.statusColor,r=void 0===l?"":l,o=e.hasStatus,s=void 0!==o&&o;return(0,b.jsx)(f.Z,{sx:{alignItems:"baseline",padding:"5px",display:"flex",gap:"5px"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column","& .stat-text":{color:"#5E5E5E",fontSize:"12px"},"& .stat-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsxs)("div",{className:"stat-value",children:[a," ",(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column",marginLeft:"5px",maxWidth:"40px","&:first-of-type(svg)":{fill:"#848484"}},children:s?(0,b.jsx)(f.Z,{sx:{marginRight:"0px",justifyContent:"center",alignItems:"center",textAlign:"center","& svg.min-icon":{fill:r,width:"10px",height:"10px"}},children:(0,b.jsx)(j.J$M,{})}):(0,b.jsx)(f.Z,{sx:{width:"12px",height:"12px"}})})]}),(0,b.jsx)("div",{className:"stat-text",children:i})]})})},lt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.server,i=Object.keys(s()(t,"network",{})),n=i.length,a=t.drives?t.drives.length:0,l=i.reduce((function(e,i){return"online"===t.network[i]?e+1:e}),0),r=t.drives?t.drives.filter((function(e){return"ok"===e.state})).length:0;return(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"flex-start",flexFlow:"column",flex:1},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",padding:"3px",gap:"15px",justifyContent:"space-between",width:"100%",paddingLeft:"20px",flexFlow:{sm:"row",xs:"column"}},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,b.jsx)(f.Z,{sx:{fontWeight:600,textTransform:"none"},children:t.endpoint||""}),(null===t||void 0===t?void 0:t.state)&&(0,b.jsx)(f.Z,{sx:{marginLeft:"8px","& .min-icon":{fill:(0,nt.GJ)(t.state),height:"14px",width:"14px"}},children:(0,b.jsx)(j.J$M,{})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flex:"1.5",gap:{md:"5%",xs:"5%"}},children:[(0,b.jsx)(at,{statusColor:(0,nt.Et)(r,a),label:"Drives",hasStatus:!0,value:"".concat(r,"/").concat(a)}),(0,b.jsx)(at,{statusColor:(0,nt.D_)(l,n),label:"Network",hasStatus:!0,value:"".concat(l,"/").concat(n)}),(0,b.jsx)(at,{statusColor:"green",label:"Up time",value:null!==t&&void 0!==t&&t.uptime?(0,m.v1)(t.uptime):"N/A"})]}),(0,b.jsx)(at,{statusColor:"green",label:"",value:(0,b.jsxs)(f.Z,{sx:{background:"rgb(235, 236, 237)",color:"#000000",paddingLeft:"10px",paddingRight:"10px",borderRadius:"2px",fontSize:"12px",marginTop:"5px","& .label":{fontWeight:600,marginRight:"3px"}},children:[(0,b.jsx)("span",{className:"label",children:"Version:"}),t.version?t.version:"N/A"]})})]})})})),rt=function(e){switch(e){case"offline":return nt.yh.RED;case"ok":return nt.yh.GREEN;default:return nt.yh.YELLOW}},ot=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.drive,i=[{value:t.totalSpace-t.usedSpace,color:"#D6D6D6",label:"Free Space"},{value:t.usedSpace,color:(0,m.hn)(t.usedSpace,t.totalSpace),label:"Used Space"}];return(0,b.jsx)(f.Z,{sx:{display:"flex",flex:1,alignItems:"center",paddingBottom:"10px",padding:"20px",border:"1px solid #eaeaea"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",marginLeft:"10px",flex:1},children:[(0,b.jsxs)(f.Z,{sx:{fontSize:"14px",fontWeight:400,display:"flex",alignItems:"center","& .min-icon":{marginRight:"10px",height:"10px",width:"10px",fill:rt(t.state),flexShrink:0},"& .drive-endpoint":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all",marginRight:"8px",fontWeight:600,fontSize:{md:"16px",xs:"10px"}}},children:[(0,b.jsx)("div",{className:"drive-endpoint",children:t.endpoint||""}),t.state&&(0,b.jsx)(j.J$M,{})]}),(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",paddingLeft:"20px",marginTop:"10px",flexFlow:{sm:"row",xs:"column"},"& .info-label":{color:"#5E5E5E",fontSize:"12px",textAlign:"center"},"& .info-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,b.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:(0,m.l5)(t.usedSpace)}),(0,b.jsx)("div",{children:(0,b.jsx)(le.u,{width:110,height:110,children:(0,b.jsx)(re.b,{data:i,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,startAngle:-70,endAngle:360,animationDuration:1,children:i.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})]})}),(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"5%",alignItems:"center",flex:2,flexGrow:1},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.totalSpace?t.totalSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Capacity"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.usedSpace?t.usedSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Used"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.availableSpace?t.availableSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Available"})]})]})]})]})})})),st=i(25183),dt=function(e){var t=e.data,i=r.useState(t.length>1?"":t[0].endpoint+"-0"),n=(0,a.Z)(i,2),l=n[0],o=n[1],s=function(e){o(e)};return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{marginBottom:"10px"},children:["Servers (",t.length,")"]}),(0,b.jsx)(et.Z,{sx:{width:"100%",flex:1,padding:"0"},component:"nav","aria-labelledby":"nested-list-subheader",children:t.map((function(e,t){var i="".concat(e.endpoint,"-").concat(t),n=l===i;return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsxs)(tt.Z,{disableRipple:!0,onClick:function(){s(n?"":i)},className:n?"expanded":"",sx:{display:"flex",alignItems:"center",justifyContent:"space-between",border:"1px solid #f1f1f1",padding:"3px 10px 3px 10px","&:hover":{background:"#bebbbb0d"}},children:[(0,b.jsx)(lt,{server:e,index:t}),(0,b.jsx)(f.Z,{sx:{height:"25px",width:"25px",background:"#FBFAFA",borderRadius:"2px","&:hover":{background:"#fafafa"},display:{md:"block",xs:"none"},"& .collapse-icon":{fill:"#494949","& g rect":{fill:"#ffffff"}},"& .expand-icon":{fill:"#494949","& rect":{fill:"#ffffff"}}},children:n?(0,b.jsx)(st.cg,{className:"collapse-icon"}):(0,b.jsx)(st.Ud,{className:"expand-icon"})})]}),n?(0,b.jsxs)(f.Z,{sx:{border:"1px solid #f1f1f1",borderTop:"0"},children:[(0,b.jsxs)(Xe.Z,{component:"div",sx:{paddingLeft:"30px"},children:["Drives (",e.drives.length,")"]},"".concat(t,"-drive-details")),(0,b.jsx)(it.Z,{in:n,timeout:"auto",unmountOnExit:!0,sx:{width:"100%",flex:1,display:"flex",padding:{md:"15px 30px",xs:"10px 10px"},"& .MuiCollapse-wrapperInner":{display:"flex",flexFlow:"column",gap:"15px"}},children:e.drives.map((function(e,t){return(0,b.jsx)(ot,{drive:e},"".concat(e.endpoint,"-").concat(t))}))})]},"".concat(e.endpoint,"-").concat(t)):null]},i)}))})]})},ct=function(e){var t=e.counterValue,i=e.label,n=void 0===i?"":i,a=e.icon,l=void 0===a?null:a,r=e.actions,o=void 0===r?null:r;e.loading;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"300px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default",position:"relative",width:"100%"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",width:"100%",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"},position:"absolute"},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"8px",zIndex:10,overflow:"hidden"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:n}),(0,b.jsx)(xe.Z,{title:t,placement:"bottom",enterDelay:500,children:(0,b.jsx)(f.Z,{sx:{fontSize:{xl:"55px",lg:"50px",md:"36px",sm:"35px",xs:"35px"},fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",maxWidth:{md:187,xs:200},flexFlow:{md:"row",xs:"column"}},children:t})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",alignItems:"center",justifyContent:"flex-start",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:[l,(0,b.jsx)(f.Z,{children:o})]})]})})},xt=function(e){var t=e.usageValue,i=e.total,n=e.unit,a=[{value:i,color:"#D6D6D6",label:"Free Space"},{value:t,color:"#073052",label:"Used Space"}];return(0,b.jsxs)(f.Z,{sx:{maxHeight:"110px",display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"19px",padding:"10px","& .unit-value":{fontSize:"50px",color:"#07193E"},"& .unit-type":{fontSize:"18px",color:"#5E5E5E",marginTop:"20px",marginLeft:"5px"},"& .usage-label":{display:"flex",alignItems:"center",fontSize:"16px",fontWeight:600,marginRight:"20px",marginTop:"-10px","& .min-icon":{marginLeft:"10px",height:16,width:16}}},children:[(0,b.jsxs)(f.Z,{children:[(0,b.jsx)("div",{className:"usage-label",children:(0,b.jsx)("span",{children:"Reported Usage"})}),(0,b.jsx)(xe.Z,{title:"".concat(t," Bytes"),children:(0,b.jsx)("label",{className:"unit-value",style:{fontWeight:600},children:i})}),(0,b.jsx)("label",{className:"unit-type",children:n})]}),(0,b.jsx)(f.Z,{children:(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsx)("div",{style:{position:"relative",width:105,height:105,top:"-8px"},children:(0,b.jsx)("div",{children:(0,b.jsx)(le.u,{width:105,height:105,children:(0,b.jsx)(re.b,{data:a,cx:"50%",cy:"50%",dataKey:"value",outerRadius:45,innerRadius:35,startAngle:-70,endAngle:360,animationDuration:1,children:a.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})})})})]})},ut=i(40603),pt=i(56087),ft=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{border:"1px solid #f1f1f1",padding:{md:"15px",xs:"5px"},height:"136px",maxWidth:{sm:"100%"}},children:t})},ht=function(e){var t=e.usage,i=t&&t.usage?t.usage.toString():"0",n=function(e){return void 0===e?{total:"0",unit:"Mi"}:(0,m.Am)(e)}(i),a=t||{},l=a.lastScan,o=void 0===l?"n/a":l,s=a.lastHeal,c=void 0===s?"n/a":s,x=a.upTime,u=void 0===x?"n/a":x,p=function(e){return null!==e?e.servers.sort((function(e,t){var i=e.endpoint.toLowerCase(),n=t.endpoint.toLowerCase();return in?1:0})):[]}(t||null),h=[];p.forEach((function(e){var t=e.drives.map((function(e){return e}));h=[].concat((0,d.Z)(h),(0,d.Z)(t))}));var g=Qe()(p,"state"),v=g.offline,y=void 0===v?[]:v,Z=g.online,C=void 0===Z?[]:Z,w=Qe()(h,"state"),S=w.offline,E=void 0===S?[]:S,N=w.ok,T=void 0===N?[]:N;return(0,b.jsx)(f.Z,{sx:{maxWidth:"1536px",margin:"auto"},children:(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"1fr",gap:"27px",marginBottom:"40px",marginTop:"40px",marginLeft:"40px",marginRight:"40px"},children:[(0,b.jsxs)(f.Z,{children:[(null===t||void 0===t?void 0:t.prometheusNotReady)&&(0,b.jsx)(Ye.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can't retrieve advanced metrics at this time",help:(0,b.jsxs)(r.Fragment,{children:["MinIO Dashboard will display basic metrics as we couldn't connect to Prometheus successfully.",(0,b.jsx)("br",{})," ",(0,b.jsx)("br",{}),"Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."]})}),!(null!==t&&void 0!==t&&t.prometheusNotReady)&&(0,b.jsx)(Ye.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can\u2019t retrieve advanced metrics at this time.",help:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{fontSize:"14px"},children:"MinIO Dashboard will display basic metrics as we couldn\u2019t connect to Prometheus successfully. Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."}),(0,b.jsx)(f.Z,{sx:{paddingTop:"20px",fontSize:"14px","& a":{color:function(e){return e.colors.link}}},children:(0,b.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/metrics-alerts/collect-minio-metrics-using-prometheus.html?ref=con#minio-metrics-collect-using-prometheus",target:"_blank",rel:"noreferrer",children:"Read more about Prometheus on our Docs site."})})]})})]}),(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"40px"},children:[(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"136px",gridTemplateColumns:{sm:"1fr 1fr 1fr",xs:"1fr"},gap:{md:"20px",xs:"20px"}},children:[(0,b.jsx)(ft,{children:(0,b.jsx)(ct,{label:"Buckets",icon:(0,b.jsx)(j.wNb,{}),counterValue:t?(0,m.nk)(t.buckets):0,actions:(0,b.jsx)(Be.rU,{to:pt.gA.BUCKETS,style:{textDecoration:"none",top:"40px",position:"relative",marginRight:"75px"},children:(0,b.jsx)(ut.Z,{tooltip:"Browse",onClick:function(){},text:"Browse",icon:(0,b.jsx)(j.LZ3,{}),color:"primary",variant:"outlined"})})})}),(0,b.jsx)(ft,{children:(0,b.jsx)(ct,{label:"Objects",icon:(0,b.jsx)(j.xpX,{}),counterValue:t?(0,m.nk)(t.objects):0})}),(0,b.jsx)(ft,{children:(0,b.jsx)(Je.Z,{onlineCount:C.length,offlineCount:y.length,label:"Servers",icon:(0,b.jsx)(j.SBZ,{})})}),(0,b.jsx)(ft,{children:(0,b.jsx)(Je.Z,{offlineCount:E.length,onlineCount:T.length,label:"Drives",icon:(0,b.jsx)(j.FU8,{})})}),(0,b.jsxs)(f.Z,{sx:{gridRowStart:"1",gridRowEnd:"3",gridColumnStart:"3",border:"1px solid #f1f1f1",padding:"15px",display:"grid",justifyContent:"stretch"},children:[(0,b.jsx)(xt,{usageValue:i,total:n.total,unit:n.unit}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",gap:"14px"},children:[(0,b.jsx)(je,{icon:(0,b.jsx)(j.lnI,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Heal Activity"]}),value:c}),(0,b.jsx)(je,{icon:(0,b.jsx)(st.EY,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Scan Activity"]}),value:o}),(0,b.jsx)(je,{icon:(0,b.jsx)(j.oNq,{}),label:"Uptime",value:u})]})]})]}),(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateRows:"auto",gridTemplateColumns:"1fr",gap:"auto"},children:(0,b.jsx)(dt,{data:p})})]})]})})},mt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},(0,h.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,i=(0,$.TL)(),n=(0,r.useState)(!0),l=(0,a.Z)(n,2),o=l[0],d=l[1],c=(0,r.useState)(null),u=(0,a.Z)(c,2),p=u[0],f=u[1],h=(0,r.useCallback)((function(){F.Z.invoke("GET","/api/v1/admin/info").then((function(e){f(e),d(!1)})).catch((function(e){i((0,J.Ih)(e)),d(!1)}))}),[f,d,i]);(0,r.useEffect)((function(){o&&h()}),[o,h]);var m=s()(p,"widgets",null);return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)(He.Z,{label:"Metrics"}),o?(0,b.jsx)(x.ZP,{container:!0,children:(0,b.jsx)(x.ZP,{item:!0,xs:12,className:t.container,children:(0,b.jsx)($e.Z,{})})}):(0,b.jsx)(r.Fragment,{children:null!==m?(0,b.jsx)(Ve,{}):(0,b.jsx)(ht,{usage:p})})]})}))},19847:function(e,t,i){i.d(t,{x:function(){return s}});var n=i(1413),a=i(45987),l=i(72791),r=i(80184),o=["children","value","index"],s=function(e){var t=e.children,i=e.value,s=e.index,d=(0,a.Z)(e,o);return(0,r.jsx)("div",(0,n.Z)((0,n.Z)({role:"tabpanel",hidden:i!==s,id:"simple-tabpanel-".concat(s),"aria-labelledby":"simple-tab-".concat(s),style:{marginTop:"5px"}},d),{},{children:i===s&&(0,r.jsx)(l.Fragment,{children:t})}))}}}]);
+//# sourceMappingURL=1182.0b468b7f.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1182.0b468b7f.chunk.js.map b/portal-ui/build/static/js/1182.0b468b7f.chunk.js.map
new file mode 100644
index 000000000..d1a0ba17f
--- /dev/null
+++ b/portal-ui/build/static/js/1182.0b468b7f.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1182.0b468b7f.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 {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
\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, var1: boolean, var2: boolean) => 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, var1: boolean, var2: boolean) => 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 let dspLongDate = false;\n\n if (zoomActivated) {\n dspLongDate = true;\n }\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 \n xAxisFormatter(value, dspLongDate, true)\n }\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 Capacity \n \n\n \n \n {niceBytes(drive.usedSpace ? drive.usedSpace.toString() : \"0\")}\n
\n Used \n \n \n \n {niceBytes(\n drive.availableSpace ? drive.availableSpace.toString() : \"0\"\n )}\n
\n Available \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 {unit} \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 \n {value === index && {children} }\n
\n );\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","DateFilterAdornIcon","sx","actionsTray","widgetContainerCommon","syncButton","schedulerIcon","opacity","selectorLabel","color","whiteSpace","marginLeft","timeStart","setTimeStart","timeEnd","setTimeEnd","triggerSync","label","startLabel","endLabel","WebkitTextFillColor","md","gridTemplateColumns","sm","padding","gap","fill","value","onChange","id","classNamePrefix","forFilterContained","noInputIcon","openPickerIcon","justifyContent","type","variant","onClick","endIcon","dateSelectorOverride","borderBottom","borderColor","dateSelectorFilterOverride","dateSelectorFormOverride","maxWidth","parentDateOverride","flexGrow","textBoxContainer","openListIcon","marginTop","paperOverride","margin","textAlign","palette","primary","main","minHeight","borderTop","content","position","top","left","fieldBasic","tooltipHelper","forSearchBlock","tooltip","required","disabled","adornment","startAdornment","endAdornment","classOverridden","clsName","inputItem","dateAdapter","AdapterMoment","InputProps","components","OpenPickerIcon","renderInput","props","ampm","PopperProps","containerCls","fieldContainer","Fragment","htmlFor","inputLabel","tooltipContainer","placement","deleteDialogStyles","customDialogSize","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","dispatch","useAppDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","onlineCount","offlineCount","icon","okStatusText","notOkStatusText","fontFamily","cursor","flex","flexFlow","xl","lg","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","widgetType","colorsMain","niceDaysFromNS","seconds","niceDays","roundNumber","parseInt","toString","panelsConfiguration","data","simpleWidget","widgetIcon","labelDisplayFunction","dataOuter","name","widgetConfiguration","outerChart","colorList","innerRadius","outerRadius","startAngle","endAngle","innerChart","pieChart","innerLabel","niceBytes","dataKey","keyLabel","lineColor","fillColor","areaGraph","yAxisFormatter","xAxisFormatter","getTimeFromTimestamp","background","greatestColor","customStructure","originTag","displayTag","barChart","singleRep","strokeWidth","linearGraph","HealIcon","DiagnosticsIcon","disableYAxis","mergedPanels","singleValue","calculateMainValue","elements","metricCalc","sumValues","reduce","accumulator","currValue","parseFloat","Math","floor","sortResult","sort","value1","value2","widgetDetailsToPanel","payloadData","panelItem","typeOfPayload","get","valueDisplay","chartSeries","filter","seriesItem","values","map","chartTarget","result","Array","isArray","elementValue","metricKeyItem","Object","keys","metric","metricName","legend","legendFormat","firstTarget","totalValues","targets","series","plotValues","forEach","targetMaster","index","results","itemVals","labelName","metrics","keysToReplace","expToReplace","RegExp","join","replacedLegend","replace","matchItem","nwMatchItem","countVarsOpen","match","countVarsClose","cleanLegend","element","constructLabelNames","keyName","push","valInfo","itemIndex","findIndex","itemToPush","seriesWithColors","series1","series2","serialC","textToRGBColor","sortedVals","chartBars","sortFunction","structureItem","metricTake","find","lastValue","a","valuesForBackground","eachVal","splitSizeMetric","val","splittedText","split","vl","isNaN","representationNumber","units","tabSubStyles","makeStyles","tabRoot","selected","indicator","scroller","selectedTab","tabOptions","subStyles","Tabs","indicatorColor","textColor","scrollButtons","e","newValue","option","Tab","key","tooltipCommon","active","payload","barChartConfiguration","customTooltip","timeStampTitle","pl","labelContainer","labelColor","style","itemValue","valueContainer","Box","href","rel","preventDefault","openZoomPage","ZoomOutMap","Z","CustomizedAxisTick","y","textAnchor","transform","dy","widgetCommon","loadingAlign","propLoading","apiPrefix","zoomActivated","loading","setLoading","setData","setResult","stepCalc","secondsInPeriod","unix","periods","api","then","res","widgetsWithValue","catch","err","setErrorSnackMessage","greatestIndex","currentValue","dataGraph","useTheme","biggerThanMd","useMediaQuery","breakpoints","up","singleValueContainer","titleContainer","Loader","zoomChartCont","contentContainer","ResponsiveContainer","BarChart","layout","barCategoryGap","XAxis","hide","YAxis","interval","tick","tickLine","axisLine","bar","Bar","barSize","_","Cell","Tooltip","linearConfiguration","verticalAlignment","flexDirection","chartCont","legendChart","maxHeight","overflowY","hideYAxis","areaWidget","var1","var2","dataMax","setDataMax","maxVal","dp","intervalCount","CustomizedDot","prop","cx","cy","r","dspLongDate","AreaChart","right","bottom","x1","y1","x2","y2","offset","stopColor","stopOpacity","CartesianGrid","strokeDasharray","strokeOpacity","stroke","vertical","tickFormatter","tickCount","domain","section","Area","isAnimationActive","fillOpacity","strokeLinecap","dot","wrapperStyle","zIndex","singleLegendContainer","colorContainer","legendLabel","pieChartLabel","chartContainer","dataInner","setDataInner","setDataOuter","pieChartConfiguration","middleLabel","innerColors","outerColors","PieChart","Pie","entry","connector","connect","mainWidgetContainer","widgetLabel","textTransform","widgetValue","iconWidget","renderFn","valueToRender","overflow","enterDelay","textOverflow","repNumber","resultRep","lineHeight","titleElement","containerAlignment","totalUsableFree","setTotalUsableFree","totalUsableFreeRatio","setTotalUsableFreeRatio","totalUsed","setTotalUsed","totalUsable","setTotalUsable","tUsable","tUsed","tFree","eachArray","itemSum","freeRatio","round","usedConvert","calculateBytes","capacityColors","alignSelf","animationDuration","total","unit","niceBytesInt","componentToUse","CmpToRender","HealActivityRenderer","ScanActivityRenderer","UptimeActivityRenderer","includes","ModalWrapper","closeZoomPage","summaryPanelsLayout","minWidth","columns","componentId","trafficPanelsLayout","flexShrink","resourcesPanelsLayout","resourcesPanelsLayoutAdvanced","RowPanelLayout","cardSubStyles","cardRoot","metricText","unitText","subHearderContainer","subMessage","headerContainer","viewAll","extraMargin","metricValue","metricUnit","moreLink","rightComponent","SubHeader","leftSide","rightSide","Header","to","Card","CardHeader","subheader","leftComponent","statLabel","statItemLeft","statItemRight","info","leftPanel","rightPanel","lStatItem","rStatItem","statIcon","rightCmp","leftCmp","dashboardRow","flexWrap","zoomOpen","dashboard","zoom","openZoom","zoomWidget","widgetRender","panelInformation","setPanelInformation","curTab","setCurTab","fetchUsage","useCallback","widgets","panelT","toLowerCase","trim","errorMessage","detailedError","renderPanelItems","layoutRows","prev","rowItem","rIdx","cellItems","cellItem","colIdx","panelInfo","renderCmpByConfig","panel","rowConfig","PageLayout","Grid","DateRangeSelector","ServerStatItem","statusColor","hasStatus","commonDashboardInfocard","server","networkKeys","drives","acc","network","endpoint","uptime","version","driveStatusColor","drive","totalSpace","usedSpace","wordBreak","availableSpace","React","expanded","setExpanded","handleClick","List","component","serverInfo","isExpanded","ListItemButton","ListSubheader","Collapse","in","timeout","unmountOnExit","driveInfo","counterValue","actions","usageValue","BoxItem","usage","usageToRepresent","undefined","prettyUsage","lastScan","lastHeal","upTime","serverList","servers","b","nameA","nameB","getServersList","allDrivesArray","drivesInput","serversGroup","groupBy","offline","offlineServers","online","onlineServers","drivesGroup","offlineDrives","ok","onlineDrives","gridTemplateRows","prometheusNotReady","HelpBox","colors","link","target","buckets","IAM_PAGES","textDecoration","RBIconButton","text","objects","StatusCountCard","gridRowStart","gridRowEnd","gridColumnStart","containerForHeader","spacing","basicResult","setBasicResult","PageHeader","LinearProgress","TabPanel","other","role","hidden"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1182.264ec55e.chunk.js b/portal-ui/build/static/js/1182.264ec55e.chunk.js
deleted file mode 100644
index ebcbc3d95..000000000
--- a/portal-ui/build/static/js/1182.264ec55e.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1182],{23804:function(e,t,i){i(72791);var n=i(11135),a=i(25787),l=i(61889),r=i(80184);t.Z=(0,a.Z)((function(e){return(0,n.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,i=e.iconComponent,n=e.title,a=e.help;return(0,r.jsx)("div",{className:t.root,children:(0,r.jsxs)(l.ZP,{container:!0,children:[(0,r.jsxs)(l.ZP,{item:!0,xs:12,className:t.leftItems,children:[i,n]}),(0,r.jsx)(l.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},63856:function(e,t,i){var n=i(1413),a=(i(72791),i(11135)),l=i(25787),r=i(64554),o=i(61889),s=i(36151),d=i(27197),c=i(32686),x=i(23814),u=i(80705),p=i(85090),f=i(15900),h=i(80184),m=function(){return(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px"}},children:(0,h.jsx)(f.Q2V,{})})};t.Z=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},x.OR),x.bN),{},{syncButton:{"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type":{fontSize:18}},schedulerIcon:{opacity:.4,fontSize:10,"& svg":{width:18,height:18}},selectorLabel:{color:"#9D9E9D",fontWeight:"bold",whiteSpace:"nowrap",marginLeft:10,fontSize:12}}))}))((function(e){var t=e.classes,i=e.timeStart,n=e.setTimeStart,a=e.timeEnd,l=e.setTimeEnd,x=e.triggerSync,f=e.label,g=void 0===f?"Filter:":f,v=e.startLabel,j=void 0===v?"Start Time:":v,b=e.endLabel,y=void 0===b?"End Time:":b;return(0,h.jsx)(o.ZP,{item:!0,xs:12,sx:{"& .filter-date-input-label, .end-time-input-label":{display:"none"},"& .MuiInputBase-adornedEnd.filter-date-date-time-input":{width:"100%",border:"1px solid #eaeaea",paddingLeft:"8px",paddingRight:"8px",borderRadius:"1px"},"& .MuiInputAdornment-root button":{height:"20px",width:"20px",marginRight:"5px"},"& .filter-date-input-wrapper":{height:"30px",width:"100%","& .MuiTextField-root":{height:"30px",width:"90%","& input.Mui-disabled":{color:"#000000",WebkitTextFillColor:"#101010"}}}},children:(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},alignItems:"center",gridTemplateColumns:{md:"auto 2fr auto",sm:"1fr"},padding:{md:"0",xs:" 5px"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{fontSize:"14px",fontWeight:500,marginRight:"5px"},children:g}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},border:{md:"1px solid #eaeaea"},alignItems:"center",gridTemplateColumns:{md:"1fr 1fr",sm:"1fr"},gap:"8px",paddingLeft:"8px",paddingRight:"8px"},children:[(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(d.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:j}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:i,onChange:n,id:"stTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(c.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:y}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:a,onChange:l,id:"endTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]})]}),x&&(0,h.jsx)(r.Z,{sx:{alignItems:"flex-end",display:"flex",justifyContent:"flex-end",marginRight:"35px"},children:(0,h.jsx)(s.Z,{type:"button",variant:"contained",color:"primary",onClick:x,endIcon:(0,h.jsx)(p.Z,{}),className:t.syncButton,children:"Sync"})})]})})}))},80705:function(e,t,i){var n=i(1413),a=i(72791),l=i(27391),r=i(61889),o=i(30829),s=i(20068),d=i(49979),c=i(69783),x=i(71652),u=i(63466),p=i(27197),f=i(11135),h=i(25787),m=i(84570),g=i(23814),v=i(33976),j=i(80184);t.Z=(0,h.Z)((function(e){return(0,f.Z)((0,n.Z)((0,n.Z)({dateSelectorOverride:{height:40,border:"#EAEDEE 1px solid",marginLeft:15,backgroundColor:"#fff",padding:"0 16px",borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{borderColor:"#000","&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:600,color:"#393939"}},dateSelectorFilterOverride:{width:180,height:42,marginLeft:20,padding:0,borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{"&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:"bold",color:"#081C42"},"@media (max-width: 900px)":{width:103}},dateSelectorFormOverride:{width:"100%",maxWidth:840},parentDateOverride:{flexGrow:1},textBoxContainer:{flexGrow:1},openListIcon:{color:"#9D9E9D",width:8,marginTop:2},paperOverride:{"& .MuiCalendarPicker-root":{padding:"0 22px","& > div":{padding:0,"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type":{color:"#0A224C",fontWeight:"bold"},"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type":{color:"#9D9E9D","& + button.MuiButtonBase-root":{color:"#9D9E9D"}},"& > div:nth-child(2)":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"}}}},"& .MuiTypography-root.MuiTypography-caption":{width:26,height:26,margin:5,color:"#BCBCBC",fontSize:10},"& button.MuiPickersDay-root":{fontWeight:"bold",width:26,height:26,margin:5,textAlign:"center","&.Mui-selected":{backgroundColor:e.palette.primary.main,color:"#fff"}},"& div.MuiPickersDay-hiddenDaySpacingFiller":{width:26,height:26,margin:5},"& div.PrivatePickersSlideTransition-root":{minHeight:240},"& div.MuiCalendarPicker-viewTransitionContainer":{borderTop:"#F0F3F5 1px solid"},"& .MuiClockPicker-arrowSwitcher":{marginRight:10,marginTop:-1,"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"},"& + div > div":{width:255,height:255,backgroundColor:"#fff",marginTop:30,marginBottom:14,border:"#F0F3F5 3px solid","& > div:nth-child(2)":{backgroundColor:"#B4B5B4",width:12,height:12,"&::before":{content:"' '",width:35,height:35,display:"block",position:"absolute",border:"#F0F3F5 3px solid",top:-12,left:-12,borderRadius:"100%"}},"& > div:nth-child(3)":{backgroundColor:"#B4B5B4",width:4},"& > div:last-of-type":{marginTop:15,"& > span":{color:"#0A224C","&.Mui-selected":{color:"#fff"},"&[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']":{fontWeight:"bold",fontSize:20,marginTop:-1}}}}}}},g.YI),g.Hr))}))((function(e){var t=e.value,i=e.onChange,f=e.classes,h=e.forSearchBlock,g=void 0!==h&&h,b=e.forFilterContained,y=void 0!==b&&b,Z=e.label,C=e.tooltip,w=void 0===C?"":C,S=e.required,E=e.id,N=e.disabled,T=void 0!==N&&N,F=e.noInputIcon,I=void 0!==F&&F,A=e.classNamePrefix,k=void 0===A?"":A,L=e.openPickerIcon,B={};I||(B={startAdornment:(0,j.jsx)(u.Z,{position:"start",children:(0,j.jsx)(p.Z,{})})}),y&&(B={endAdornment:(0,j.jsx)(u.Z,{position:"end",children:(0,j.jsx)(v.Z,{className:f.openListIcon})})});var R="".concat(k,"date-time-input ").concat(g?f.dateSelectorOverride:""," ").concat(y&&!g?f.dateSelectorFilterOverride:""),W=g?f.parentDateOverride:f.dateSelectorFormOverride,D=(0,j.jsx)(x._,{dateAdapter:c.Z,children:(0,j.jsx)(d.x,{value:t,onChange:i,InputProps:(0,n.Z)((0,n.Z)({},B),{},{className:R}),components:{OpenPickerIcon:L},label:"",className:W,disabled:T,renderInput:function(e){return(0,j.jsx)(l.Z,(0,n.Z)((0,n.Z)({id:E,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:f.paperOverride}})});if(g)return D;var z=y?"":f.fieldContainer;return(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(z," ").concat(k,"input-field-container "),children:[""!==Z&&(0,j.jsxs)(o.Z,{htmlFor:E,className:"".concat(f.inputLabel," ").concat(k,"input-label"),children:[(0,j.jsxs)("span",{children:[Z,S?"*":""]}),""!==w&&(0,j.jsx)("div",{className:f.tooltipContainer,children:(0,j.jsx)(s.Z,{title:w,placement:"top-start",children:(0,j.jsx)("div",{className:f.tooltip,children:(0,j.jsx)(m.Z,{})})})})]}),(0,j.jsx)("div",{className:"".concat(f.textBoxContainer," ").concat(k,"input-wrapper "),children:D})]})})}))},56028:function(e,t,i){var n=i(29439),a=i(1413),l=i(72791),r=i(60364),o=i(13400),s=i(55646),d=i(5574),c=i(65661),x=i(39157),u=i(11135),p=i(25787),f=i(23814),h=i(81551),m=i(29823),g=i(28057),v=i(87995),j=i(80184);t.Z=(0,p.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))((function(e){var t=e.onClose,i=e.modalOpen,u=e.title,p=e.children,f=e.classes,b=e.wideLimit,y=void 0===b||b,Z=e.noContentPadding,C=e.titleIcon,w=void 0===C?null:C,S=(0,h.TL)(),E=(0,l.useState)(!1),N=(0,n.Z)(E,2),T=N[0],F=N[1],I=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,l.useEffect)((function(){S((0,v.MK)(""))}),[S]),(0,l.useEffect)((function(){if(I){if(""===I.message)return void F(!1);"error"!==I.type&&F(!0)}}),[I]);var A=y?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},k="";return I&&(k=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(k=I.message)),(0,j.jsxs)(d.Z,(0,a.Z)((0,a.Z)({open:i,classes:f},A),{},{scroll:"paper",onClose:function(e,i){"backdropClick"!==i&&t()},className:f.root,children:[(0,j.jsxs)(c.Z,{className:f.title,children:[(0,j.jsxs)("div",{className:f.titleText,children:[w," ",u]}),(0,j.jsx)("div",{className:f.closeContainer,children:(0,j.jsx)(o.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,j.jsx)(m.Z,{})})})]}),(0,j.jsx)(g.Z,{isModal:!0}),(0,j.jsx)(s.Z,{open:T,className:f.snackBarModal,onClose:function(){F(!1),S((0,v.MK)(""))},message:k,ContentProps:{className:"".concat(f.snackBar," ").concat(I&&"error"===I.type?f.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,j.jsx)(x.Z,{className:Z?"":f.content,children:p})]}))}))},31300:function(e,t,i){i(72791);var n=i(64554),a=i(15900),l=i(80184);t.Z=function(e){var t=e.onlineCount,i=void 0===t?0:t,r=e.offlineCount,o=void 0===r?0:r,s=e.icon,d=void 0===s?null:s,c=e.label,x=void 0===c?"":c,u=e.okStatusText,p=void 0===u?"Online":u,f=e.notOkStatusText,h=void 0===f?"Offline":f;return(0,l.jsx)(n.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,l.jsx)(n.Z,{sx:{fontSize:"16px",fontWeight:600},children:x}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:i}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,l.jsx)(a.J$M,{}),(0,l.jsx)("div",{className:"stat-text",children:p})]})]}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:o}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"8px","& .min-icon":{fill:"#C83B51"}},children:[(0,l.jsx)(a.J$M,{})," ",(0,l.jsx)("div",{className:"stat-text",children:h})]})]})]})]}),(0,l.jsx)(n.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:d})]})})}},879:function(e,t,i){i.d(t,{D_:function(){return r},Et:function(){return a},GJ:function(){return l},yh:function(){return n}});var n={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},a=function(e,t){return e<=t/2?n.RED:2!==t&&e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0},l=function(e){switch(e){case"offline":return n.RED;case"online":return n.GREEN;default:return n.YELLOW}},r=function(e,t){return e<=t/2?n.RED:e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0}},21182:function(e,t,i){i.r(t),i.d(t,{default:function(){return mt}});var n,a=i(29439),l=i(1413),r=i(72791),o=i(26181),s=i.n(o),d=i(93433),c=i(60364),x=i(61889),u=i(11135),p=i(25787),f=i(64554),h=i(23814);!function(e){e.singleValue="singleValue",e.linearGraph="linearGraph",e.areaGraph="areaGraph",e.barChart="barChart",e.pieChart="pieChart",e.singleRep="singleRep",e.simpleWidget="simpleWidget"}(n||(n={}));var m=i(45248),g=i(51846),v=i(82332),j=i(15900),b=i(80184),y=["#C4D4E9","#DCD1EE","#D1EEE7","#EEDED1","#AAF38F","#F9E6C5","#C83B51","#F4CECE","#D6D6D6"],Z=function(e){return(0,m.v1)(e,"ns")},C=function(e){return parseInt(e).toString(10)},w=[{id:1,title:"Uptime",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(j.oNq,{}),labelDisplayFunction:m.v1},{id:50,title:"Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:51,title:"Usable Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:68,title:"Data Usage Growth",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.areaGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:52,title:"Object size distribution",data:[],widgetConfiguration:[{dataKey:"a",color:"#2781B0",background:{fill:"#EEF1F4"},greatestColor:"#081C42"}],customStructure:[{originTag:"LESS_THAN_1024_B",displayTag:"Less than 1024B"},{originTag:"BETWEEN_1024_B_AND_1_MB",displayTag:"Between 1024B and 1MB"},{originTag:"BETWEEN_1_MB_AND_10_MB",displayTag:"Between 1MB and 10MB"},{originTag:"BETWEEN_10_MB_AND_64_MB",displayTag:"Between 10MB and 64MB"},{originTag:"BETWEEN_64_MB_AND_128_MB",displayTag:"Between 64MB and 128MB"},{originTag:"BETWEEN_128_MB_AND_512_MB",displayTag:"Between 128MB and 512MB"},{originTag:"GREATER_THAN_512_MB",displayTag:"Greater than 512MB"}],type:n.barChart},{id:66,title:"Buckets",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:44,title:"Objects",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:63,title:"API Data Received Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000",strokeWidth:3}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:61,title:"Total Open FDs",data:[],innerLabel:"N/A",type:n.singleRep,color:"#22B573",fillColor:"#A6E8C4"},{id:62,title:"Total Goroutines",data:[],innerLabel:"N/A",type:n.singleRep,color:"#F7655E",fillColor:"#F4CECE"},{id:77,title:"Node CPU Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:60,title:"API Request Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:70,title:"API Data Sent Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:17,title:"Internode Data Transfer",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:73,title:"Node IO",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:80,title:"Time Since Last Heal Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(g.Z,{}),labelDisplayFunction:Z},{id:81,title:"Time Since Last Scan Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(v.Z,{}),labelDisplayFunction:Z},{id:71,title:"API Request Error Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue},{id:76,title:"Node Memory Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:74,title:"Drive Used Capacity",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:82,title:"Drives Free Inodes",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,disableYAxis:!0,xAxisFormatter:m.Ue},{id:11,title:"Node Syscalls",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:8,title:"Node File Descriptors",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:500,mergedPanels:[{id:53,title:"Online",data:"N/A",type:n.singleValue},{id:69,title:"Offline",data:"N/A",type:n.singleValue}],title:"Servers"},{id:501,mergedPanels:[{id:9,title:"Online",data:"N/A",type:n.singleValue},{id:78,title:"Offline",data:"N/A",type:n.singleValue}],title:"Drives"},{id:502,mergedPanels:[{id:65,title:"Upload",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae},{id:64,title:"Download",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae}],title:"Network"}],S=function(e,t){if(0===e.length)return["","0"];if("mean"===t){var i=e.reduce((function(e,t){return e+parseFloat(t[1])}),0);return["",Math.floor(i/e.length).toString()]}var n=e.sort((function(e,t){return e[0]-t[0]}));return n[n.length-1]},E=function(e,t){if(!e)return t;var i=e.type;switch(t.type){case n.singleValue:case n.simpleWidget:if("stat"===i||"singlestat"===i){var a=s()(e,"targets[0].result[0].values",[]);null===a&&(a=[]);var r=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),o=S(a,r),d=t.labelDisplayFunction?t.labelDisplayFunction(o[1]):o[1];return(0,l.Z)((0,l.Z)({},t),{},{data:d})}break;case n.pieChart:if("gauge"===i){var c=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),x=s()(e,"targets",[]).filter((function(e){return null!==e})),u=x.map((function(e){var t=(e.result&&Array.isArray(e.result)?e.result:[]).map((function(t){var i=s()(t,"values",[]),n=Object.keys(t.metric),a=i.sort((function(e,t){return parseInt(e[0][1])-parseInt(t[0][1])})),l=t.metric[n[0]],r=a[a.length-1];return{name:l,value:parseInt(r[1]),legend:e.legendFormat}}));return t})),p=x[0].result&&x[0].result.length>0?x[0].result[0].values:[],f=S(p,c),h=t.labelDisplayFunction?t.labelDisplayFunction(f[1]):f[1];return(0,l.Z)((0,l.Z)({},t),{},{data:u,innerLabel:h})}break;case n.linearGraph:case n.areaGraph:if("graph"===i){var g=s()(e,"targets",[]);null===g&&(g=[]);var v=[],j=[];g.forEach((function(e,t){var i=s()(e,"result",[]),n=e.legendFormat;null===i&&(i=[]),i.forEach((function(e){var i=function(e,t){var i=Object.keys(e),n=new RegExp("{{(".concat(i.join("|"),")}}"),"g"),a=t.replace(n,(function(t){var i=t.replace(/({{|}})/g,"");return e[i]})),l=(a.match(/{{/g)||[]).length,r=(a.match(/}}/g)||[]).length,o=a.replace(/{{(.*?)}}/g,"");return l===r&&0!==l&&0!==r&&(i.forEach((function(t){a=a.replace(t,e[t])})),o=a),o}(e.metric,n),a="key_".concat(t).concat(i);v.push({dataKey:a,keyLabel:i,lineColor:"",fillColor:""});var l=s()(e,"values",[]);null===l&&(l=[]),l.forEach((function(e){var t=j.findIndex((function(t){return t.name===e[0]}));if(-1===t){var i={name:e[0]};i[a]=e[1],j.push(i)}else j[t][a]=e[1]}))}))}));var b=v.sort((function(e,t){return e.keyLabelt.keyLabel?1:0})).map((function(e,t){return(0,l.Z)((0,l.Z)({},e),{},{lineColor:y[t]||(0,m.C5)(e.keyLabel),fillColor:y[t]||(0,m.C5)(e.keyLabel)})})),Z=j.sort((function(e,t){return e.name-t.name}));return(0,l.Z)((0,l.Z)({},t),{},{widgetConfiguration:b,data:Z})}break;case n.barChart:if("bargauge"===i){var C=s()(e,"targets[0].result",[]);null===C&&(C=[]);var w=function(e,t){return e[0]-t[0]},E=[];return E=t.customStructure?t.customStructure.map((function(e){var t=C.find((function(t){var i=Object.keys(t.metric);return t.metric[i[0]]===e.originTag})),i=s()(t,"values",[]).sort(w),n=i[i.length-1]||["","0"];return{name:e.displayTag,a:parseInt(n[1])}})):C.map((function(e){var t=Object.keys(e.metric),i=e.metric[t[0]],n=s()(e,"values",[]).sort(w),a=n[n.length-1]||["","0"];return{name:i,a:parseInt(a[1])}})),(0,l.Z)((0,l.Z)({},t),{},{data:E})}break;case n.singleRep:if("stat"===i){var N=s()(e,"targets[0].result[0].values",[]);null===N&&(N=[]);var T=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),F=S(N,T),I=N.sort((function(e,t){return e[0]-t[0]})),A=[];1===I.length&&A.push({value:0}),I.forEach((function(e){A.push({value:parseInt(e[1])})}));var k=t.labelDisplayFunction?t.labelDisplayFunction(F[1]):F[1];return(0,l.Z)((0,l.Z)({},t),{},{data:A,innerLabel:k})}}return t},N=function(e){var t=e.split(" "),i=function(){var t=e;return isNaN(parseFloat(e))||(t=(0,m.nk)(parseFloat(e))),(0,b.jsx)(r.Fragment,{children:t})};return 2!==t.length?i():m.Dl.includes(t[1])?(0,b.jsxs)("span",{className:"commonValue",children:[t[0],(0,b.jsx)("span",{className:"unitText",children:t[1]})]}):i()},T=i(19847),F=i(81207),I=i(72455),A=i(18073),k=i(43896),L=(0,I.Z)({tabRoot:{height:"40px",borderBottom:"1px solid #eaeaea"},root:{width:"120px",backgroundColor:"transparent",paddingTop:0,paddingBottom:0,fontSize:"14px",fontWeight:600,color:"#07193E",height:"40px"},selected:{"&.MuiTab-selected":{backgroundColor:"#F6F7F7 !important"},"&.MuiTab-wrapper":{color:"#07193E",fontWeight:600}},indicator:{background:"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;",height:2},scroller:{maxWidth:1185,position:"relative","&::after":{content:'" "',backgroundColor:"#EEF1F4",height:2,width:"100%",display:"block"}}}),B=function(e){var t=e.selectedTab,i=e.onChange,n=e.tabOptions,a=L();return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(A.Z,{indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",value:t,onChange:function(e,t){i(t)},classes:{root:a.tabRoot,indicator:a.indicator,scroller:a.scroller},children:n.map((function(e,t){var i={label:e.label};return e.value&&(i=(0,l.Z)((0,l.Z)({},i),{},{value:e.value})),e.disabled&&(i=(0,l.Z)((0,l.Z)({},i),{},{disabled:e.disabled})),(0,r.createElement)(k.Z,(0,l.Z)((0,l.Z)({},i),{},{classes:{root:a.root,selected:a.selected},id:"simple-tab-".concat(t),"aria-controls":"simple-tabpanel-".concat(t),key:"tab-".concat(t,"-").concat(e.label)}))}))})})},R=i(19913),W=i(38725),D=i(90466),z=i(12891),P=i(24714),M=i(41048),O=i(35667),G=i(95193),U=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.barChartConfiguration,l=e.classes;return t?(0,b.jsxs)("div",{className:l.customTooltip,children:[(0,b.jsx)("div",{className:l.timeStampTitle,children:n}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:l.labelContainer,children:[(0,b.jsx)("div",{className:l.labelColor,style:{backgroundColor:a[t].color}}),(0,b.jsx)("div",{className:l.itemValue,children:(0,b.jsx)("span",{className:l.valueContainer,children:e.value})})]},"pltiem-".concat(t,"-").concat(n))}))]}):null})),_=i(29598),K=i(72401),V=i(64119),H=i(71080),$=i(81551),Y=function(e){var t=e.panelItem,i=(0,$.TL)();return(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"10px","& .link-text":{color:"#2781B0",fontSize:"12px",fontWeight:600},"& .zoom-graph-icon":{backgroundColor:"transparent",border:0,padding:0,cursor:"pointer","& svg":{color:"#D0D0D0",height:16},"&:hover":{"& svg":{color:"#404143"}}}},children:[(0,b.jsx)("a",{href:"void:(0);",rel:"noreferrer noopener",className:"link-text",onClick:function(e){e.preventDefault(),i((0,H.xG)(t))},children:"Expand Graph"}),(0,b.jsx)("button",{onClick:function(){i((0,H.xG)(t))},className:"zoom-graph-icon",children:(0,b.jsx)(V.Z,{})})]})},J=i(87995),q=function(e){var t=e.y,i=e.payload;return(0,b.jsx)("text",{width:50,fontSize:"69.7%",textAnchor:"start",fill:"#333",transform:"translate(5,".concat(t,")"),fontWeight:400,dy:3,children:i.value})},Q=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{loadingAlign:{width:"100%",paddingTop:"15px",textAlign:"center",margin:"auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.panelItem,l=e.timeStart,o=e.timeEnd,s=e.propLoading,d=e.apiPrefix,c=e.zoomActivated,x=void 0!==c&&c,u=(0,$.TL)(),p=(0,r.useState)(!0),f=(0,a.Z)(p,2),h=f[0],m=f[1],g=(0,r.useState)([]),v=(0,a.Z)(g,2),j=v[0],y=v[1],Z=(0,r.useState)(null),C=(0,a.Z)(Z,2),w=C[0],S=C[1];(0,r.useEffect)((function(){s&&m(!0)}),[s]),(0,r.useEffect)((function(){if(h){var e=0;if(null!==l&&null!==o){var t=o.unix()-l.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(n.id,"/?step=").concat(e,"&").concat(null!==l?"&start=".concat(l.unix()):"").concat(null!==l&&null!==o?"&":"").concat(null!==o?"end=".concat(o.unix()):"")).then((function(e){var t=E(e,n);y(t.data),S(t),m(!1)})).catch((function(e){u((0,J.Ih)(e)),m(!1)}))}}),[h,n,o,l,u,d]);var N=w?w.widgetConfiguration:[],T=0,I=0;if(1===N.length){var A=N[0];j.forEach((function(e,t){e[A.dataKey]>I&&(I=e[A.dataKey],T=t)}))}var k=(0,_.Z)(),L=(0,G.Z)(k.breakpoints.up("md"));return(0,b.jsxs)("div",{className:x?"":t.singleValueContainer,children:[!x&&(0,b.jsxs)("div",{className:t.titleContainer,children:[i," ",(0,b.jsx)(Y,{panelItem:n})]}),h&&(0,b.jsx)("div",{className:t.loadingAlign,children:(0,b.jsx)(K.Z,{})}),!h&&(0,b.jsx)("div",{className:x?t.zoomChartCont:t.contentContainer,children:(0,b.jsx)(R.h,{width:"99%",children:(0,b.jsxs)(W.v,{data:j,layout:"vertical",barCategoryGap:1,children:[(0,b.jsx)(D.K,{type:"number",hide:!0}),(0,b.jsx)(z.B,{dataKey:"name",type:"category",interval:0,tick:(0,b.jsx)(q,{}),tickLine:!1,axisLine:!1,width:150,hide:!L,style:{fontSize:"12px",fontWeight:100}}),N.map((function(e){return(0,b.jsx)(P.$,{dataKey:e.dataKey,fill:e.color,background:e.background,barSize:x?25:12,children:1===N.length?(0,b.jsx)(r.Fragment,{children:j.map((function(t,i){return(0,b.jsx)(M.b,{fill:i===T?e.greatestColor:e.color},"chart-bar-".concat(i.toString()))}))}):null},"bar-".concat(e.dataKey))})),(0,b.jsx)(O.u,{cursor:{fill:"rgba(255, 255, 255, 0.3)"},content:(0,b.jsx)(U,{barChartConfiguration:N})})]})})})]})})),X=i(37762),ee=i(28265),te=i(82839),ie=i(18602),ne=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.linearConfiguration,l=e.yAxisFormatter,r=e.classes;return t?(0,b.jsxs)("div",{className:r.customTooltip,children:[(0,b.jsx)("div",{className:r.timeStampTitle,children:(0,m.Ue)(n,!0)}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:r.labelContainer,children:[(0,b.jsx)("div",{className:r.labelColor,style:{backgroundColor:a[t].lineColor}}),(0,b.jsx)("div",{className:r.itemValue,children:(0,b.jsxs)("span",{className:r.valueContainer,children:[a[t].keyLabel,":"," ",l(e.value)]})})]},"lbPl-".concat(t,"-").concat(a[t].keyLabel))}))]}):null})),ae=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{verticalAlignment:{flexDirection:"column"},chartCont:{position:"relative",height:140,width:"100%"},legendChart:{display:"flex",flexDirection:"column",flex:"0 1 auto",maxHeight:130,margin:0,overflowY:"auto",position:"relative",textAlign:"center",width:"100%",justifyContent:"flex-start",color:"#404143",fontWeight:"bold",fontSize:12},loadingAlign:{width:40,height:40,textAlign:"center",margin:"15px auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.timeStart,l=e.timeEnd,o=e.propLoading,s=e.panelItem,d=e.apiPrefix,c=e.hideYAxis,x=void 0!==c&&c,u=e.areaWidget,p=void 0!==u&&u,h=e.yAxisFormatter,m=void 0===h?function(e){return e}:h,g=e.xAxisFormatter,v=void 0===g?function(e){return e}:g,j=e.zoomActivated,y=void 0!==j&&j,Z=(0,$.TL)(),C=(0,r.useState)(!0),w=(0,a.Z)(C,2),S=w[0],N=w[1],T=(0,r.useState)([]),I=(0,a.Z)(T,2),A=I[0],k=I[1],L=(0,r.useState)(0),B=(0,a.Z)(L,2),W=B[0],P=B[1],M=(0,r.useState)(null),U=(0,a.Z)(M,2),V=U[0],H=U[1];(0,r.useEffect)((function(){o&&N(!0)}),[o]),(0,r.useEffect)((function(){if(S){var e=0;if(null!==n&&null!==l){var t=l.unix()-n.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(s.id,"/?step=").concat(e,"&").concat(null!==n?"&start=".concat(n.unix()):"").concat(null!==n&&null!==l?"&":"").concat(null!==l?"end=".concat(l.unix()):"")).then((function(e){var t=E(e,s);k(t.data),H(t),N(!1);var i,n=0,a=(0,X.Z)(t.data);try{for(a.s();!(i=a.n()).done;){var l=i.value;for(var r in l)if("name"!==r){var o=parseInt(l[r]);isNaN(o)&&(o=0),n5&&void 0!==arguments[5]&&arguments[5];switch(e.type){case n.singleValue:return(0,b.jsx)(ge,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.simpleWidget:var o,s=null;return 80===e.id?s=be:81===e.id?s=ye:1===e.id&&(s=Ze),[80,81,1].includes(e.id)&&(o=function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id,l=e.iconWidget;return(0,b.jsx)(s,{valueToRender:t,loading:i,title:n,id:a,iconWidget:l})}),(0,b.jsx)(de,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,iconWidget:e.widgetIcon,renderFn:o});case n.pieChart:return 50===e.id?(0,b.jsx)(ce,{children:(0,b.jsx)(ve,{value:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l})}):(0,b.jsx)(oe,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.linearGraph:case n.areaGraph:return(0,b.jsx)(ae,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,hideYAxis:e.disableYAxis,xAxisFormatter:e.xAxisFormatter,yAxisFormatter:e.yAxisFormatter,apiPrefix:l,areaWidget:e.type===n.areaGraph,zoomActivated:r});case n.barChart:return(0,b.jsx)(Q,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,zoomActivated:r});case n.singleRep:var d=e.fillColor?e.fillColor:e.color;return(0,b.jsx)(he,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,color:e.color,fillColor:d,apiPrefix:l});default:return null}},we=i(56028),Se=function(e){var t=e.value,i=e.modalOpen,n=e.timeStart,a=e.timeEnd,l=e.apiPrefix,o=(0,$.TL)();return t?(0,b.jsx)(we.Z,{title:t.title,onClose:function(){o((0,H.jv)())},modalOpen:i,wideLimit:!1,noContentPadding:!0,children:(0,b.jsx)(r.Fragment,{children:Ce(t,n,a,!0,l,!0)})}):null},Ee=i(63856),Ne=[{sx:{minWidth:0,display:"grid",gridTemplateColumns:{md:"1fr 1fr 1fr 1fr",sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:66},{componentId:44},{componentId:500},{componentId:501}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:50},{componentId:502}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:80},{componentId:81},{componentId:1}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:68},{componentId:52}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:63},{componentId:70}]}],Te=[{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:60}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:71,sx:{flex:1,width:"50%",flexShrink:0}},{componentId:17,sx:{flex:1,width:"50%",flexShrink:0}}]},{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:73}]}],Fe=[{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:76},{componentId:77}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:82},{componentId:74}]}],Ie=[{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:11},{componentId:8}]}],Ae=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},children:t})},ke=i(57621),Le=i(9585),Be=i(43504),Re=(0,I.Z)({root:{backgroundColor:"#fff",padding:0},title:(0,l.Z)({},h.NP.titleContainer),content:{maxWidth:"100%"}}),We=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{cardRoot:(0,l.Z)((0,l.Z)({},h.NP.singleValueContainer),{},{"&.MuiPaper-root":{borderRadius:10}}),metricText:{fontSize:70,lineHeight:1.1,color:"#07193E",fontWeight:"bold"},unitText:{fontSize:10,color:"#767676",fontWeight:"normal"},subHearderContainer:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center"},subMessage:{fontSize:10,color:"#767676","&.bold":{fontWeight:"bold"}},headerContainer:{display:"flex",justifyContent:"space-between"},viewAll:{fontSize:10,color:"#C83B51",textTransform:"capitalize","& a, & a:hover, & a:visited, & a:active":{color:"#C83B51"}},extraMargin:{margin:"10px 20px 10px 0"}}))}))((function(e){var t=e.title,i=e.metricValue,n=e.metricUnit,a=e.subMessage,l=e.moreLink,o=e.rightComponent,s=e.extraMargin,d=void 0!==s&&s,c=e.classes,x=Re(),u=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.subHearderContainer,children:[(0,b.jsxs)("div",{className:c.leftSide,children:[(0,b.jsx)("div",{children:(0,b.jsxs)("span",{className:c.metricText,children:[i,(0,b.jsx)("span",{className:c.unitText,children:n})]})}),a&&(0,b.jsx)("div",{className:"".concat(c.subMessage," ").concat(a.fontWeight?a.fontWeight:""),children:a.message})]}),(0,b.jsx)("div",{className:c.rightSide,children:o})]})})},p=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.headerContainer,children:[(0,b.jsx)("span",{className:c.title,children:t}),l&&(0,b.jsx)(r.Fragment,{children:(0,b.jsx)("span",{className:c.viewAll,children:(0,b.jsx)(Be.rU,{to:l,children:"View All"})})})]})})};return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(ke.Z,{className:"".concat(c.cardRoot," ").concat(d?c.extraMargin:""),children:""!==i&&(0,b.jsx)(Le.Z,{title:(0,b.jsx)(p,{}),subheader:(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(u,{})}),classes:{root:x.root,title:x.title,content:x.content}})})})})),De=function(e){var t=e.title,i=e.leftComponent,n=e.rightComponent;return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(We,{title:t,metricValue:i,rightComponent:n})})},ze=function(e){var t=e.panelItem,i=e.timeStart,n=e.timeEnd,l=e.propLoading,o=e.apiPrefix,s=e.statLabel,d=(0,$.TL)(),c=(0,r.useState)(!0),x=(0,a.Z)(c,2),u=x[0],p=x[1],h=(0,r.useState)(""),m=(0,a.Z)(h,2),g=m[0],v=m[1];return(0,r.useEffect)((function(){l&&p(!0)}),[l]),(0,r.useEffect)((function(){if(u){var e=0;if(null!==i&&null!==n){var a=n.unix()-i.unix(),l=Math.floor(a/60);e=l<1?15:l}F.Z.invoke("GET","/api/v1/".concat(o,"/info/widgets/").concat(t.id,"/?step=").concat(e,"&").concat(null!==i?"&start=".concat(i.unix()):"").concat(null!==i&&null!==n?"&":"").concat(null!==n?"end=".concat(n.unix()):"")).then((function(e){var i=E(e,t);v(i.data),p(!1)})).catch((function(e){d((0,J.Ih)(e)),p(!1)}))}}),[u,t,n,i,d,o]),u?(0,b.jsx)(f.Z,{sx:{width:"100%",paddingTop:"5px",textAlign:"center",margin:"auto"},children:(0,b.jsx)(K.Z,{style:{width:12,height:12}})}):(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{className:"stat-value",children:g}),s]})},Pe=function(e){var t=e.statItemLeft,i=void 0===t?null:t,n=e.statItemRight,a=void 0===n?null:n,l=e.icon,r=void 0===l?null:l,o=e.label,s=void 0===o?"":o;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:s}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[i,a]})]}),(0,b.jsx)(f.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:r})]})})},Me=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.id,c=(0,a.Z)(s,2),x=c[0],u=c[1],p=(0,b.jsx)(ze,{panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Online"})]})}),h=(0,b.jsx)(ze,{panelItem:u,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#C83B51"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Offline"})]})}),m=null,g="";return 500===d?(m=(0,b.jsx)(j.SBZ,{}),g="Servers"):501===d&&(m=(0,b.jsx)(j.FU8,{}),g="Drives"),(0,b.jsx)(Pe,{statItemLeft:p,statItemRight:h,icon:m,label:g})},Oe=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"10px",gap:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#4ccb92"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969"},children:"GET"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.vUj,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Ge=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"10px",alignItems:"center",marginTop:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#2781b0"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969",fontWeight:"normal"},children:"PUT"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.Uxq,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Ue=function(e){var t=e.value,i=e.timeStart,n=e.timeEnd,l=e.propLoading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=(0,a.Z)(s,2),c=d[0],x=d[1],u=(0,b.jsx)(ge,{title:t.title,panelItem:c,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Ge,{value:t,loading:i,title:n,id:a})}}),p=(0,b.jsx)(ge,{title:t.title,panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Oe,{value:t,loading:i,title:n,id:a})}});return(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"},gap:"15px","& .unitText":{fontSize:"14px",color:"#5E5E5E",marginLeft:"5px"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:"Network"}),(0,b.jsx)(f.Z,{sx:{position:"relative",width:110,height:110,marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{position:"absolute",display:"flex",flexFlow:"column",alignItems:"center",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:p})}),(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center","& .value":{fontSize:"50px",fontFamily:"Lato"},"& .unit":{color:"#5E5E5E",fontSize:"18px",marginLeft:"12px",marginTop:"10px"}},children:u})}),(0,b.jsx)(f.Z,{sx:{marginLeft:"15px",height:"100%",display:"flex",alignItems:"flex-start","& .min-icon":{height:"15px",width:"15px"}},children:(0,b.jsx)(j.QBB,{})})]})},_e=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.title,c=void 0===d?"":d,x=t.id,u=(0,a.Z)(s,2),p=u[0],f=u[1];return[500,501].includes(x)?(0,b.jsx)(ce,{children:(0,b.jsx)(Me,{info:t,timeStart:i,timeEnd:n,loading:l,apiPrefix:r})}):502===x?(0,b.jsx)(ce,{children:(0,b.jsx)(Ue,{apiPrefix:r,timeEnd:n,timeStart:i,value:t,propLoading:l})}):(0,b.jsx)(De,{title:c,leftComponent:Ce(p,i,n,l,r),rightComponent:Ce(f,i,n,l,r)})},Ke=i(74794),Ve=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},h.OR),h.bN),{},{dashboardRow:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap"}}))}))((function(e){var t=e.apiPrefix,i=void 0===t?"admin":t,n=(0,$.TL)(),l=(0,c.v9)((function(e){return e.dashboard.zoom.openZoom})),o=(0,c.v9)((function(e){return e.dashboard.zoom.widgetRender})),s=(0,r.useState)(null),u=(0,a.Z)(s,2),p=u[0],h=u[1],m=(0,r.useState)(null),g=(0,a.Z)(m,2),v=g[0],j=g[1],y=(0,r.useState)(!0),Z=(0,a.Z)(y,2),C=Z[0],S=Z[1],N=(0,r.useState)(w),I=(0,a.Z)(N,2),A=I[0],k=I[1],L=(0,r.useState)(0),R=(0,a.Z)(L,2),W=R[0],D=R[1],z=(0,r.useCallback)((function(){var e=0;if(null!==p&&null!==v){var t=v.unix()-p.unix(),a=Math.floor(t/60);e=a<1?15:a}F.Z.invoke("GET","/api/v1/".concat(i,"/info?step=").concat(e,"&").concat(null!==p?"&start=".concat(p.unix()):"").concat(null!==p&&null!==v?"&":"").concat(null!==v?"end=".concat(v.unix()):"")).then((function(e){if(e.widgets){var t=(i=e.widgets,w.map((function(e){var t=i.find((function(t){return t.title.toLowerCase().trim()===e.title.toLowerCase().trim()}));return E(t,e)})));k(t)}else n((0,J.Ih)({errorMessage:"Widget information could not be retrieved at this time. Please try again",detailedError:""}));var i;S(!1)})).catch((function(e){n((0,J.Ih)(e)),S(!1)}))}),[p,v,n,i]);(0,r.useEffect)((function(){C&&z()}),[C,z]);var P=function(e){return e.reduce((function(e,t,n){var a=t.columns,l=(void 0===a?[]:a).map((function(e,t){var a;return function(e,t){return(0,b.jsx)(r.Fragment,{children:e?(0,b.jsx)(r.Fragment,{children:e.mergedPanels?(0,b.jsx)(_e,{info:e,timeStart:p,timeEnd:v,loading:C,apiPrefix:i}):Ce(e,p,v,C,i)}):null},"widget-".concat(t))}((a=e.componentId,A.find((function(e){return e.id===a}))),"".concat(n,"-").concat(t))})),o=(0,b.jsx)(f.Z,{sx:t.sx,children:l},"layout-row-".concat(n));return[].concat((0,d.Z)(e),[o])}),[])};return(0,b.jsxs)(Ke.Z,{children:[l&&(0,b.jsx)(Se,{modalOpen:l,timeStart:p,timeEnd:v,widgetRender:0,value:o,apiPrefix:i}),(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)(B,{selectedTab:W,onChange:function(e){D(e)},tabOptions:[{label:"Usage"},{label:"Traffic"},{label:"Resources"}]})}),(0,b.jsxs)(x.ZP,{item:!0,xs:12,sx:{paddingTop:"20px"},children:[(0,b.jsx)(f.Z,{sx:{marginBottom:"20px"},children:(0,b.jsx)(Ee.Z,{timeStart:p,setTimeStart:h,timeEnd:v,setTimeEnd:j,triggerSync:function(){S(!0)}})}),(0,b.jsx)(T.x,{index:0,value:W,children:(0,b.jsx)(Ae,{children:A.length?P(Ne):null})}),(0,b.jsx)(T.x,{index:1,value:W,children:(0,b.jsx)(Ae,{children:A.length?P(Te):null})}),(0,b.jsx)(T.x,{index:2,value:W,children:(0,b.jsxs)(Ae,{children:[A.length?P(Fe):null,(0,b.jsx)("h2",{style:{margin:0,borderBottom:"1px solid #dedede"},children:"Advanced"}),A.length?P(Ie):null]})})]})]})})),He=i(32291),$e=i(40986),Ye=i(23804),Je=i(31300),qe=i(98444),Qe=i.n(qe),Xe=i(79834),et=i(90493),tt=i(76278),it=i(56125),nt=i(879),at=function(e){var t=e.label,i=void 0===t?"":t,n=e.value,a=void 0===n?"":n,l=e.statusColor,r=void 0===l?"":l,o=e.hasStatus,s=void 0!==o&&o;return(0,b.jsx)(f.Z,{sx:{alignItems:"baseline",padding:"5px",display:"flex",gap:"5px"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column","& .stat-text":{color:"#5E5E5E",fontSize:"12px"},"& .stat-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsxs)("div",{className:"stat-value",children:[a," ",(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column",marginLeft:"5px",maxWidth:"40px","&:first-of-type(svg)":{fill:"#848484"}},children:s?(0,b.jsx)(f.Z,{sx:{marginRight:"0px",justifyContent:"center",alignItems:"center",textAlign:"center","& svg.min-icon":{fill:r,width:"10px",height:"10px"}},children:(0,b.jsx)(j.J$M,{})}):(0,b.jsx)(f.Z,{sx:{width:"12px",height:"12px"}})})]}),(0,b.jsx)("div",{className:"stat-text",children:i})]})})},lt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.server,i=Object.keys(s()(t,"network",{})),n=i.length,a=t.drives?t.drives.length:0,l=i.reduce((function(e,i){return"online"===t.network[i]?e+1:e}),0),r=t.drives?t.drives.filter((function(e){return"ok"===e.state})).length:0;return(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"flex-start",flexFlow:"column",flex:1},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",padding:"3px",gap:"15px",justifyContent:"space-between",width:"100%",paddingLeft:"20px",flexFlow:{sm:"row",xs:"column"}},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,b.jsx)(f.Z,{sx:{fontWeight:600,textTransform:"none"},children:t.endpoint||""}),(null===t||void 0===t?void 0:t.state)&&(0,b.jsx)(f.Z,{sx:{marginLeft:"8px","& .min-icon":{fill:(0,nt.GJ)(t.state),height:"14px",width:"14px"}},children:(0,b.jsx)(j.J$M,{})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flex:"1.5",gap:{md:"5%",xs:"5%"}},children:[(0,b.jsx)(at,{statusColor:(0,nt.Et)(r,a),label:"Drives",hasStatus:!0,value:"".concat(r,"/").concat(a)}),(0,b.jsx)(at,{statusColor:(0,nt.D_)(l,n),label:"Network",hasStatus:!0,value:"".concat(l,"/").concat(n)}),(0,b.jsx)(at,{statusColor:"green",label:"Up time",value:null!==t&&void 0!==t&&t.uptime?(0,m.v1)(t.uptime):"N/A"})]}),(0,b.jsx)(at,{statusColor:"green",label:"",value:(0,b.jsxs)(f.Z,{sx:{background:"rgb(235, 236, 237)",color:"#000000",paddingLeft:"10px",paddingRight:"10px",borderRadius:"2px",fontSize:"12px",marginTop:"5px","& .label":{fontWeight:600,marginRight:"3px"}},children:[(0,b.jsx)("span",{className:"label",children:"Version:"}),t.version?t.version:"N/A"]})})]})})})),rt=function(e){switch(e){case"offline":return nt.yh.RED;case"ok":return nt.yh.GREEN;default:return nt.yh.YELLOW}},ot=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.drive,i=[{value:t.totalSpace-t.usedSpace,color:"#D6D6D6",label:"Free Space"},{value:t.usedSpace,color:(0,m.hn)(t.usedSpace,t.totalSpace),label:"Used Space"}];return(0,b.jsx)(f.Z,{sx:{display:"flex",flex:1,alignItems:"center",paddingBottom:"10px",padding:"20px",border:"1px solid #eaeaea"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",marginLeft:"10px",flex:1},children:[(0,b.jsxs)(f.Z,{sx:{fontSize:"14px",fontWeight:400,display:"flex",alignItems:"center","& .min-icon":{marginRight:"10px",height:"10px",width:"10px",fill:rt(t.state),flexShrink:0},"& .drive-endpoint":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all",marginRight:"8px",fontWeight:600,fontSize:{md:"16px",xs:"10px"}}},children:[(0,b.jsx)("div",{className:"drive-endpoint",children:t.endpoint||""}),t.state&&(0,b.jsx)(j.J$M,{})]}),(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",paddingLeft:"20px",marginTop:"10px",flexFlow:{sm:"row",xs:"column"},"& .info-label":{color:"#5E5E5E",fontSize:"12px",textAlign:"center"},"& .info-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,b.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:(0,m.l5)(t.usedSpace)}),(0,b.jsx)("div",{children:(0,b.jsx)(le.u,{width:110,height:110,children:(0,b.jsx)(re.b,{data:i,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,startAngle:-70,endAngle:360,animationDuration:1,children:i.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})]})}),(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"5%",alignItems:"center",flex:2,flexGrow:1},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.totalSpace?t.totalSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Capacity"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.usedSpace?t.usedSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Used"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.availableSpace?t.availableSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Available"})]})]})]})]})})})),st=i(25183),dt=function(e){var t=e.data,i=r.useState(t.length>1?"":t[0].endpoint+"-0"),n=(0,a.Z)(i,2),l=n[0],o=n[1],s=function(e){o(e)};return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{marginBottom:"10px"},children:["Servers (",t.length,")"]}),(0,b.jsx)(et.Z,{sx:{width:"100%",flex:1,padding:"0"},component:"nav","aria-labelledby":"nested-list-subheader",children:t.map((function(e,t){var i="".concat(e.endpoint,"-").concat(t),n=l===i;return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsxs)(tt.Z,{disableRipple:!0,onClick:function(){s(n?"":i)},className:n?"expanded":"",sx:{display:"flex",alignItems:"center",justifyContent:"space-between",border:"1px solid #f1f1f1",padding:"3px 10px 3px 10px","&:hover":{background:"#bebbbb0d"}},children:[(0,b.jsx)(lt,{server:e,index:t}),(0,b.jsx)(f.Z,{sx:{height:"25px",width:"25px",background:"#FBFAFA",borderRadius:"2px","&:hover":{background:"#fafafa"},display:{md:"block",xs:"none"},"& .collapse-icon":{fill:"#494949","& g rect":{fill:"#ffffff"}},"& .expand-icon":{fill:"#494949","& rect":{fill:"#ffffff"}}},children:n?(0,b.jsx)(st.cg,{className:"collapse-icon"}):(0,b.jsx)(st.Ud,{className:"expand-icon"})})]}),n?(0,b.jsxs)(f.Z,{sx:{border:"1px solid #f1f1f1",borderTop:"0"},children:[(0,b.jsxs)(Xe.Z,{component:"div",sx:{paddingLeft:"30px"},children:["Drives (",e.drives.length,")"]},"".concat(t,"-drive-details")),(0,b.jsx)(it.Z,{in:n,timeout:"auto",unmountOnExit:!0,sx:{width:"100%",flex:1,display:"flex",padding:{md:"15px 30px",xs:"10px 10px"},"& .MuiCollapse-wrapperInner":{display:"flex",flexFlow:"column",gap:"15px"}},children:e.drives.map((function(e,t){return(0,b.jsx)(ot,{drive:e},"".concat(e.endpoint,"-").concat(t))}))})]},"".concat(e.endpoint,"-").concat(t)):null]},i)}))})]})},ct=function(e){var t=e.counterValue,i=e.label,n=void 0===i?"":i,a=e.icon,l=void 0===a?null:a,r=e.actions,o=void 0===r?null:r;e.loading;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"300px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default",position:"relative",width:"100%"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",width:"100%",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"},position:"absolute"},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"8px",zIndex:10,overflow:"hidden"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:n}),(0,b.jsx)(xe.Z,{title:t,placement:"bottom",enterDelay:500,children:(0,b.jsx)(f.Z,{sx:{fontSize:{xl:"55px",lg:"50px",md:"36px",sm:"35px",xs:"35px"},fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",maxWidth:{md:187,xs:200},flexFlow:{md:"row",xs:"column"}},children:t})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",alignItems:"center",justifyContent:"flex-start",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:[l,(0,b.jsx)(f.Z,{children:o})]})]})})},xt=function(e){var t=e.usageValue,i=e.total,n=e.unit,a=[{value:i,color:"#D6D6D6",label:"Free Space"},{value:t,color:"#073052",label:"Used Space"}];return(0,b.jsxs)(f.Z,{sx:{maxHeight:"110px",display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"19px",padding:"10px","& .unit-value":{fontSize:"50px",color:"#07193E"},"& .unit-type":{fontSize:"18px",color:"#5E5E5E",marginTop:"20px",marginLeft:"5px"},"& .usage-label":{display:"flex",alignItems:"center",fontSize:"16px",fontWeight:600,marginRight:"20px",marginTop:"-10px","& .min-icon":{marginLeft:"10px",height:16,width:16}}},children:[(0,b.jsxs)(f.Z,{children:[(0,b.jsx)("div",{className:"usage-label",children:(0,b.jsx)("span",{children:"Reported Usage"})}),(0,b.jsx)(xe.Z,{title:"".concat(t," Bytes"),children:(0,b.jsx)("label",{className:"unit-value",style:{fontWeight:600},children:i})}),(0,b.jsx)("label",{className:"unit-type",children:n})]}),(0,b.jsx)(f.Z,{children:(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsx)("div",{style:{position:"relative",width:105,height:105,top:"-8px"},children:(0,b.jsx)("div",{children:(0,b.jsx)(le.u,{width:105,height:105,children:(0,b.jsx)(re.b,{data:a,cx:"50%",cy:"50%",dataKey:"value",outerRadius:45,innerRadius:35,startAngle:-70,endAngle:360,animationDuration:1,children:a.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})})})})]})},ut=i(40603),pt=i(56087),ft=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{border:"1px solid #f1f1f1",padding:{md:"15px",xs:"5px"},height:"136px",maxWidth:{sm:"100%"}},children:t})},ht=function(e){var t=e.usage,i=t&&t.usage?t.usage.toString():"0",n=function(e){return void 0===e?{total:"0",unit:"Mi"}:(0,m.Am)(e)}(i),a=t||{},l=a.lastScan,o=void 0===l?"n/a":l,s=a.lastHeal,c=void 0===s?"n/a":s,x=a.upTime,u=void 0===x?"n/a":x,p=function(e){return null!==e?e.servers.sort((function(e,t){var i=e.endpoint.toLowerCase(),n=t.endpoint.toLowerCase();return in?1:0})):[]}(t||null),h=[];p.forEach((function(e){var t=e.drives.map((function(e){return e}));h=[].concat((0,d.Z)(h),(0,d.Z)(t))}));var g=Qe()(p,"state"),v=g.offline,y=void 0===v?[]:v,Z=g.online,C=void 0===Z?[]:Z,w=Qe()(h,"state"),S=w.offline,E=void 0===S?[]:S,N=w.ok,T=void 0===N?[]:N;return(0,b.jsx)(f.Z,{sx:{maxWidth:"1536px",margin:"auto"},children:(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"1fr",gap:"27px",marginBottom:"40px",marginTop:"40px",marginLeft:"40px",marginRight:"40px"},children:[(0,b.jsxs)(f.Z,{children:[(null===t||void 0===t?void 0:t.prometheusNotReady)&&(0,b.jsx)(Ye.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can't retrieve advanced metrics at this time",help:(0,b.jsxs)(r.Fragment,{children:["MinIO Dashboard will display basic metrics as we couldn't connect to Prometheus successfully.",(0,b.jsx)("br",{})," ",(0,b.jsx)("br",{}),"Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."]})}),!(null!==t&&void 0!==t&&t.prometheusNotReady)&&(0,b.jsx)(Ye.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can\u2019t retrieve advanced metrics at this time.",help:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{fontSize:"14px"},children:"MinIO Dashboard will display basic metrics as we couldn\u2019t connect to Prometheus successfully. Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."}),(0,b.jsx)(f.Z,{sx:{paddingTop:"20px",fontSize:"14px","& a":{color:function(e){return e.colors.link}}},children:(0,b.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/metrics-alerts/collect-minio-metrics-using-prometheus.html?ref=con#minio-metrics-collect-using-prometheus",target:"_blank",rel:"noreferrer",children:"Read more about Prometheus on our Docs site."})})]})})]}),(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"40px"},children:[(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"136px",gridTemplateColumns:{sm:"1fr 1fr 1fr",xs:"1fr"},gap:{md:"20px",xs:"20px"}},children:[(0,b.jsx)(ft,{children:(0,b.jsx)(ct,{label:"Buckets",icon:(0,b.jsx)(j.wNb,{}),counterValue:t?(0,m.nk)(t.buckets):0,actions:(0,b.jsx)(Be.rU,{to:pt.gA.BUCKETS,style:{textDecoration:"none",top:"40px",position:"relative",marginRight:"75px"},children:(0,b.jsx)(ut.Z,{tooltip:"Browse",onClick:function(){},text:"Browse",icon:(0,b.jsx)(j.LZ3,{}),color:"primary",variant:"outlined"})})})}),(0,b.jsx)(ft,{children:(0,b.jsx)(ct,{label:"Objects",icon:(0,b.jsx)(j.xpX,{}),counterValue:t?(0,m.nk)(t.objects):0})}),(0,b.jsx)(ft,{children:(0,b.jsx)(Je.Z,{onlineCount:C.length,offlineCount:y.length,label:"Servers",icon:(0,b.jsx)(j.SBZ,{})})}),(0,b.jsx)(ft,{children:(0,b.jsx)(Je.Z,{offlineCount:E.length,onlineCount:T.length,label:"Drives",icon:(0,b.jsx)(j.FU8,{})})}),(0,b.jsxs)(f.Z,{sx:{gridRowStart:"1",gridRowEnd:"3",gridColumnStart:"3",border:"1px solid #f1f1f1",padding:"15px",display:"grid",justifyContent:"stretch"},children:[(0,b.jsx)(xt,{usageValue:i,total:n.total,unit:n.unit}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",gap:"14px"},children:[(0,b.jsx)(je,{icon:(0,b.jsx)(j.lnI,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Heal Activity"]}),value:c}),(0,b.jsx)(je,{icon:(0,b.jsx)(st.EY,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Scan Activity"]}),value:o}),(0,b.jsx)(je,{icon:(0,b.jsx)(j.oNq,{}),label:"Uptime",value:u})]})]})]}),(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateRows:"auto",gridTemplateColumns:"1fr",gap:"auto"},children:(0,b.jsx)(dt,{data:p})})]})]})})},mt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},(0,h.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,i=(0,$.TL)(),n=(0,r.useState)(!0),l=(0,a.Z)(n,2),o=l[0],d=l[1],c=(0,r.useState)(null),u=(0,a.Z)(c,2),p=u[0],f=u[1],h=(0,r.useCallback)((function(){F.Z.invoke("GET","/api/v1/admin/info").then((function(e){f(e),d(!1)})).catch((function(e){i((0,J.Ih)(e)),d(!1)}))}),[f,d,i]);(0,r.useEffect)((function(){o&&h()}),[o,h]);var m=s()(p,"widgets",null);return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)(He.Z,{label:"Metrics"}),o?(0,b.jsx)(x.ZP,{container:!0,children:(0,b.jsx)(x.ZP,{item:!0,xs:12,className:t.container,children:(0,b.jsx)($e.Z,{})})}):(0,b.jsx)(r.Fragment,{children:null!==m?(0,b.jsx)(Ve,{}):(0,b.jsx)(ht,{usage:p})})]})}))},19847:function(e,t,i){i.d(t,{x:function(){return s}});var n=i(1413),a=i(45987),l=i(72791),r=i(80184),o=["children","value","index"],s=function(e){var t=e.children,i=e.value,s=e.index,d=(0,a.Z)(e,o);return(0,r.jsx)("div",(0,n.Z)((0,n.Z)({role:"tabpanel",hidden:i!==s,id:"simple-tabpanel-".concat(s),"aria-labelledby":"simple-tab-".concat(s),style:{marginTop:"5px"}},d),{},{children:i===s&&(0,r.jsx)(l.Fragment,{children:t})}))}}}]);
-//# sourceMappingURL=1182.264ec55e.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1182.264ec55e.chunk.js.map b/portal-ui/build/static/js/1182.264ec55e.chunk.js.map
deleted file mode 100644
index 63a6cbabe..000000000
--- a/portal-ui/build/static/js/1182.264ec55e.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1182.264ec55e.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 {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
\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 Capacity \n \n\n \n \n {niceBytes(drive.usedSpace ? drive.usedSpace.toString() : \"0\")}\n
\n Used \n \n \n \n {niceBytes(\n drive.availableSpace ? drive.availableSpace.toString() : \"0\"\n )}\n
\n Available \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 {unit} \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 \n {value === index && {children} }\n
\n );\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","DateFilterAdornIcon","sx","actionsTray","widgetContainerCommon","syncButton","schedulerIcon","opacity","selectorLabel","color","whiteSpace","marginLeft","timeStart","setTimeStart","timeEnd","setTimeEnd","triggerSync","label","startLabel","endLabel","WebkitTextFillColor","md","gridTemplateColumns","sm","padding","gap","fill","value","onChange","id","classNamePrefix","forFilterContained","noInputIcon","openPickerIcon","justifyContent","type","variant","onClick","endIcon","dateSelectorOverride","borderBottom","borderColor","dateSelectorFilterOverride","dateSelectorFormOverride","maxWidth","parentDateOverride","flexGrow","textBoxContainer","openListIcon","marginTop","paperOverride","margin","textAlign","palette","primary","main","minHeight","borderTop","content","position","top","left","fieldBasic","tooltipHelper","forSearchBlock","tooltip","required","disabled","adornment","startAdornment","endAdornment","classOverridden","clsName","inputItem","dateAdapter","AdapterMoment","InputProps","components","OpenPickerIcon","renderInput","props","ampm","PopperProps","containerCls","fieldContainer","Fragment","htmlFor","inputLabel","tooltipContainer","placement","deleteDialogStyles","customDialogSize","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","dispatch","useAppDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","onlineCount","offlineCount","icon","okStatusText","notOkStatusText","fontFamily","cursor","flex","flexFlow","xl","lg","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","widgetType","colorsMain","niceDaysFromNS","seconds","niceDays","roundNumber","parseInt","toString","panelsConfiguration","data","simpleWidget","widgetIcon","labelDisplayFunction","dataOuter","name","widgetConfiguration","outerChart","colorList","innerRadius","outerRadius","startAngle","endAngle","innerChart","pieChart","innerLabel","niceBytes","dataKey","keyLabel","lineColor","fillColor","areaGraph","yAxisFormatter","xAxisFormatter","getTimeFromTimestamp","background","greatestColor","customStructure","originTag","displayTag","barChart","singleRep","strokeWidth","linearGraph","HealIcon","DiagnosticsIcon","disableYAxis","mergedPanels","singleValue","calculateMainValue","elements","metricCalc","sumValues","reduce","accumulator","currValue","parseFloat","Math","floor","sortResult","sort","value1","value2","widgetDetailsToPanel","payloadData","panelItem","typeOfPayload","get","valueDisplay","chartSeries","filter","seriesItem","values","map","chartTarget","result","Array","isArray","elementValue","metricKeyItem","Object","keys","metric","metricName","legend","legendFormat","firstTarget","totalValues","targets","series","plotValues","forEach","targetMaster","index","results","itemVals","labelName","metrics","keysToReplace","expToReplace","RegExp","join","replacedLegend","replace","matchItem","nwMatchItem","countVarsOpen","match","countVarsClose","cleanLegend","element","constructLabelNames","keyName","push","valInfo","itemIndex","findIndex","itemToPush","seriesWithColors","series1","series2","serialC","textToRGBColor","sortedVals","chartBars","sortFunction","structureItem","metricTake","find","lastValue","a","valuesForBackground","eachVal","splitSizeMetric","val","splittedText","split","vl","isNaN","representationNumber","units","tabSubStyles","makeStyles","tabRoot","selected","indicator","scroller","selectedTab","tabOptions","subStyles","Tabs","indicatorColor","textColor","scrollButtons","e","newValue","option","Tab","key","tooltipCommon","active","payload","barChartConfiguration","customTooltip","timeStampTitle","pl","labelContainer","labelColor","style","itemValue","valueContainer","Box","href","rel","preventDefault","openZoomPage","ZoomOutMap","Z","CustomizedAxisTick","y","textAnchor","transform","dy","widgetCommon","loadingAlign","propLoading","apiPrefix","zoomActivated","loading","setLoading","setData","setResult","stepCalc","secondsInPeriod","unix","periods","api","then","res","widgetsWithValue","catch","err","setErrorSnackMessage","greatestIndex","currentValue","dataGraph","useTheme","biggerThanMd","useMediaQuery","breakpoints","up","singleValueContainer","titleContainer","Loader","zoomChartCont","contentContainer","ResponsiveContainer","BarChart","layout","barCategoryGap","XAxis","hide","YAxis","interval","tick","tickLine","axisLine","bar","Bar","barSize","_","Cell","Tooltip","linearConfiguration","verticalAlignment","flexDirection","chartCont","legendChart","maxHeight","overflowY","hideYAxis","areaWidget","dataMax","setDataMax","maxVal","dp","intervalCount","CustomizedDot","prop","cx","cy","r","AreaChart","right","bottom","x1","y1","x2","y2","offset","stopColor","stopOpacity","CartesianGrid","strokeDasharray","strokeOpacity","stroke","vertical","tickFormatter","tickCount","domain","section","Area","isAnimationActive","fillOpacity","strokeLinecap","dot","wrapperStyle","zIndex","singleLegendContainer","colorContainer","legendLabel","pieChartLabel","chartContainer","dataInner","setDataInner","setDataOuter","pieChartConfiguration","middleLabel","innerColors","outerColors","PieChart","Pie","entry","connector","connect","mainWidgetContainer","widgetLabel","textTransform","widgetValue","iconWidget","renderFn","valueToRender","overflow","enterDelay","textOverflow","repNumber","resultRep","lineHeight","titleElement","containerAlignment","totalUsableFree","setTotalUsableFree","totalUsableFreeRatio","setTotalUsableFreeRatio","totalUsed","setTotalUsed","totalUsable","setTotalUsable","tUsable","tUsed","tFree","eachArray","itemSum","freeRatio","round","usedConvert","calculateBytes","capacityColors","alignSelf","animationDuration","total","unit","niceBytesInt","componentToUse","CmpToRender","HealActivityRenderer","ScanActivityRenderer","UptimeActivityRenderer","includes","ModalWrapper","closeZoomPage","summaryPanelsLayout","minWidth","columns","componentId","trafficPanelsLayout","flexShrink","resourcesPanelsLayout","resourcesPanelsLayoutAdvanced","RowPanelLayout","cardSubStyles","cardRoot","metricText","unitText","subHearderContainer","subMessage","headerContainer","viewAll","extraMargin","metricValue","metricUnit","moreLink","rightComponent","SubHeader","leftSide","rightSide","Header","to","Card","CardHeader","subheader","leftComponent","statLabel","statItemLeft","statItemRight","info","leftPanel","rightPanel","lStatItem","rStatItem","statIcon","rightCmp","leftCmp","dashboardRow","flexWrap","zoomOpen","dashboard","zoom","openZoom","zoomWidget","widgetRender","panelInformation","setPanelInformation","curTab","setCurTab","fetchUsage","useCallback","widgets","panelT","toLowerCase","trim","errorMessage","detailedError","renderPanelItems","layoutRows","prev","rowItem","rIdx","cellItems","cellItem","colIdx","panelInfo","renderCmpByConfig","panel","rowConfig","PageLayout","Grid","DateRangeSelector","ServerStatItem","statusColor","hasStatus","commonDashboardInfocard","server","networkKeys","drives","acc","network","endpoint","uptime","version","driveStatusColor","drive","totalSpace","usedSpace","wordBreak","availableSpace","React","expanded","setExpanded","handleClick","List","component","serverInfo","isExpanded","ListItemButton","ListSubheader","Collapse","in","timeout","unmountOnExit","driveInfo","counterValue","actions","usageValue","BoxItem","usage","usageToRepresent","undefined","prettyUsage","lastScan","lastHeal","upTime","serverList","servers","b","nameA","nameB","getServersList","allDrivesArray","drivesInput","serversGroup","groupBy","offline","offlineServers","online","onlineServers","drivesGroup","offlineDrives","ok","onlineDrives","gridTemplateRows","prometheusNotReady","HelpBox","colors","link","target","buckets","IAM_PAGES","textDecoration","RBIconButton","text","objects","StatusCountCard","gridRowStart","gridRowEnd","gridColumnStart","containerForHeader","spacing","basicResult","setBasicResult","PageHeader","LinearProgress","TabPanel","other","role","hidden"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1199.acc7a3c5.chunk.js b/portal-ui/build/static/js/1199.acc7a3c5.chunk.js
new file mode 100644
index 000000000..c039c5d97
--- /dev/null
+++ b/portal-ui/build/static/js/1199.acc7a3c5.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1199],{65935:function(e,t,n){n.r(t),n.d(t,{default:function(){return T}});var i=n(29439),s=n(1413),o=n(72791),r=n(16871),c=n(11135),a=n(25787),l=n(23814),d=n(61889),u=n(64554),p=n(36151),x=n(38734),h=n(92217),m=n(32291),f=n(74794),y=n(21435),j=n(37516),g=n(80184),v=function(e){var t=e.icon,n=e.description;return(0,g.jsxs)(u.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,g.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:n})]})},Z=function(){return(0,g.jsxs)(u.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:[(0,g.jsxs)(u.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,g.jsx)(x.M9A,{}),(0,g.jsx)("div",{children:"Learn more about Service Accounts"})]}),(0,g.jsxs)(u.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:[(0,g.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,g.jsx)(v,{icon:(0,g.jsx)(x.nO6,{}),description:"Create Service Accounts"}),(0,g.jsx)(u.Z,{sx:{paddingTop:"20px"},children:"Service Accounts inherit the policies explicitly attached to the parent user, and the policies attached to each group in which the parent user has membership."})]}),(0,g.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,g.jsx)(v,{icon:(0,g.jsx)(x.tvm,{}),description:"Assign Custom Credentials"}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"Randomized access credentials are recommended, and provided by default. You may use your own custom Access Key and Secret Key by replacing the default values. After creation of any Service Account, you will be given the opportunity to view and download the account credentials."}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"Service Accounts support programmatic access by applications. You cannot use a Service Account to log into the MinIO Console."})]}),(0,g.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,g.jsx)(v,{icon:(0,g.jsx)(x.v42,{}),description:"Assign Access Policies"}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"You cannot modify the optional Service Account IAM policy after saving."})]})]}),(0,g.jsx)(u.Z,{sx:{display:"flex",flexFlow:"column"}})]})},b=n(84669),S=n(3579),C=n(20165),w=n(56087),A=n(81207),K=n(37798),N=n(50896),P=n(84741),M=n(60680),O=n(87995),k=n(25469),T=(0,a.Z)((function(e){return(0,c.Z)((0,s.Z)((0,s.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}}},l.DF),l.ID))}))((function(e){var t=e.classes,n=(0,k.TL)(),s=(0,r.s0)(),c=(0,o.useState)(!1),a=(0,i.Z)(c,2),l=a[0],v=a[1],T=(0,o.useState)((0,P.zO)(16)),B=(0,i.Z)(T,2),I=B[0],z=B[1],E=(0,o.useState)((0,P.zO)(32)),F=(0,i.Z)(E,2),D=F[0],R=F[1],L=(0,o.useState)(!1),Y=(0,i.Z)(L,2),_=Y[0],J=Y[1],W=(0,o.useState)(null),H=(0,i.Z)(W,2),V=H[0],U=H[1],G=(0,o.useState)(!1),Q=(0,i.Z)(G,2),q=Q[0],X=Q[1],$=(0,o.useState)(""),ee=(0,i.Z)($,2),te=ee[0],ne=ee[1];(0,o.useEffect)((function(){l&&A.Z.invoke("POST","/api/v1/service-account-credentials",{policy:te,accessKey:I,secretKey:D}).then((function(e){v(!1),U({accessKey:e.accessKey||"",secretKey:e.secretKey||"",url:e.url||""})})).catch((function(e){v(!1),n((0,O.Ih)(e))}))}),[l,v,n,te,I,D]),(0,o.useEffect)((function(){_&&A.Z.invoke("GET","/api/v1/user/policy").then((function(e){ne(JSON.stringify(JSON.parse(e),null,4))}))}),[_]);return(0,g.jsxs)(o.Fragment,{children:[null!==V&&(0,g.jsx)(K.default,{newServiceAccount:V,open:null!==V,closeModal:function(){U(null),s("".concat(w.gA.ACCOUNT))},entity:"Service Account"}),(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,g.jsx)(m.Z,{label:(0,g.jsx)(b.Z,{to:w.gA.ACCOUNT,label:"Service Accounts"})}),(0,g.jsx)(f.Z,{children:(0,g.jsxs)(u.Z,{sx:{display:"grid",padding:"25px",gap:"25px",gridTemplateColumns:{md:"2fr 1.2fr",xs:"1fr"},border:"1px solid #eaeaea"},children:[(0,g.jsxs)(u.Z,{children:[(0,g.jsx)(N.Z,{icon:(0,g.jsx)(x.tVY,{}),children:"Create Service Account"}),(0,g.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),v(!0)}(e)},children:(0,g.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",sx:{marginTop:1},children:[(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)(d.ZP,{container:!0,item:!0,spacing:"20",children:(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsxs)(d.ZP,{container:!0,children:[(0,g.jsx)(d.ZP,{item:!0,xs:1,children:(0,g.jsx)(x.tvm,{})}),(0,g.jsx)(d.ZP,{item:!0,children:(0,g.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",children:[(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[" ",(0,g.jsx)("div",{className:t.stackedInputs,children:(0,g.jsx)(y.Z,{value:I,label:"Access Key",id:"accessKey",name:"accessKey",placeholder:"Enter Access Key",onChange:function(e){z(e.target.value)}})})]}),(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)("div",{className:t.stackedInputs,children:(0,g.jsx)(y.Z,{value:D,label:"Secret Key",id:"secretKey",name:"secretKey",type:q?"text":"password",placeholder:"Enter Secret Key",onChange:function(e){R(e.target.value)},overlayIcon:q?(0,g.jsx)(C.Z,{}):(0,g.jsx)(S.Z,{}),overlayAction:function(){return X(!q)}})})})]})})]})})})}),(0,g.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",children:[(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsxs)(d.ZP,{container:!0,children:[(0,g.jsx)(d.ZP,{item:!0,xs:1,children:(0,g.jsx)(x.v42,{})}),(0,g.jsx)(d.ZP,{item:!0,xs:11,children:(0,g.jsx)(j.Z,{value:"serviceAccountPolicy",id:"serviceAccountPolicy",name:"serviceAccountPolicy",checked:_,onChange:function(e){J(e.target.checked)},label:"Restrict beyond user policy",tooltip:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."})})]})}),_&&(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.codeMirrorContainer,children:[(0,g.jsx)("div",{children:(0,g.jsx)(M.Z,{children:"Current User Policy - edit the JSON to remove permissions for this service account"})}),(0,g.jsx)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:(0,g.jsx)(h.Z,{value:te,onBeforeChange:function(e,t,n){ne(n)},editorHeight:"350px"})})]})]}),(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,g.jsx)(p.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){ne(""),U(null),z(""),R(""),X(!1)},children:"Clear"}),(0,g.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",children:"Create"})]})]})})]}),(0,g.jsx)(Z,{})]})})]})]})}))},37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var i=n(1413),s=n(72791),o=n(26181),r=n.n(o),c=n(11135),a=n(25787),l=n(56028),d=n(61889),u=n(77196),p=n(63466),x=n(85531),h=n(78029),m=n.n(h),f=n(38734),y=n(23814),j=n(80184),g=(0,a.Z)((function(e){return(0,c.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},y.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,i=e.value,s=void 0===i?"":i,o=e.classes,r=void 0===o?{}:o;return(0,j.jsxs)("div",{className:r.container,children:[(0,j.jsxs)("div",{className:r.inputLabel,children:[n,":"]}),(0,j.jsx)("div",{className:r.inputWithCopy,children:(0,j.jsx)(u.Z,{value:s,readOnly:!0,endAdornment:(0,j.jsx)(p.Z,{position:"end",children:(0,j.jsx)(m(),{text:s,children:(0,j.jsx)(x.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,j.jsx)(f.TIy,{})})})})})})]})})),v=n(89357),Z=n(40603),b=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+t),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},S=(0,a.Z)((function(e){return(0,c.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,o=e.open,c=e.closeModal,a=e.entity;if(!n)return null;var u=r()(n,"console",null),p=r()(n,"idp",!1);return(0,j.jsx)(l.Z,{modalOpen:o,onClose:function(){c()},title:(0,j.jsx)("div",{className:t.promptTitle,children:(0,j.jsxs)("div",{children:["New ",a," Created"]})}),titleIcon:(0,j.jsx)(f.tVY,{}),children:(0,j.jsxs)(d.ZP,{container:!0,children:[(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",a," has been created with the following details:",!p&&u&&(0,j.jsx)(s.Fragment,{children:(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,j.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(u)&&u.map((function(e,t){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{label:"Access Key",value:e.accessKey}),(0,j.jsx)(g,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{label:"Access Key",value:u.accessKey}),(0,j.jsx)(g,{label:"Secret Key",value:u.secretKey})]})]})}),(null===u||void 0===u)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{label:"Access Key",value:n.accessKey||""}),(0,j.jsx)(g,{label:"Secret Key",value:n.secretKey||""})]}),p?(0,j.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,j.jsxs)("div",{className:t.warningBlock,children:[(0,j.jsx)(v.Z,{}),(0,j.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,j.jsx)(d.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!p&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Z.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u?e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"}:e={url:n.url,accessKey:n.accessKey,secretKey:n.secretKey,api:"s3v4",path:"auto"};b("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,j.jsx)(f._8t,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,j.jsx)(Z.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,j.jsx)(f._8t,{}),variant:"contained",color:"primary"})]})})]})})}))},92217:function(e,t,n){var i=n(1413),s=n(72791),o=n(61889),r=n(30829),c=n(20068),a=n(64554),l=n(11135),d=n(25787),u=n(84570),p=n(23814),x=n(38734),h=n(40603),m=n(78029),f=n.n(m),y=n(85457),j=n(80184);t.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var t=e.value,n=e.label,i=void 0===n?"":n,l=e.tooltip,d=void 0===l?"":l,p=e.mode,m=void 0===p?"json":p,g=e.classes,v=e.onBeforeChange,Z=(e.readOnly,e.editorHeight),b=void 0===Z?"250px":Z;return(0,j.jsxs)(s.Fragment,{children:[(0,j.jsx)(o.ZP,{item:!0,xs:12,children:(0,j.jsxs)(r.Z,{className:g.inputLabel,children:[(0,j.jsx)("span",{children:i}),""!==d&&(0,j.jsx)("div",{className:g.tooltipContainer,children:(0,j.jsx)(c.Z,{title:d,placement:"top-start",children:(0,j.jsx)("div",{className:g.tooltip,children:(0,j.jsx)(u.Z,{})})})})]})}),(0,j.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:b,overflow:"auto"},children:(0,j.jsx)(y.Z,{value:t,language:m,onChange:function(e){v(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,j.jsx)(o.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,j.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,j.jsx)(f(),{text:t,children:(0,j.jsx)(h.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,j.jsx)(x.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},56028:function(e,t,n){var i=n(29439),s=n(1413),o=n(72791),r=n(60364),c=n(13400),a=n(55646),l=n(5574),d=n(65661),u=n(39157),p=n(11135),x=n(25787),h=n(23814),m=n(25469),f=n(29823),y=n(28057),j=n(87995),g=n(80184);t.Z=(0,x.Z)((function(e){return(0,p.Z)((0,s.Z)((0,s.Z)({},h.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))((function(e){var t=e.onClose,n=e.modalOpen,p=e.title,x=e.children,h=e.classes,v=e.wideLimit,Z=void 0===v||v,b=e.noContentPadding,S=e.titleIcon,C=void 0===S?null:S,w=(0,m.TL)(),A=(0,o.useState)(!1),K=(0,i.Z)(A,2),N=K[0],P=K[1],M=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,o.useEffect)((function(){w((0,j.MK)(""))}),[w]),(0,o.useEffect)((function(){if(M){if(""===M.message)return void P(!1);"error"!==M.type&&P(!0)}}),[M]);var O=Z?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},k="";return M&&(k=M.detailedErrorMsg,(""===M.detailedErrorMsg||M.detailedErrorMsg.length<5)&&(k=M.message)),(0,g.jsxs)(l.Z,(0,s.Z)((0,s.Z)({open:n,classes:h},O),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:h.root,children:[(0,g.jsxs)(d.Z,{className:h.title,children:[(0,g.jsxs)("div",{className:h.titleText,children:[C," ",p]}),(0,g.jsx)("div",{className:h.closeContainer,children:(0,g.jsx)(c.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,g.jsx)(f.Z,{})})})]}),(0,g.jsx)(y.Z,{isModal:!0}),(0,g.jsx)(a.Z,{open:N,className:h.snackBarModal,onClose:function(){P(!1),w((0,j.MK)(""))},message:k,ContentProps:{className:"".concat(h.snackBar," ").concat(M&&"error"===M.type?h.errorSnackBar:"")},autoHideDuration:M&&"error"===M.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:b?"":h.content,children:x})]}))}))},60680:function(e,t,n){n(72791);var i=n(11135),s=n(25787),o=n(80184);t.Z=(0,s.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,o.jsx)("h1",{className:t.root,children:n})}))},3579:function(e,t,n){var i=n(95318);t.Z=void 0;var s=i(n(45649)),o=n(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");t.Z=r},20165:function(e,t,n){var i=n(95318);t.Z=void 0;var s=i(n(45649)),o=n(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");t.Z=r},61120:function(e,t,n){function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}n.d(t,{Z:function(){return i}})},60136:function(e,t,n){n.d(t,{Z:function(){return s}});var i=n(89611);function s(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}},82963:function(e,t,n){n.d(t,{Z:function(){return o}});var i=n(71002),s=n(97326);function o(e,t){if(t&&("object"===(0,i.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,s.Z)(e)}}}]);
+//# sourceMappingURL=1199.acc7a3c5.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1199.ae4c29a1.chunk.js.map b/portal-ui/build/static/js/1199.acc7a3c5.chunk.js.map
similarity index 99%
rename from portal-ui/build/static/js/1199.ae4c29a1.chunk.js.map
rename to portal-ui/build/static/js/1199.acc7a3c5.chunk.js.map
index 31c288d2d..c7ac78709 100644
--- a/portal-ui/build/static/js/1199.ae4c29a1.chunk.js.map
+++ b/portal-ui/build/static/js/1199.acc7a3c5.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/1199.ae4c29a1.chunk.js","mappings":"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","sources":["screens/Console/Account/AddServiceAccountHelpBox.tsx","screens/Console/Account/AddServiceAccountScreen.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// 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 { Box } from \"@mui/material\";\nimport {\n HelpIconFilled,\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountIcon,\n} from \"../../../icons\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n
\n \n );\n};\nconst AddServiceAccountHelpBox = () => {\n return (\n \n \n \n Learn more about Service Accounts
\n \n \n \n }\n description={`Create Service Accounts`}\n />\n \n Service Accounts inherit the policies explicitly attached to the\n parent user, and the policies attached to each group in which the\n parent user has membership.\n \n \n \n }\n description={`Assign Custom Credentials`}\n />\n \n Randomized access credentials are recommended, and provided by\n default. You may use your own custom Access Key and Secret Key by\n replacing the default values. After creation of any Service Account,\n you will be given the opportunity to view and download the account\n credentials.\n \n \n Service Accounts support programmatic access by applications. You\n cannot use a Service Account to log into the MinIO Console.\n \n \n \n }\n description={`Assign Access Policies`}\n />\n \n You can specify an optional JSON-formatted IAM policy to further\n restrict Service Account access to a subset of the actions and\n resources explicitly allowed for the parent user. Additional access\n beyond that of the parent user cannot be implemented through these\n policies.\n \n \n You cannot modify the optional Service Account IAM policy after\n saving.\n \n \n \n \n \n );\n};\n\nexport default AddServiceAccountHelpBox;\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, useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { useNavigate } from \"react-router-dom\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Button } from \"@mui/material\";\nimport {\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountCredentialsIcon,\n} from \"../../../icons\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport AddServiceAccountHelpBox from \"./AddServiceAccountHelpBox\";\nimport BackLink from \"../../../common/BackLink\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport { ErrorResponseHandler } from \"../../../../src/common/types\";\nimport api from \"../../../../src/common/api\";\nimport CredentialsPrompt from \"../Common/CredentialsPrompt/CredentialsPrompt\";\n\nimport SectionTitle from \"../Common/SectionTitle\";\nimport { getRandomString } from \"../../../screens/Console/Tenants/utils\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\n\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\ninterface IAddServiceAccountProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst AddServiceAccount = ({ classes }: IAddServiceAccountProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [addSending, setAddSending] = useState(false);\n const [accessKey, setAccessKey] = useState(getRandomString(16));\n const [secretKey, setSecretKey] = useState(getRandomString(32));\n const [isRestrictedByPolicy, setIsRestrictedByPolicy] =\n useState(false);\n const [newServiceAccount, setNewServiceAccount] =\n useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [policyJSON, setPolicyJSON] = useState(\"\");\n\n useEffect(() => {\n if (addSending) {\n api\n .invoke(\"POST\", `/api/v1/service-account-credentials`, {\n policy: policyJSON,\n accessKey: accessKey,\n secretKey: secretKey,\n })\n .then((res) => {\n setAddSending(false);\n setNewServiceAccount({\n accessKey: res.accessKey || \"\",\n secretKey: res.secretKey || \"\",\n url: res.url || \"\",\n });\n })\n\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n }, [addSending, setAddSending, dispatch, policyJSON, accessKey, secretKey]);\n\n useEffect(() => {\n if (isRestrictedByPolicy) {\n api.invoke(\"GET\", `/api/v1/user/policy`).then((res: string) => {\n setPolicyJSON(JSON.stringify(JSON.parse(res), null, 4));\n });\n }\n }, [isRestrictedByPolicy]);\n\n const addServiceAccount = (e: React.FormEvent) => {\n e.preventDefault();\n setAddSending(true);\n };\n\n const resetForm = () => {\n setPolicyJSON(\"\");\n setNewServiceAccount(null);\n setAccessKey(\"\");\n setSecretKey(\"\");\n setShowPassword(false);\n };\n\n const closeCredentialsModal = () => {\n setNewServiceAccount(null);\n navigate(`${IAM_PAGES.ACCOUNT}`);\n };\n\n return (\n \n {newServiceAccount !== null && (\n {\n closeCredentialsModal();\n }}\n entity=\"Service Account\"\n />\n )}\n \n }\n />\n \n \n \n }>\n Create Service Account\n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(AddServiceAccount);\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 { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n \n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\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 get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n \n
New {entity} Created
\n
\n }\n titleIcon={ }\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n \n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n >\n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n >\n )}\n \n \n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n >\n )}\n {idp ? (\n \n Please Login via the configured external identity provider.\n
\n ) : (\n \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n >\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\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 } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\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) 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 fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return {children} ;\n};\n\nexport default withStyles(styles)(PanelTitle);\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: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"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: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["FeatureItem","icon","description","Box","sx","display","marginRight","height","width","marginBottom","style","fontSize","fontStyle","color","flex","border","borderRadius","flexFlow","padding","marginTop","xs","fontWeight","alignItems","paddingBottom","paddingTop","withStyles","theme","createStyles","bottomContainer","flexGrow","margin","justifyContent","formFieldStyles","modalStyleUtils","classes","dispatch","useAppDispatch","navigate","useNavigate","useState","addSending","setAddSending","getRandomString","accessKey","setAccessKey","secretKey","setSecretKey","isRestrictedByPolicy","setIsRestrictedByPolicy","newServiceAccount","setNewServiceAccount","showPassword","setShowPassword","policyJSON","setPolicyJSON","useEffect","api","policy","then","res","url","catch","err","setErrorSnackMessage","JSON","stringify","parse","Fragment","CredentialsPrompt","open","closeModal","IAM_PAGES","entity","Grid","item","PageHeader","label","BackLink","to","PageLayout","gap","gridTemplateColumns","md","SectionTitle","noValidate","autoComplete","onSubmit","e","preventDefault","addServiceAccount","container","spacing","className","stackedInputs","InputBoxWrapper","value","id","name","placeholder","onChange","target","type","overlayIcon","VisibilityOff","RemoveRedEye","overlayAction","FormSwitchWrapper","checked","event","tooltip","codeMirrorContainer","PanelTitle","formScrollable","CodeMirrorWrapper","onBeforeChange","editor","data","editorHeight","modalButtonBar","Button","variant","onClick","inputWithCopy","background","inputLabel","fieldBasic","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","body","appendChild","click","removeChild","warningBlock","credentialTitle","buttonContainer","textAlign","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Array","isArray","map","credentialsPair","index","undefined","WarnIcon","RBIconButton","consoleExtras","itemMap","path","length","allCredentials","mode","tooltipContainer","placement","overflow","language","evn","backgroundColor","fontFamily","borderTop","paddingRight","marginLeft","deleteDialogStyles","content","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/1199.acc7a3c5.chunk.js","mappings":"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","sources":["screens/Console/Account/AddServiceAccountHelpBox.tsx","screens/Console/Account/AddServiceAccountScreen.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// 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 { Box } from \"@mui/material\";\nimport {\n HelpIconFilled,\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountIcon,\n} from \"../../../icons\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n
\n \n );\n};\nconst AddServiceAccountHelpBox = () => {\n return (\n \n \n \n Learn more about Service Accounts
\n \n \n \n }\n description={`Create Service Accounts`}\n />\n \n Service Accounts inherit the policies explicitly attached to the\n parent user, and the policies attached to each group in which the\n parent user has membership.\n \n \n \n }\n description={`Assign Custom Credentials`}\n />\n \n Randomized access credentials are recommended, and provided by\n default. You may use your own custom Access Key and Secret Key by\n replacing the default values. After creation of any Service Account,\n you will be given the opportunity to view and download the account\n credentials.\n \n \n Service Accounts support programmatic access by applications. You\n cannot use a Service Account to log into the MinIO Console.\n \n \n \n }\n description={`Assign Access Policies`}\n />\n \n You can specify an optional JSON-formatted IAM policy to further\n restrict Service Account access to a subset of the actions and\n resources explicitly allowed for the parent user. Additional access\n beyond that of the parent user cannot be implemented through these\n policies.\n \n \n You cannot modify the optional Service Account IAM policy after\n saving.\n \n \n \n \n \n );\n};\n\nexport default AddServiceAccountHelpBox;\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, useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { useNavigate } from \"react-router-dom\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Button } from \"@mui/material\";\nimport {\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountCredentialsIcon,\n} from \"../../../icons\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport AddServiceAccountHelpBox from \"./AddServiceAccountHelpBox\";\nimport BackLink from \"../../../common/BackLink\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport { ErrorResponseHandler } from \"../../../../src/common/types\";\nimport api from \"../../../../src/common/api\";\nimport CredentialsPrompt from \"../Common/CredentialsPrompt/CredentialsPrompt\";\n\nimport SectionTitle from \"../Common/SectionTitle\";\nimport { getRandomString } from \"../../../screens/Console/Tenants/utils\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\n\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\ninterface IAddServiceAccountProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst AddServiceAccount = ({ classes }: IAddServiceAccountProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [addSending, setAddSending] = useState(false);\n const [accessKey, setAccessKey] = useState(getRandomString(16));\n const [secretKey, setSecretKey] = useState(getRandomString(32));\n const [isRestrictedByPolicy, setIsRestrictedByPolicy] =\n useState(false);\n const [newServiceAccount, setNewServiceAccount] =\n useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [policyJSON, setPolicyJSON] = useState(\"\");\n\n useEffect(() => {\n if (addSending) {\n api\n .invoke(\"POST\", `/api/v1/service-account-credentials`, {\n policy: policyJSON,\n accessKey: accessKey,\n secretKey: secretKey,\n })\n .then((res) => {\n setAddSending(false);\n setNewServiceAccount({\n accessKey: res.accessKey || \"\",\n secretKey: res.secretKey || \"\",\n url: res.url || \"\",\n });\n })\n\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n }, [addSending, setAddSending, dispatch, policyJSON, accessKey, secretKey]);\n\n useEffect(() => {\n if (isRestrictedByPolicy) {\n api.invoke(\"GET\", `/api/v1/user/policy`).then((res: string) => {\n setPolicyJSON(JSON.stringify(JSON.parse(res), null, 4));\n });\n }\n }, [isRestrictedByPolicy]);\n\n const addServiceAccount = (e: React.FormEvent) => {\n e.preventDefault();\n setAddSending(true);\n };\n\n const resetForm = () => {\n setPolicyJSON(\"\");\n setNewServiceAccount(null);\n setAccessKey(\"\");\n setSecretKey(\"\");\n setShowPassword(false);\n };\n\n const closeCredentialsModal = () => {\n setNewServiceAccount(null);\n navigate(`${IAM_PAGES.ACCOUNT}`);\n };\n\n return (\n \n {newServiceAccount !== null && (\n {\n closeCredentialsModal();\n }}\n entity=\"Service Account\"\n />\n )}\n \n }\n />\n \n \n \n }>\n Create Service Account\n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(AddServiceAccount);\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 { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n \n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\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 get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n \n
New {entity} Created
\n
\n }\n titleIcon={ }\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n \n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n >\n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n >\n )}\n \n \n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n >\n )}\n {idp ? (\n \n Please Login via the configured external identity provider.\n
\n ) : (\n \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n >\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\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 } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\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) 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 fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return {children} ;\n};\n\nexport default withStyles(styles)(PanelTitle);\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: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"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: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["FeatureItem","icon","description","Box","sx","display","marginRight","height","width","marginBottom","style","fontSize","fontStyle","color","flex","border","borderRadius","flexFlow","padding","marginTop","xs","fontWeight","alignItems","paddingBottom","paddingTop","withStyles","theme","createStyles","bottomContainer","flexGrow","margin","justifyContent","formFieldStyles","modalStyleUtils","classes","dispatch","useAppDispatch","navigate","useNavigate","useState","addSending","setAddSending","getRandomString","accessKey","setAccessKey","secretKey","setSecretKey","isRestrictedByPolicy","setIsRestrictedByPolicy","newServiceAccount","setNewServiceAccount","showPassword","setShowPassword","policyJSON","setPolicyJSON","useEffect","api","policy","then","res","url","catch","err","setErrorSnackMessage","JSON","stringify","parse","Fragment","CredentialsPrompt","open","closeModal","IAM_PAGES","entity","Grid","item","PageHeader","label","BackLink","to","PageLayout","gap","gridTemplateColumns","md","SectionTitle","noValidate","autoComplete","onSubmit","e","preventDefault","addServiceAccount","container","spacing","className","stackedInputs","InputBoxWrapper","value","id","name","placeholder","onChange","target","type","overlayIcon","VisibilityOff","RemoveRedEye","overlayAction","FormSwitchWrapper","checked","event","tooltip","codeMirrorContainer","PanelTitle","formScrollable","CodeMirrorWrapper","onBeforeChange","editor","data","editorHeight","modalButtonBar","Button","variant","onClick","inputWithCopy","background","inputLabel","fieldBasic","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","body","appendChild","click","removeChild","warningBlock","credentialTitle","buttonContainer","textAlign","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Array","isArray","map","credentialsPair","index","undefined","WarnIcon","RBIconButton","consoleExtras","itemMap","path","length","allCredentials","mode","tooltipContainer","placement","overflow","language","evn","backgroundColor","fontFamily","borderTop","paddingRight","marginLeft","deleteDialogStyles","content","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1199.ae4c29a1.chunk.js b/portal-ui/build/static/js/1199.ae4c29a1.chunk.js
deleted file mode 100644
index 17feaf86b..000000000
--- a/portal-ui/build/static/js/1199.ae4c29a1.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1199],{65935:function(e,t,n){n.r(t),n.d(t,{default:function(){return T}});var i=n(29439),s=n(1413),o=n(72791),r=n(16871),c=n(11135),a=n(25787),l=n(23814),d=n(61889),u=n(64554),p=n(36151),x=n(15900),h=n(92217),m=n(32291),f=n(74794),y=n(21435),j=n(37516),g=n(80184),v=function(e){var t=e.icon,n=e.description;return(0,g.jsxs)(u.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,g.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:n})]})},Z=function(){return(0,g.jsxs)(u.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:[(0,g.jsxs)(u.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,g.jsx)(x.M9A,{}),(0,g.jsx)("div",{children:"Learn more about Service Accounts"})]}),(0,g.jsxs)(u.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:[(0,g.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,g.jsx)(v,{icon:(0,g.jsx)(x.nO6,{}),description:"Create Service Accounts"}),(0,g.jsx)(u.Z,{sx:{paddingTop:"20px"},children:"Service Accounts inherit the policies explicitly attached to the parent user, and the policies attached to each group in which the parent user has membership."})]}),(0,g.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,g.jsx)(v,{icon:(0,g.jsx)(x.tvm,{}),description:"Assign Custom Credentials"}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"Randomized access credentials are recommended, and provided by default. You may use your own custom Access Key and Secret Key by replacing the default values. After creation of any Service Account, you will be given the opportunity to view and download the account credentials."}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"Service Accounts support programmatic access by applications. You cannot use a Service Account to log into the MinIO Console."})]}),(0,g.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,g.jsx)(v,{icon:(0,g.jsx)(x.v42,{}),description:"Assign Access Policies"}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."}),(0,g.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"You cannot modify the optional Service Account IAM policy after saving."})]})]}),(0,g.jsx)(u.Z,{sx:{display:"flex",flexFlow:"column"}})]})},b=n(84669),S=n(3579),C=n(20165),w=n(56087),A=n(81207),K=n(37798),N=n(50896),P=n(84741),M=n(60680),k=n(87995),O=n(81551),T=(0,a.Z)((function(e){return(0,c.Z)((0,s.Z)((0,s.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}}},l.DF),l.ID))}))((function(e){var t=e.classes,n=(0,O.TL)(),s=(0,r.s0)(),c=(0,o.useState)(!1),a=(0,i.Z)(c,2),l=a[0],v=a[1],T=(0,o.useState)((0,P.z)(16)),B=(0,i.Z)(T,2),I=B[0],z=B[1],E=(0,o.useState)((0,P.z)(32)),F=(0,i.Z)(E,2),D=F[0],R=F[1],L=(0,o.useState)(!1),Y=(0,i.Z)(L,2),_=Y[0],J=Y[1],W=(0,o.useState)(null),H=(0,i.Z)(W,2),V=H[0],U=H[1],G=(0,o.useState)(!1),Q=(0,i.Z)(G,2),q=Q[0],X=Q[1],$=(0,o.useState)(""),ee=(0,i.Z)($,2),te=ee[0],ne=ee[1];(0,o.useEffect)((function(){l&&A.Z.invoke("POST","/api/v1/service-account-credentials",{policy:te,accessKey:I,secretKey:D}).then((function(e){v(!1),U({accessKey:e.accessKey||"",secretKey:e.secretKey||"",url:e.url||""})})).catch((function(e){v(!1),n((0,k.Ih)(e))}))}),[l,v,n,te,I,D]),(0,o.useEffect)((function(){_&&A.Z.invoke("GET","/api/v1/user/policy").then((function(e){ne(JSON.stringify(JSON.parse(e),null,4))}))}),[_]);return(0,g.jsxs)(o.Fragment,{children:[null!==V&&(0,g.jsx)(K.default,{newServiceAccount:V,open:null!==V,closeModal:function(){U(null),s("".concat(w.gA.ACCOUNT))},entity:"Service Account"}),(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,g.jsx)(m.Z,{label:(0,g.jsx)(b.Z,{to:w.gA.ACCOUNT,label:"Service Accounts"})}),(0,g.jsx)(f.Z,{children:(0,g.jsxs)(u.Z,{sx:{display:"grid",padding:"25px",gap:"25px",gridTemplateColumns:{md:"2fr 1.2fr",xs:"1fr"},border:"1px solid #eaeaea"},children:[(0,g.jsxs)(u.Z,{children:[(0,g.jsx)(N.Z,{icon:(0,g.jsx)(x.tVY,{}),children:"Create Service Account"}),(0,g.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),v(!0)}(e)},children:(0,g.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",sx:{marginTop:1},children:[(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)(d.ZP,{container:!0,item:!0,spacing:"20",children:(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsxs)(d.ZP,{container:!0,children:[(0,g.jsx)(d.ZP,{item:!0,xs:1,children:(0,g.jsx)(x.tvm,{})}),(0,g.jsx)(d.ZP,{item:!0,children:(0,g.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",children:[(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[" ",(0,g.jsx)("div",{className:t.stackedInputs,children:(0,g.jsx)(y.Z,{value:I,label:"Access Key",id:"accessKey",name:"accessKey",placeholder:"Enter Access Key",onChange:function(e){z(e.target.value)}})})]}),(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)("div",{className:t.stackedInputs,children:(0,g.jsx)(y.Z,{value:D,label:"Secret Key",id:"secretKey",name:"secretKey",type:q?"text":"password",placeholder:"Enter Secret Key",onChange:function(e){R(e.target.value)},overlayIcon:q?(0,g.jsx)(C.Z,{}):(0,g.jsx)(S.Z,{}),overlayAction:function(){return X(!q)}})})})]})})]})})})}),(0,g.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",children:[(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsxs)(d.ZP,{container:!0,children:[(0,g.jsx)(d.ZP,{item:!0,xs:1,children:(0,g.jsx)(x.v42,{})}),(0,g.jsx)(d.ZP,{item:!0,xs:11,children:(0,g.jsx)(j.Z,{value:"serviceAccountPolicy",id:"serviceAccountPolicy",name:"serviceAccountPolicy",checked:_,onChange:function(e){J(e.target.checked)},label:"Restrict beyond user policy",tooltip:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."})})]})}),_&&(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.codeMirrorContainer,children:[(0,g.jsx)("div",{children:(0,g.jsx)(M.Z,{children:"Current User Policy - edit the JSON to remove permissions for this service account"})}),(0,g.jsx)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:(0,g.jsx)(h.Z,{value:te,onBeforeChange:function(e,t,n){ne(n)},editorHeight:"350px"})})]})]}),(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,g.jsx)(p.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){ne(""),U(null),z(""),R(""),X(!1)},children:"Clear"}),(0,g.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",children:"Create"})]})]})})]}),(0,g.jsx)(Z,{})]})})]})]})}))},37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var i=n(1413),s=n(72791),o=n(26181),r=n.n(o),c=n(11135),a=n(25787),l=n(56028),d=n(61889),u=n(77196),p=n(63466),x=n(85531),h=n(78029),m=n.n(h),f=n(15900),y=n(23814),j=n(80184),g=(0,a.Z)((function(e){return(0,c.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},y.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,i=e.value,s=void 0===i?"":i,o=e.classes,r=void 0===o?{}:o;return(0,j.jsxs)("div",{className:r.container,children:[(0,j.jsxs)("div",{className:r.inputLabel,children:[n,":"]}),(0,j.jsx)("div",{className:r.inputWithCopy,children:(0,j.jsx)(u.Z,{value:s,readOnly:!0,endAdornment:(0,j.jsx)(p.Z,{position:"end",children:(0,j.jsx)(m(),{text:s,children:(0,j.jsx)(x.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,j.jsx)(f.TIy,{})})})})})})]})})),v=n(89357),Z=n(40603),b=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+t),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},S=(0,a.Z)((function(e){return(0,c.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,o=e.open,c=e.closeModal,a=e.entity;if(!n)return null;var u=r()(n,"console",null),p=r()(n,"idp",!1);return(0,j.jsx)(l.Z,{modalOpen:o,onClose:function(){c()},title:(0,j.jsx)("div",{className:t.promptTitle,children:(0,j.jsxs)("div",{children:["New ",a," Created"]})}),titleIcon:(0,j.jsx)(f.tVY,{}),children:(0,j.jsxs)(d.ZP,{container:!0,children:[(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",a," has been created with the following details:",!p&&u&&(0,j.jsx)(s.Fragment,{children:(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,j.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(u)&&u.map((function(e,t){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{label:"Access Key",value:e.accessKey}),(0,j.jsx)(g,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{label:"Access Key",value:u.accessKey}),(0,j.jsx)(g,{label:"Secret Key",value:u.secretKey})]})]})}),(null===u||void 0===u)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(g,{label:"Access Key",value:n.accessKey||""}),(0,j.jsx)(g,{label:"Secret Key",value:n.secretKey||""})]}),p?(0,j.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,j.jsxs)("div",{className:t.warningBlock,children:[(0,j.jsx)(v.Z,{}),(0,j.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,j.jsx)(d.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!p&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Z.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u?e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"}:e={url:n.url,accessKey:n.accessKey,secretKey:n.secretKey,api:"s3v4",path:"auto"};b("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,j.jsx)(f._8t,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,j.jsx)(Z.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,j.jsx)(f._8t,{}),variant:"contained",color:"primary"})]})})]})})}))},92217:function(e,t,n){var i=n(1413),s=n(72791),o=n(61889),r=n(30829),c=n(20068),a=n(64554),l=n(11135),d=n(25787),u=n(84570),p=n(23814),x=n(15900),h=n(40603),m=n(78029),f=n.n(m),y=n(85457),j=n(80184);t.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var t=e.value,n=e.label,i=void 0===n?"":n,l=e.tooltip,d=void 0===l?"":l,p=e.mode,m=void 0===p?"json":p,g=e.classes,v=e.onBeforeChange,Z=(e.readOnly,e.editorHeight),b=void 0===Z?"250px":Z;return(0,j.jsxs)(s.Fragment,{children:[(0,j.jsx)(o.ZP,{item:!0,xs:12,children:(0,j.jsxs)(r.Z,{className:g.inputLabel,children:[(0,j.jsx)("span",{children:i}),""!==d&&(0,j.jsx)("div",{className:g.tooltipContainer,children:(0,j.jsx)(c.Z,{title:d,placement:"top-start",children:(0,j.jsx)("div",{className:g.tooltip,children:(0,j.jsx)(u.Z,{})})})})]})}),(0,j.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:b,overflow:"auto"},children:(0,j.jsx)(y.Z,{value:t,language:m,onChange:function(e){v(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,j.jsx)(o.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,j.jsx)(a.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,j.jsx)(f(),{text:t,children:(0,j.jsx)(h.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,j.jsx)(x.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},56028:function(e,t,n){var i=n(29439),s=n(1413),o=n(72791),r=n(60364),c=n(13400),a=n(55646),l=n(5574),d=n(65661),u=n(39157),p=n(11135),x=n(25787),h=n(23814),m=n(81551),f=n(29823),y=n(28057),j=n(87995),g=n(80184);t.Z=(0,x.Z)((function(e){return(0,p.Z)((0,s.Z)((0,s.Z)({},h.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))((function(e){var t=e.onClose,n=e.modalOpen,p=e.title,x=e.children,h=e.classes,v=e.wideLimit,Z=void 0===v||v,b=e.noContentPadding,S=e.titleIcon,C=void 0===S?null:S,w=(0,m.TL)(),A=(0,o.useState)(!1),K=(0,i.Z)(A,2),N=K[0],P=K[1],M=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,o.useEffect)((function(){w((0,j.MK)(""))}),[w]),(0,o.useEffect)((function(){if(M){if(""===M.message)return void P(!1);"error"!==M.type&&P(!0)}}),[M]);var k=Z?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},O="";return M&&(O=M.detailedErrorMsg,(""===M.detailedErrorMsg||M.detailedErrorMsg.length<5)&&(O=M.message)),(0,g.jsxs)(l.Z,(0,s.Z)((0,s.Z)({open:n,classes:h},k),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:h.root,children:[(0,g.jsxs)(d.Z,{className:h.title,children:[(0,g.jsxs)("div",{className:h.titleText,children:[C," ",p]}),(0,g.jsx)("div",{className:h.closeContainer,children:(0,g.jsx)(c.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,g.jsx)(f.Z,{})})})]}),(0,g.jsx)(y.Z,{isModal:!0}),(0,g.jsx)(a.Z,{open:N,className:h.snackBarModal,onClose:function(){P(!1),w((0,j.MK)(""))},message:O,ContentProps:{className:"".concat(h.snackBar," ").concat(M&&"error"===M.type?h.errorSnackBar:"")},autoHideDuration:M&&"error"===M.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:b?"":h.content,children:x})]}))}))},60680:function(e,t,n){n(72791);var i=n(11135),s=n(25787),o=n(80184);t.Z=(0,s.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,o.jsx)("h1",{className:t.root,children:n})}))},3579:function(e,t,n){var i=n(95318);t.Z=void 0;var s=i(n(45649)),o=n(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");t.Z=r},20165:function(e,t,n){var i=n(95318);t.Z=void 0;var s=i(n(45649)),o=n(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");t.Z=r},61120:function(e,t,n){function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}n.d(t,{Z:function(){return i}})},60136:function(e,t,n){n.d(t,{Z:function(){return s}});var i=n(89611);function s(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}},82963:function(e,t,n){n.d(t,{Z:function(){return o}});var i=n(71002),s=n(97326);function o(e,t){if(t&&("object"===(0,i.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,s.Z)(e)}}}]);
-//# sourceMappingURL=1199.ae4c29a1.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1260.5eb8500b.chunk.js b/portal-ui/build/static/js/1260.5eb8500b.chunk.js
deleted file mode 100644
index 14cf63828..000000000
--- a/portal-ui/build/static/js/1260.5eb8500b.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1260],{23804:function(e,n,t){t(72791);var r=t(11135),a=t(25787),i=t(61889),s=t(80184);n.Z=(0,a.Z)((function(e){return(0,r.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,r=e.title,a=e.help;return(0,s.jsx)("div",{className:n.root,children:(0,s.jsxs)(i.ZP,{container:!0,children:[(0,s.jsxs)(i.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,r]}),(0,s.jsx)(i.ZP,{item:!0,xs:12,className:n.helpText,children:a})]})})}))},46707:function(e,n,t){var r=t(1413),a=(t(72791),t(80184));n.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"certificate_svg__a",children:(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 2156",fill:"#07193e",d:"M0 0h256v222.048H0z"})})}),(0,a.jsxs)("g",{"data-name":"Grupo 4763",transform:"translate(0 17)",clipPath:"url(#certificate_svg__a)",fill:"#07193e",children:[(0,a.jsx)("path",{"data-name":"Trazado 8152",d:"M240-.002H16a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h120l4.64-5.6 7.44-9.12A66.72 66.72 0 0 1 256 98.958v-82.96a16 16 0 0 0-16-16m-130.96 149.7H47.3a7.3 7.3 0 1 1 0-14.592h61.74a7.3 7.3 0 1 1 0 14.592m0-56H47.3a7.3 7.3 0 1 1 0-14.592h61.74a7.3 7.3 0 0 1 0 14.592m66.96-39.3a6.419 6.419 0 0 1-6.4 6.4H46.4a6.419 6.419 0 0 1-6.4-6.4v-1.792a6.419 6.419 0 0 1 6.4-6.4h123.2a6.419 6.419 0 0 1 6.4 6.4Z"}),(0,a.jsx)("path",{"data-name":"Trazado 8153",d:"M256 137.486a50.96 50.96 0 1 0-86.16 36.72l-15.52 18.96 7.2 28.88 29.28-35.68a50.018 50.018 0 0 0 28.4 0l29.28 35.68 7.2-28.88-15.52-18.96a50.75 50.75 0 0 0 15.84-36.72m-50.928 29.688a29.688 29.688 0 0 1-.072-59.376h.072a29.688 29.688 0 0 1 0 59.376"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 2157",fill:"none",d:"M0 0h256v256H0z"})]}))}},37798:function(e,n,t){t.r(n),t.d(n,{default:function(){return C}});var r=t(1413),a=t(72791),i=t(26181),s=t.n(i),o=t(11135),l=t(25787),c=t(56028),u=t(61889),d=t(77196),m=t(63466),f=t(85531),g=t(78029),p=t.n(g),x=t(15900),h=t(23814),v=t(80184),y=(0,l.Z)((function(e){return(0,o.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,r.Z)((0,r.Z)({},h.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,r=e.value,a=void 0===r?"":r,i=e.classes,s=void 0===i?{}:i;return(0,v.jsxs)("div",{className:s.container,children:[(0,v.jsxs)("div",{className:s.inputLabel,children:[t,":"]}),(0,v.jsx)("div",{className:s.inputWithCopy,children:(0,v.jsx)(d.Z,{value:a,readOnly:!0,endAdornment:(0,v.jsx)(m.Z,{position:"end",children:(0,v.jsx)(p(),{text:a,children:(0,v.jsx)(f.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,v.jsx)(x.TIy,{})})})})})})]})})),j=t(89357),Z=t(40603),b=function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+n),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},C=(0,l.Z)((function(e){return(0,o.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"}})}))((function(e){var n=e.classes,t=e.newServiceAccount,i=e.open,o=e.closeModal,l=e.entity;if(!t)return null;var d=s()(t,"console",null),m=s()(t,"idp",!1);return(0,v.jsx)(c.Z,{modalOpen:i,onClose:function(){o()},title:(0,v.jsx)("div",{className:n.promptTitle,children:(0,v.jsxs)("div",{children:["New ",l," Created"]})}),titleIcon:(0,v.jsx)(x.tVY,{}),children:(0,v.jsxs)(u.ZP,{container:!0,children:[(0,v.jsxs)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",l," has been created with the following details:",!m&&d&&(0,v.jsx)(a.Fragment,{children:(0,v.jsxs)(u.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,v.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(d)&&d.map((function(e,n){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(y,{label:"Access Key",value:e.accessKey}),(0,v.jsx)(y,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(d)&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(y,{label:"Access Key",value:d.accessKey}),(0,v.jsx)(y,{label:"Secret Key",value:d.secretKey})]})]})}),(null===d||void 0===d)&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(y,{label:"Access Key",value:t.accessKey||""}),(0,v.jsx)(y,{label:"Secret Key",value:t.secretKey||""})]}),m?(0,v.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,v.jsxs)("div",{className:n.warningBlock,children:[(0,v.jsx)(j.Z,{}),(0,v.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,v.jsx)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:!m&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Z.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:n.buttonSpacer,onClick:function(){var e={};d?e=Array.isArray(d)?d.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:d.url,accessKey:d.accessKey,secretKey:d.secretKey,api:"s3v4",path:"auto"}:e={url:t.url,accessKey:t.accessKey,secretKey:t.secretKey,api:"s3v4",path:"auto"};b("credentials.json",JSON.stringify((0,r.Z)({},e)))},icon:(0,v.jsx)(x._8t,{}),variant:"contained",color:"primary"}),Array.isArray(d)&&d.length>1&&(0,v.jsx)(Z.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:n.buttonSpacer,onClick:function(){var e={};d&&(e=d.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,r.Z)({},e)))},icon:(0,v.jsx)(x._8t,{}),variant:"contained",color:"primary"})]})})]})})}))},54639:function(e,n,t){t.d(n,{Z:function(){return j}});var r=t(29439),a=t(1413),i=t(72791),s=t(26181),o=t.n(s),l=t(61889),c=t(30829),u=t(20068),d=t(13400),m=t(99663),f=t(86711),g=t(11135),p=t(25787),x=t(23814),h=t(84570),v=t(22512),y=t(80184),j=(0,p.Z)((function(e){return(0,g.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},x.YI),x.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},x.bV),{},{inputLabel:(0,a.Z)((0,a.Z)({},x.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,a.Z)((0,a.Z)({},x.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,t=e.classes,a=e.onChange,s=e.id,g=e.name,p=e.disabled,x=void 0!==p&&p,j=e.tooltip,Z=void 0===j?"":j,b=e.required,C=e.error,_=void 0===C?"":C,S=e.accept,N=void 0===S?"":S,A=e.value,T=void 0===A?"":A,I=(0,i.useState)(!1),P=(0,r.Z)(I,2),k=P[0],w=P[1];return(0,y.jsx)(i.Fragment,{children:(0,y.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(t.fileInputField," ").concat(t.fieldBottom," ").concat(t.fieldContainer," ").concat(""!==_?t.errorInField:""),children:[""!==n&&(0,y.jsxs)(c.Z,{htmlFor:s,className:"".concat(""!==_?t.fieldLabelError:""," ").concat(t.inputLabel),children:[(0,y.jsxs)("span",{children:[n,b?"*":""]}),""!==Z&&(0,y.jsx)("div",{className:t.tooltipContainer,children:(0,y.jsx)(u.Z,{title:Z,placement:"top-start",children:(0,y.jsx)("div",{className:t.tooltip,children:(0,y.jsx)(h.Z,{})})})})]}),k||""===T?(0,y.jsxs)("div",{className:t.textBoxContainer,children:[(0,y.jsx)("input",{type:"file",name:g,onChange:function(e){var n=o()(e,"target.files[0].name","");!function(e,n){var t=e.target.files[0],r=new FileReader;r.readAsDataURL(t),r.onload=function(){var e=r.result;if(e){var t=e.toString().split("base64,");2===t.length&&n(t[1])}}}(e,(function(e){a(e,n)}))},accept:N,required:b,disabled:x,className:t.fileInputField}),""!==T&&(0,y.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(f.Z,{})}),""!==_&&(0,y.jsx)(v.Z,{errorMessage:_})]}):(0,y.jsxs)("div",{className:t.fileReselect,children:[(0,y.jsx)("div",{className:t.valueString,children:T}),(0,y.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(m.Z,{})})]})]})})}))},56028:function(e,n,t){var r=t(29439),a=t(1413),i=t(72791),s=t(60364),o=t(13400),l=t(55646),c=t(5574),u=t(65661),d=t(39157),m=t(11135),f=t(25787),g=t(23814),p=t(81551),x=t(29823),h=t(28057),v=t(87995),y=t(80184);n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},g.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},g.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,f=e.children,g=e.classes,j=e.wideLimit,Z=void 0===j||j,b=e.noContentPadding,C=e.titleIcon,_=void 0===C?null:C,S=(0,p.TL)(),N=(0,i.useState)(!1),A=(0,r.Z)(N,2),T=A[0],I=A[1],P=(0,s.v9)((function(e){return e.system.modalSnackBar}));(0,i.useEffect)((function(){S((0,v.MK)(""))}),[S]),(0,i.useEffect)((function(){if(P){if(""===P.message)return void I(!1);"error"!==P.type&&I(!0)}}),[P]);var k=Z?{classes:{paper:g.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return P&&(w=P.detailedErrorMsg,(""===P.detailedErrorMsg||P.detailedErrorMsg.length<5)&&(w=P.message)),(0,y.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:g},k),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:g.root,children:[(0,y.jsxs)(u.Z,{className:g.title,children:[(0,y.jsxs)("div",{className:g.titleText,children:[_," ",m]}),(0,y.jsx)("div",{className:g.closeContainer,children:(0,y.jsx)(o.Z,{"aria-label":"close",id:"close",className:g.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,y.jsx)(x.Z,{})})})]}),(0,y.jsx)(h.Z,{isModal:!0}),(0,y.jsx)(l.Z,{open:T,className:g.snackBarModal,onClose:function(){I(!1),S((0,v.MK)(""))},message:w,ContentProps:{className:"".concat(g.snackBar," ").concat(P&&"error"===P.type?g.errorSnackBar:"")},autoHideDuration:P&&"error"===P.type?1e4:5e3}),(0,y.jsx)(d.Z,{className:b?"":g.content,children:f})]}))}))},41260:function(e,n,t){t.r(n),t.d(n,{default:function(){return Je}});var r=t(29439),a=t(1413),i=t(72791),s=t(26181),o=t.n(s),l=t(60364),c=t(61889),u=t(40986),d=t(11135),m=t(23814),f=t(28371),g=t(81551),p=t(93433),x=t(25787),h=t(10703),v=t(13400),y=t(84741),j=t(40968),Z=t(37516),b=t(21435),C=t(42419),_=t(51979),S=t(76773),N=t(80184),A=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,marginBottom:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},wrapperContainer:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,g.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeMinIO})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeConsole})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.setDomains})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.consoleDomain})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.minioDomains})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),A=(0,i.useState)({}),T=(0,r.Z)(A,2),I=T[0],P=T[1],k=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];if(f&&(e=[].concat((0,p.Z)(e),[{fieldKey:"tenant_securityContext_runAsUser",required:!0,value:x.runAsUser,customValidation:""===x.runAsUser||parseInt(x.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"tenant_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===x.runAsGroup||parseInt(x.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"tenant_securityContext_fsGroup",required:!0,value:x.fsGroup,customValidation:""===x.fsGroup||parseInt(x.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}])),u){var n=m.map((function(e,n){return{fieldKey:"minio-domain-".concat(n.toString()),required:!1,value:e,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/,customPatternMessage:"MinIO domain is not in the form of http|https://subdomain.domain"}}));e=[].concat((0,p.Z)(e),(0,p.Z)(n),[{fieldKey:"console_domain",required:!1,value:d,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/,customPatternMessage:"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2"}])}var r=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(r).length})),P(r)}),[t,f,x,u,d,m]);var w=function(e){P((0,y.h)(I,e))};return(0,N.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,N.jsxs)("div",{className:n.headerElement,children:[(0,N.jsx)("h3",{className:n.h3Section,children:"Configure"}),(0,N.jsx)("span",{className:n.descriptionText,children:"Basic configurations for tenant management"})]}),(0,N.jsxs)("div",{className:n.headerElement,children:[(0,N.jsx)("h3",{className:n.h3Section,children:"Services"}),(0,N.jsx)("span",{className:n.descriptionText,children:"Whether the tenant's services should request an external IP via LoadBalancer service type."})]}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,N.jsx)(Z.Z,{value:"expose_minio",id:"expose_minio",name:"expose_minio",checked:s,onChange:function(e){var n=e.target.checked;k("exposeMinIO",n)},label:"Expose MinIO Service"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,N.jsx)(Z.Z,{value:"expose_console",id:"expose_console",name:"expose_console",checked:o,onChange:function(e){var n=e.target.checked;k("exposeConsole",n)},label:"Expose Console Service"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,N.jsx)(Z.Z,{value:"custom_domains",id:"custom_domains",name:"custom_domains",checked:u,onChange:function(e){var n=e.target.checked;k("setDomains",n)},label:"Set Custom Domains"})}),u&&(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Custom Domains for MinIO"}),(0,N.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:[(0,N.jsx)("div",{className:n.containerItem,children:(0,N.jsx)(b.Z,{id:"console_domain",name:"console_domain",onChange:function(e){k("consoleDomain",e.target.value),w("tenant_securityContext_runAsUser")},label:"Console Domain",value:d,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",error:I.console_domain||""})}),(0,N.jsxs)("div",{children:[(0,N.jsx)("h4",{children:"MinIO Domains"}),(0,N.jsx)("div",{className:"".concat(n.responsiveSectionItem),children:m.map((function(e,r){return(0,N.jsxs)("div",{className:"".concat(n.containerItem," ").concat(n.wrapperContainer),children:[(0,N.jsx)(b.Z,{id:"minio-domain-".concat(r.toString()),name:"minio-domain-".concat(r.toString()),onChange:function(e){!function(e,n){var t=(0,p.Z)(m);t[n]=e,k("minioDomains",t)}(e.target.value,r)},label:"MinIO Domain ".concat(r+1),value:e,placeholder:"Eg. http://subdomain.domain",error:I["minio-domain-".concat(r.toString())]||""}),(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){return t((0,S.x_)())},disabled:r!==m.length-1,children:(0,N.jsx)(C.Z,{})})}),(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){return t((0,S.JL)(r))},disabled:m.length<=1,children:(0,N.jsx)(_.Z,{})})})]},"minio-domain-key-".concat(r.toString()))}))})]})]})]})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,N.jsx)(Z.Z,{value:"tenantConfig",id:"tenant_configuration",name:"tenant_configuration",checked:f,onChange:function(e){var n=e.target.checked;k("tenantCustom",n)},label:"Security Context"})}),f&&(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for MinIO"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,N.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,N.jsx)("div",{className:n.containerItem,children:(0,N.jsx)(b.Z,{type:"number",id:"tenant_securityContext_runAsUser",name:"tenant_securityContext_runAsUser",onChange:function(e){k("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{runAsUser:e.target.value})),w("tenant_securityContext_runAsUser")},label:"Run As User",value:x.runAsUser,required:!0,error:I.tenant_securityContext_runAsUser||"",min:"0"})}),(0,N.jsx)("div",{className:n.containerItem,children:(0,N.jsx)(b.Z,{type:"number",id:"tenant_securityContext_runAsGroup",name:"tenant_securityContext_runAsGroup",onChange:function(e){k("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{runAsGroup:e.target.value})),w("tenant_securityContext_runAsGroup")},label:"Run As Group",value:x.runAsGroup,required:!0,error:I.tenant_securityContext_runAsGroup||"",min:"0"})}),(0,N.jsx)("div",{className:n.containerItem,children:(0,N.jsx)(b.Z,{type:"number",id:"tenant_securityContext_fsGroup",name:"tenant_securityContext_fsGroup",onChange:function(e){k("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{fsGroup:e.target.value})),w("tenant_securityContext_fsGroup")},label:"FsGroup",value:x.fsGroup,required:!0,error:I.tenant_securityContext_fsGroup||"",min:"0"})})]})}),(0,N.jsx)("br",{}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,N.jsx)("div",{className:n.multiContainer,children:(0,N.jsx)(Z.Z,{value:"tenantSecurityContextRunAsNonRoot",id:"tenant_securityContext_runAsNonRoot",name:"tenant_securityContext_runAsNonRoot",checked:x.runAsNonRoot,onChange:function(e){var n=e.target.checked;k("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})})]})})),T=t(83679),I=t(20890),P=t(20068),k=t(72455),w=t(27247),R=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({adUserDnRows:{display:"flex",marginBottom:10},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),F=function(){var e=(0,g.TL)(),n=R(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADSkipTLS})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerInsecure})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchBaseDN})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchFilter})),m=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNs})),f=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupDNs})),x=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindDN})),h=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindPassword})),_=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchBaseDN})),A=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchFilter})),T=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerStartTLS})),k=(0,i.useState)({}),F=(0,r.Z)(k,2),D=F[0],K=F[1],E=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),G=function(e){K((0,y.h)(D,e))};return(0,i.useEffect)((function(){var n=[];"AD"===t&&(n=[].concat((0,p.Z)(n),[{fieldKey:"AD_URL",required:!0,value:a},{fieldKey:"ad_lookupBindDN",required:!0,value:x}]));var r=(0,j.R)(n);e((0,S.NO)({pageName:"identityProvider",valid:0===Object.keys(r).length})),K(r)}),[x,t,a,u,d,m,f,e]),(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){E("ADURL",e.target.value),G("AD_URL")},label:"LDAP Server Address",value:a,placeholder:"ldap-server:636",error:D.AD_URL||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(Z.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:s,onChange:function(e){var n=e.target.checked;E("ADSkipTLS",n)},label:"Skip TLS Verification"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(Z.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:o,onChange:function(e){var n=e.target.checked;E("ADServerInsecure",n)},label:"Server Insecure"})}),o?(0,N.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,N.jsx)(I.Z,{className:n.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,N.jsx)("br",{})]}):null,(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(Z.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:T,onChange:function(e){var n=e.target.checked;E("ADServerStartTLS",n)},label:"Start TLS connection to AD/LDAP server"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){E("ADLookupBindDN",e.target.value),G("ad_lookupBindDN")},label:"Lookup Bind DN",value:x,placeholder:"cn=admin,dc=min,dc=io",error:D.ad_lookupBindDN||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){E("ADLookupBindPassword",e.target.value)},label:"Lookup Bind Password",value:h,placeholder:"admin"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){E("ADUserDNSearchBaseDN",e.target.value)},label:"User DN Search Base DN",value:_,placeholder:"dc=min,dc=io"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){E("ADUserDNSearchFilter",e.target.value)},label:"User DN Search Filter",value:A,placeholder:"(sAMAcountName=%s)"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){E("ADGroupSearchBaseDN",e.target.value)},label:"Group Search Base DN",value:u,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){E("ADGroupSearchFilter",e.target.value)},label:"Group Search Filter",value:d,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})}),(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"List of user DNs (Distinguished Names) to be Tenant Administrators"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:m.map((function(t,r){return(0,N.jsx)(i.Fragment,{children:(0,N.jsxs)("div",{className:n.adUserDnRows,children:[(0,N.jsx)(b.Z,{id:"ad-userdn-".concat(r.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(r.toString()),value:m[r],onChange:function(n){e((0,S.hK)({index:r,userDN:n.target.value})),G("ad-userdn-".concat(r.toString()))},index:r,error:D["ad-userdn-".concat(r.toString())]||""},"csv-ad-userdn-".concat(r.toString())),(0,N.jsxs)("div",{className:n.buttonTray,children:[(0,N.jsx)(P.Z,{title:"Add User","aria-label":"add",children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){e((0,S.Y$)())},children:(0,N.jsx)(C.Z,{})})}),(0,N.jsx)(P.Z,{title:"Remove","aria-label":"add",children:(0,N.jsx)(v.Z,{size:"small",style:{marginLeft:16},onClick:function(){m.length>1&&e((0,S.GU)(r))},children:(0,N.jsx)(w.Z,{})})})]})]})},"identityField-".concat(r.toString()))}))})]}),(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"List of group DNs (Distinguished Names) to be Tenant Administrators"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:f.map((function(t,r){return(0,N.jsx)(i.Fragment,{children:(0,N.jsxs)("div",{className:n.adUserDnRows,children:[(0,N.jsx)(b.Z,{id:"ad-groupdn-".concat(r.toString()),label:"",placeholder:"",name:"ad-groupdn-".concat(r.toString()),value:f[r],onChange:function(n){e((0,S.in)({index:r,userDN:n.target.value})),G("ad-groupdn-".concat(r.toString()))},index:r,error:D["ad-groupdn-".concat(r.toString())]||""},"csv-ad-groupdn-".concat(r.toString())),(0,N.jsxs)("div",{className:n.buttonTray,children:[(0,N.jsx)(P.Z,{title:"Add Group","aria-label":"add",children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){e((0,S.Fe)())},children:(0,N.jsx)(C.Z,{})})}),(0,N.jsx)(P.Z,{title:"Remove","aria-label":"add",children:(0,N.jsx)(v.Z,{size:"small",style:{marginLeft:16},onClick:function(){f.length>1&&e((0,S.Hu)(r))},children:(0,N.jsx)(w.Z,{})})})]})]})},"identityField-".concat(r.toString()))}))})]})]})},D=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),K=function(){var e=(0,g.TL)(),n=D(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDConfigurationURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDSecretID})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDCallbackURL})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClaimName})),m=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDScopes})),f=(0,i.useState)({}),x=(0,r.Z)(f,2),h=x[0],v=x[1],Z=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),C=function(e){v((0,y.h)(h,e))};return(0,i.useEffect)((function(){var n=[];"OpenID"===t&&(n=[].concat((0,p.Z)(n),[{fieldKey:"openID_CONFIGURATION_URL",required:!0,value:a},{fieldKey:"openID_clientID",required:!0,value:s},{fieldKey:"openID_secretID",required:!0,value:o},{fieldKey:"openID_claimName",required:!0,value:d}]));var r=(0,j.R)(n);e((0,S.NO)({pageName:"identityProvider",valid:0===Object.keys(r).length})),v(r)}),[t,s,o,a,d,e]),(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){Z("openIDConfigurationURL",e.target.value),C("openID_CONFIGURATION_URL")},label:"Configuration URL",value:a,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:h.openID_CONFIGURATION_URL||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){Z("openIDClientID",e.target.value),C("openID_clientID")},label:"Client ID",value:s,error:h.openID_clientID||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"openID_secretID",name:"openID_secretID",onChange:function(e){Z("openIDSecretID",e.target.value),C("openID_secretID")},label:"Secret ID",value:o,error:h.openID_secretID||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"openID_callbackURL",name:"openID_callbackURL",onChange:function(e){Z("openIDCallbackURL",e.target.value),C("openID_callbackURL")},label:"Callback URL",value:u,placeholder:"https://your-console-endpoint:9443/oauth_callback",error:h.openID_callbackURL||""})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){Z("openIDClaimName",e.target.value),C("openID_claimName")},label:"Claim Name",value:d,error:h.openID_claimName||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){Z("openIDScopes",e.target.value),C("openID_scopes")},label:"Scopes",value:m})})]})},E=t(22918),G=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},shortened:{gridTemplateColumns:"auto auto 50px 50px",display:"grid",gridGap:15,marginBottom:10,"& input":{fontWeight:400}}},m.QV),m.DF),m.oO),m.AK))})),L=function(){var e=(0,g.TL)(),n=G(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.accessKeys})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.secretKeys})),o=(0,i.useState)({}),c=(0,r.Z)(o,2),u=c[0],d=c[1],m=function(e){d((0,y.h)(u,e))};return(0,i.useEffect)((function(){var n=[];if("Built-in"===t){n=(0,p.Z)(n);for(var r=0;r"})),n=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.tenantName||""}));return(0,N.jsx)(M.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:(0,N.jsxs)(M.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,N.jsx)(B,{icon:(0,N.jsx)(V.Z,{}),description:"TLS Certificates Warning"}),(0,N.jsxs)(M.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:["Automatic certificate generation is not enabled.",(0,N.jsx)("br",{}),(0,N.jsx)("br",{}),"If you wish to continue only with ",(0,N.jsx)("b",{children:"custom certificates"})," make sure they are valid for the following internode hostnames, i.e.:",(0,N.jsx)("br",{}),(0,N.jsx)("br",{}),(0,N.jsxs)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:["minio.",e,(0,N.jsx)("br",{}),"minio.",e,".svc",(0,N.jsx)("br",{}),"minio.",e,".svc.",(0,N.jsx)("br",{}),"*.",n,"-hl.",e,".svc.",(0,N.jsx)("br",{}),"*.",e,".svc."]}),(0,N.jsx)("br",{}),"Replace ",(0,N.jsx)("em",{children:""}),","," ",(0,N.jsx)("em",{children:""})," and",(0,N.jsx)("em",{children:""})," with the actual values for your MinIO tenant.",(0,N.jsx)("br",{}),(0,N.jsx)("br",{}),"You can learn more at our"," ",(0,N.jsx)("a",{href:"https://docs.min.io/minio/k8s/security/security.html?ref=op#id5",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})]})})},W=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({minioCertificateRows:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1}},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},minioCertsContainer:{marginBottom:15},minioCACertsRow:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1,"& div label":{minWidth:50}}},rowActions:{display:"flex",justifyContent:"flex-end","@media (max-width: 900px)":{flex:1}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,g.TL)(),r=(0,l.v9)((function(e){return e.createTenant.fields.security.enableTLS})),a=(0,l.v9)((function(e){return e.createTenant.fields.security.enableAutoCert})),s=(0,l.v9)((function(e){return e.createTenant.fields.security.enableCustomCerts})),o=(0,l.v9)((function(e){return e.createTenant.certificates.minioCertificates})),u=(0,l.v9)((function(e){return e.createTenant.certificates.caCertificates})),d=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"security",field:e,value:n}))}),[t]);return(0,i.useEffect)((function(){t(r?a||s?(0,S.NO)({pageName:"security",valid:!0}):(0,S.NO)({pageName:"security",valid:!1}):(0,S.NO)({pageName:"security",valid:!0}))}),[r,a,s,t]),(0,N.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,N.jsx)("div",{className:n.headerElement,children:(0,N.jsx)("h3",{className:n.h3Section,children:"Security"})}),(0,N.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(Z.Z,{value:"enableTLS",id:"enableTLS",name:"enableTLS",checked:r,onChange:function(e){var n=e.target.checked;d("enableTLS",n)},label:"TLS",description:"Securing all the traffic using TLS. This is required for Encryption Configuration"})}),r&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(Z.Z,{value:"enableAutoCert",id:"enableAutoCert",name:"enableAutoCert",checked:a,onChange:function(e){var n=e.target.checked;d("enableAutoCert",n)},label:"AutoCert",description:"The internode certificates will be generated and managed by MinIO Operator"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(Z.Z,{value:"enableCustomCerts",id:"enableCustomCerts",name:"enableCustomCerts",checked:s,onChange:function(e){var n=e.target.checked;d("enableCustomCerts",n)},label:"Custom Certificates",description:"Certificates used to terminated TLS at MinIO"})}),s&&(0,N.jsxs)(i.Fragment,{children:[!a&&(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(H,{})}),(0,N.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCertsContainer,children:[(0,N.jsx)(q.Z,{children:"MinIO Certificates"}),o.map((function(e,r){return(0,N.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCertificateRows,children:[(0,N.jsxs)(c.ZP,{item:!0,xs:10,className:n.fileItem,children:[(0,N.jsx)(U.Z,{onChange:function(n,r){t((0,S.aN)({id:e.id,key:"cert",fileName:r,value:n}))},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert}),(0,N.jsx)(U.Z,{onChange:function(n,r){t((0,S.aN)({id:e.id,key:"key",fileName:r,value:n}))},accept:".key,.pem",id:"tlsKey",name:"tlsKey",label:"Key",value:e.key})]}),(0,N.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.Mg)())},disabled:r!==o.length-1,children:(0,N.jsx)(C.Z,{})})}),(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.XX)(e.id))},disabled:o.length<=1,children:(0,N.jsx)(_.Z,{})})})]})]},"minio-certs-".concat(e.id))}))]}),(0,N.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCertsContainer,children:[(0,N.jsx)(q.Z,{children:"MinIO CA Certificates"}),u.map((function(e,r){return(0,N.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCACertsRow,children:[(0,N.jsx)(c.ZP,{item:!0,xs:6,children:(0,N.jsx)(U.Z,{onChange:function(n,r){t((0,S.Eq)({id:e.id,key:"cert",fileName:r,value:n}))},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert})}),(0,N.jsx)(c.ZP,{item:!0,xs:6,children:(0,N.jsxs)("div",{className:n.rowActions,children:[(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.fK)())},disabled:r!==u.length-1,children:(0,N.jsx)(C.Z,{})})}),(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.IG)(e.id))},disabled:u.length<=1,children:(0,N.jsx)(_.Z,{})})})]})})]},"minio-CA-certs-".concat(e.id))}))]})]})]})]})]})})),$=function(e){var n=e.children;return(0,N.jsx)("h1",{style:{margin:0,marginBottom:".8rem",fontSize:"1.3rem"},children:n})},Q=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),Y=function(){var e=(0,g.TL)(),n=Q(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultEngine})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultNamespace})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultPrefix})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultAppRoleEngine})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultId})),m=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultSecret})),f=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultRetry})),x=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultPing})),h=(0,l.v9)((function(e){return e.createTenant.certificates.vaultCertificate})),v=(0,l.v9)((function(e){return e.createTenant.certificates.vaultCA})),Z=(0,i.useState)({}),C=(0,r.Z)(Z,2),_=C[0],A=C[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,p.Z)(n),[{fieldKey:"vault_endpoint",required:!0,value:t},{fieldKey:"vault_id",required:!0,value:d},{fieldKey:"vault_secret",required:!0,value:m},{fieldKey:"vault_ping",required:!1,value:x,customValidation:parseInt(x)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:f,customValidation:parseInt(f)<0,customValidationMessage:"Value needs to be 0 or greater"}]);var r=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(r).length})),A(r)}),[t,a,d,m,x,f,e]);var T=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),I=function(e){A((0,y.h)(_,e))};return(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){T("vaultEndpoint",e.target.value),I("vault_endpoint")},label:"Endpoint",value:t,error:_.vault_endpoint||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){T("vaultEngine",e.target.value),I("vault_engine")},label:"Engine",value:a})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){T("vaultNamespace",e.target.value)},label:"Namespace",value:s})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){T("vaultPrefix",e.target.value)},label:"Prefix",value:o})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"App Role"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){T("vaultAppRoleEngine",e.target.value)},label:"Engine",value:u})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"vault_id",name:"vault_id",onChange:function(e){T("vaultId",e.target.value),I("vault_id")},label:"AppRole ID",value:d,error:_.vault_id||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"vault_secret",name:"vault_secret",onChange:function(e){T("vaultSecret",e.target.value),I("vault_secret")},label:"AppRole Secret",value:m,error:_.vault_secret||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){T("vaultRetry",e.target.value),I("vault_retry")},label:"Retry (Seconds)",value:f,error:_.vault_retry||""})})]})}),(0,N.jsx)(c.ZP,{container:!0,className:n.mutualTlsConfig,children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Mutual TLS authentication (optional)"}),(0,N.jsx)(U.Z,{onChange:function(n,t){e((0,S.cl)({key:"key",fileName:t,value:n})),I("vault_key")},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:h.key}),(0,N.jsx)(U.Z,{onChange:function(n,t){e((0,S.cl)({key:"cert",fileName:t,value:n})),I("vault_cert")},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:h.cert}),(0,N.jsx)(U.Z,{onChange:function(n,t){e((0,S.fk)({fileName:t,value:n})),I("vault_ca")},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:v.cert})]})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,style:{marginTop:15},children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Status"}),(0,N.jsx)(b.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){T("vaultPing",e.target.value),I("vault_ping")},label:"Ping (Seconds)",value:x,error:_.vault_ping||""})]})})]})},J=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),X=function(){var e=(0,g.TL)(),n=J(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureTenantID})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureClientSecret})),u=(0,i.useState)({}),d=(0,r.Z)(u,2),m=d[0],f=d[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,p.Z)(n),[{fieldKey:"azure_endpoint",required:!0,value:t},{fieldKey:"azure_tenant_id",required:!0,value:a},{fieldKey:"azure_client_id",required:!0,value:s},{fieldKey:"azure_client_secret",required:!0,value:o}]);var r=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(r).length})),f(r)}),[t,a,s,o,e]);var x=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),h=function(e){f((0,y.h)(m,e))};return(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){x("azureEndpoint",e.target.value),h("azure_endpoint")},label:"Endpoint",value:t,error:m.azure_endpoint||""})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){x("azureTenantID",e.target.value),h("azure_tenant_id")},label:"Tenant ID",value:a,error:m.azure_tenant_id||""})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){x("azureClientID",e.target.value),h("azure_client_id")},label:"Client ID",value:s,error:m.azure_client_id||""})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){x("azureClientSecret",e.target.value),h("azure_client_secret")},label:"Client Secret",value:o,error:m.azure_client_secret||""})})]})})]})},ee=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),ne=function(){var e=ee(),n=(0,g.TL)(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpProjectID})),r=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientEmail})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKeyID})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKey})),d=(0,i.useCallback)((function(e,t){n((0,S.HM)({pageName:"encryption",field:e,value:t}))}),[n]);return(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){d("gcpProjectID",e.target.value)},label:"Project ID",value:t})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){d("gcpEndpoint",e.target.value)},label:"Endpoint",value:r})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsxs)("fieldset",{className:e.fieldGroup,children:[(0,N.jsx)("legend",{className:e.descriptionText,children:"Credentials"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){d("gcpClientEmail",e.target.value)},label:"Client Email",value:a})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){d("gcpClientID",e.target.value)},label:"Client ID",value:s})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){d("gcpPrivateKeyID",e.target.value)},label:"Private Key ID",value:o})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){d("gcpPrivateKey",e.target.value)},label:"Private Key",value:u})})]})})]})},te=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),re=function(){var e=(0,g.TL)(),n=te(),t=(0,l.v9)((function(e){return e.createTenant.certificates.gemaltoCA})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoEndpoint})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoToken})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoDomain})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoRetry})),d=(0,i.useState)({}),m=(0,r.Z)(d,2),f=m[0],x=m[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,p.Z)(n),[{fieldKey:"gemalto_endpoint",required:!0,value:a},{fieldKey:"gemalto_token",required:!0,value:s},{fieldKey:"gemalto_domain",required:!0,value:o},{fieldKey:"gemalto_retry",required:!1,value:u,customValidation:parseInt(u)<0,customValidationMessage:"Value needs to be 0 or greater"}]);var t=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(t).length})),x(t)}),[a,s,o,u,e]);var h=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),v=function(e){x((0,y.h)(f,e))};return(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){h("gemaltoEndpoint",e.target.value),v("gemalto_endpoint")},label:"Endpoint",value:a,error:f.gemalto_endpoint||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){h("gemaltoToken",e.target.value),v("gemalto_token")},label:"Token",value:s,error:f.gemalto_token||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){h("gemaltoDomain",e.target.value),v("gemalto_domain")},label:"Domain",value:o,error:f.gemalto_domain||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){h("gemaltoRetry",e.target.value),v("gemalto_retry")},label:"Retry (seconds)",value:u,error:f.gemalto_retry||""})})]})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Custom CA Root certificate verification"}),(0,N.jsx)(U.Z,{onChange:function(n,t){e((0,S.MX)({fileName:t,value:n})),v("gemalto_ca")},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:t.cert})]})})]})},ae=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),ie=function(){var e=(0,g.TL)(),n=ae(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsRegion})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsKMSKey})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsAccessKey})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsSecretKey})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsToken})),m=(0,i.useState)({}),f=(0,r.Z)(m,2),x=f[0],h=f[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,p.Z)(n),[{fieldKey:"aws_endpoint",required:!0,value:t},{fieldKey:"aws_region",required:!0,value:a},{fieldKey:"aws_accessKey",required:!0,value:o},{fieldKey:"aws_secretKey",required:!0,value:u}]);var r=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(r).length})),h(r)}),[t,a,u,o,e]);var v=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),Z=function(e){h((0,y.h)(x,e))};return(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){v("awsEndpoint",e.target.value),Z("aws_endpoint")},label:"Endpoint",value:t,error:x.aws_endpoint||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"aws_region",name:"aws_region",onChange:function(e){v("awsRegion",e.target.value),Z("aws_region")},label:"Region",value:a,error:x.aws_region||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){v("awsKMSKey",e.target.value)},label:"KMS Key",value:s})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){v("awsAccessKey",e.target.value),Z("aws_accessKey")},label:"Access Key",value:o,error:x.aws_accessKey||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){v("awsSecretKey",e.target.value),Z("aws_secretKey")},label:"Secret Key",value:u,error:x.aws_secretKey||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"aws_token",name:"aws_token",onChange:function(e){v("awsToken",e.target.value)},label:"Token",value:d})})]})})]})},se=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({encryptionTypeOptions:{marginBottom:15},mutualTlsConfig:{marginTop:15,"& fieldset":{flex:1}},rightSpacer:{marginRight:15},responsiveContainer:{"@media (max-width: 900px)":{display:"flex",flexFlow:"column"}}},m.QV),m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,g.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.replicas})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableEncryption})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.encryptionType})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpProjectID})),m=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpEndpoint})),f=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientEmail})),x=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientID})),v=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKeyID})),C=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKey})),_=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableCustomCertsForKES})),A=(0,l.v9)((function(e){return e.createTenant.fields.security.enableAutoCert})),I=(0,l.v9)((function(e){return e.createTenant.fields.security.enableTLS})),P=(0,l.v9)((function(e){return e.createTenant.certificates.minioCertificates})),k=(0,l.v9)((function(e){return e.createTenant.certificates.serverCertificate})),w=(0,l.v9)((function(e){return e.createTenant.certificates.clientCertificate})),R=(0,l.v9)((function(e){return e.createTenant.fields.security.enableCustomCerts})),F=(0,l.v9)((function(e){return e.createTenant.fields.encryption.kesSecurityContext})),D=(0,i.useState)({}),K=(0,r.Z)(D,2),E=K[0],G=K[1],L=!1;I&&(A||P&&P.filter((function(e){return e.encoded_key&&e.encoded_cert})).length>0)&&(L=!0);var z=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"encryption",field:e,value:n}))}),[t]),O=function(e){G((0,y.h)(E,e))};return(0,i.useEffect)((function(){var e=[];o&&(e=[].concat((0,p.Z)(e),[{fieldKey:"replicas",required:!0,value:s,customValidation:parseInt(s)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:F.runAsUser,customValidation:""===F.runAsUser||parseInt(F.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:F.runAsGroup,customValidation:""===F.runAsGroup||parseInt(F.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:F.fsGroup,customValidation:""===F.fsGroup||parseInt(F.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),R&&(e=[].concat((0,p.Z)(e),[{fieldKey:"serverKey",required:!A,value:k.encoded_key},{fieldKey:"serverCert",required:!A,value:k.encoded_cert},{fieldKey:"clientKey",required:!A,value:w.encoded_key},{fieldKey:"clientCert",required:!A,value:w.encoded_cert}])));var n=(0,j.R)(e);t((0,S.NO)({pageName:"encryption",valid:0===Object.keys(n).length})),G(n)}),[o,u,d,m,f,x,v,C,t,A,R,k.encoded_key,k.encoded_cert,w.encoded_key,w.encoded_cert,F,s]),(0,N.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,N.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,N.jsx)(c.ZP,{item:!0,xs:!0,children:(0,N.jsx)($,{children:"Encryption"})}),(0,N.jsx)(c.ZP,{item:!0,xs:4,justifyContent:"end",textAlign:"right",children:(0,N.jsx)(Z.Z,{label:"",indicatorLabels:["Enabled","Disabled"],checked:o,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(e){var n=e.target.checked;z("enableEncryption",n)},description:"",disabled:!L})})]}),(0,N.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("span",{className:n.descriptionText,children:"MinIO Server-Side Encryption (SSE) protects objects as part of write operations, allowing clients to take advantage of server processing power to secure objects at the storage layer (encryption-at-rest). SSE also provides key functionality to regulatory and compliance requirements around secure locking and erasure."})}),(0,N.jsx)(c.ZP,{xs:12,children:(0,N.jsx)("hr",{className:n.hrClass})}),o&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.encryptionTypeOptions,children:(0,N.jsx)(T.Z,{currentSelection:u,id:"encryptionType",name:"encryptionType",label:"Encryption Options",onChange:function(e){z("encryptionType",e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===u&&(0,N.jsx)(Y,{}),"azure"===u&&(0,N.jsx)(X,{}),"gcp"===u&&(0,N.jsx)(ne,{}),"aws"===u&&(0,N.jsx)(ie,{}),"gemalto"===u&&(0,N.jsx)(re,{}),(0,N.jsx)("div",{className:n.headerElement,children:(0,N.jsx)("h4",{className:n.h3Section,children:"Additional Configurations"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(Z.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:_||!A,onChange:function(e){var n=e.target.checked;z("enableCustomCertsForKES",n)},label:"Custom Certificates",disabled:!A})}),(_||!A)&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{container:!0,children:(0,N.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Encryption Service Certificates"}),(0,N.jsx)(U.Z,{onChange:function(e,n){t((0,S.$1)({key:"key",fileName:n,value:e})),O("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",error:E.serverKey||"",value:k.key,required:!A}),(0,N.jsx)(U.Z,{onChange:function(e,n){t((0,S.$1)({key:"cert",fileName:n,value:e})),O("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",error:E.serverCert||"",value:k.cert,required:!A})]})})}),(0,N.jsx)(c.ZP,{container:!0,style:{marginBottom:15},children:(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"Mutual TLS authentication with MinIO"}),(0,N.jsx)(U.Z,{onChange:function(e,n){t((0,S.BI)({key:"key",fileName:n,value:e})),O("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",error:E.clientKey||"",value:w.key,required:!A}),(0,N.jsx)(U.Z,{onChange:function(e,n){t((0,S.BI)({key:"cert",fileName:n,value:e})),O("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",error:E.clientCert||"",value:w.cert,required:!A})]})})})]}),(0,N.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,classes:n.formFieldRow,children:(0,N.jsx)(b.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){z("replicas",e.target.value),O("replicas")},label:"Replicas",value:s,required:!0,error:E.replicas||""})}),(0,N.jsxs)("fieldset",{className:n.fieldGroup,style:{marginTop:15},children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for KES pods"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.kesSecurityContext,children:(0,N.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveContainer),children:[(0,N.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,N.jsx)(b.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){z("kesSecurityContext",(0,a.Z)((0,a.Z)({},F),{},{runAsUser:e.target.value})),O("kes_securityContext_runAsUser")},label:"Run As User",value:F.runAsUser,required:!0,error:E.kes_securityContext_runAsUser||"",min:"0"})}),(0,N.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,N.jsx)(b.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){z("kesSecurityContext",(0,a.Z)((0,a.Z)({},F),{},{runAsGroup:e.target.value})),O("kes_securityContext_runAsGroup")},label:"Run As Group",value:F.runAsGroup,required:!0,error:E.kes_securityContext_runAsGroup||"",min:"0"})}),(0,N.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,N.jsx)(b.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){z("kesSecurityContext",(0,a.Z)((0,a.Z)({},F),{},{fsGroup:e.target.value})),O("kes_securityContext_fsGroup")},label:"FsGroup",value:F.fsGroup,required:!0,error:E.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,N.jsx)("br",{}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("div",{className:n.multiContainer,children:(0,N.jsx)(Z.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:F.runAsNonRoot,onChange:function(e){var n=e.target.checked;z("kesSecurityContext",(0,a.Z)((0,a.Z)({},F),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})]})]})})),oe=t(4942),le=t(81207),ce=t(47919),ue=t(90673),de=t(45660),me=t(87995),fe=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},affinityRow:{marginBottom:10,display:"flex"}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,g.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.affinity.podAffinity})),o=(0,l.v9)((function(e){return e.createTenant.fields.affinity.nodeSelectorLabels})),u=(0,l.v9)((function(e){return e.createTenant.fields.affinity.withPodAntiAffinity})),d=(0,l.v9)((function(e){return e.createTenant.nodeSelectorPairs})),m=(0,l.v9)((function(e){return e.createTenant.tolerations})),f=(0,i.useState)({}),x=(0,r.Z)(f,2),y=x[0],C=x[1],A=(0,i.useState)(!0),I=(0,r.Z)(A,2),P=I[0],k=I[1],w=(0,i.useState)({}),R=(0,r.Z)(w,2),F=R[0],D=R[1],K=(0,i.useState)([]),E=(0,r.Z)(K,2),G=E[0],L=E[1],z=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"affinity",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){P&&le.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){k(!1),D(e);var n=[];for(var t in e)n.push({label:t,value:t});L(n)})).catch((function(e){k(!1),t((0,me.zb)(e)),D({})}))}),[t,P]),(0,i.useEffect)((function(){if(d){var e=d.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,n,t){return t.indexOf(e)===n})).join("&");z("nodeSelectorLabels",e)}}),[d,z]),(0,i.useEffect)((function(){var e=[];if("nodeSelector"===s){var n=!0,r=o.split("&");1===r.length&&""===r[0]&&(n=!1),r.forEach((function(e,t){var a=e.split("=");2!==a.length&&(n=!1),t+1!==r.length&&(""!==a[0]&&""!==a[1]||(n=!1))})),e=[].concat((0,p.Z)(e),[{fieldKey:"labels",required:!0,value:o,customValidation:!n,customValidationMessage:"You need to add at least one label key-pair"}])}var a=(0,j.R)(e);t((0,S.NO)({pageName:"affinity",valid:0===Object.keys(a).length})),C(a)}),[t,s,o]);var O=function(e,n,r){var i=(0,a.Z)((0,a.Z)({},m[e]),{},(0,oe.Z)({},n,r));t((0,S.iU)({index:e,tolerationValue:i}))};return(0,N.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,N.jsxs)("div",{className:n.headerElement,children:[(0,N.jsx)("h3",{className:n.h3Section,children:"Pod Placement"}),(0,N.jsx)("span",{className:n.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,N.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,N.jsx)("div",{className:n.label,children:"Type"}),(0,N.jsx)("div",{className:"".concat(n.descriptionText," ").concat(n.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,N.jsx)(c.ZP,{item:!0,className:n.radioField,children:(0,N.jsx)(T.Z,{currentSelection:s,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){z("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===s&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)("br",{}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(Z.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:u,onChange:function(e){var n=e.target.checked;z("withPodAntiAffinity",n)},label:"With Pod Anti-Affinity"})}),(0,N.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,N.jsx)("h3",{children:"Labels"}),(0,N.jsx)("span",{className:n.error,children:y.labels}),(0,N.jsx)(c.ZP,{container:!0,children:d&&d.map((function(e,r){return(0,N.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,N.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelKey,children:[G.length>0&&(0,N.jsx)(ue.Z,{onChange:function(e){var n=e.target.value,a={key:n,value:F[n][0]},i=(0,p.Z)(d);i[r]=a,t((0,S.i$)(i))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:G}),0===G.length&&(0,N.jsx)(b.Z,{id:"nodeselector-key-".concat(r.toString()),label:"",name:"nodeselector-".concat(r.toString()),value:e.key,onChange:function(e){var n=(0,p.Z)(d);n[r]={key:n[r].key,value:e.target.value},t((0,S.i$)(n))},index:r,placeholder:"Key"})]}),(0,N.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelValue,children:[G.length>0&&(0,N.jsx)(ue.Z,{onChange:function(e){var n=(0,p.Z)(d);n[r]={key:n[r].key,value:e.target.value},t((0,S.i$)(n))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:F[e.key]?F[e.key].map((function(e){return{label:e,value:e}})):[]}),0===G.length&&(0,N.jsx)(b.Z,{id:"nodeselector-value-".concat(r.toString()),label:"",name:"nodeselector-".concat(r.toString()),value:e.value,onChange:function(e){var n=(0,p.Z)(d);n[r]={key:n[r].key,value:e.target.value},t((0,S.i$)(n))},index:r,placeholder:"value"})]}),(0,N.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){var e=(0,p.Z)(d);G.length>0?e.push({key:G[0].value,value:F[G[0].value][0]}):e.push({key:"",value:""}),t((0,S.i$)(e))},children:(0,N.jsx)(ce.Z,{})})}),d.length>1&&(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){var e=d.filter((function(e,n){return n!==r}));t((0,S.i$)(e))},children:(0,N.jsx)(_.Z,{})})})]})]},"affinity-keyVal-".concat(r.toString()))}))})]})]}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,N.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,N.jsx)("h3",{children:"Tolerations"}),(0,N.jsx)("span",{className:n.error,children:y.tolerations}),(0,N.jsx)(c.ZP,{container:!0,children:m&&m.map((function(e,r){var a;return(0,N.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,N.jsx)(de.Z,{effect:e.effect,onEffectChange:function(e){O(r,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){O(r,"key",e)},operator:e.operator,onOperatorChange:function(e){O(r,"operator",e)},value:e.value,onValueChange:function(e){O(r,"value",e)},tolerationSeconds:(null===(a=e.tolerationSeconds)||void 0===a?void 0:a.seconds)||0,onSecondsChange:function(e){O(r,"tolerationSeconds",{seconds:e})},index:r}),(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.ly)())},disabled:r!==m.length-1,children:(0,N.jsx)(ce.Z,{})})}),(0,N.jsx)("div",{className:n.overlayAction,children:(0,N.jsx)(v.Z,{size:"small",onClick:function(){return t((0,S.JX)(r))},disabled:m.length<=1,children:(0,N.jsx)(_.Z,{})})})]},"affinity-keyVal-".concat(r.toString()))}))})]})})]})})),ge=t(32291),pe=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,g.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.configure.customImage})),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageName})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.customDockerhub})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistry})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryUsername})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryPassword})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusEnabled})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),v=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchEnabled})),C=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchVolumeSize})),_=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusVolumeSize})),A=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchSelectedStorageClass})),T=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchImage})),I=(0,l.v9)((function(e){return e.createTenant.fields.configure.kesImage})),P=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresImage})),k=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresInitImage})),w=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSelectedStorageClass})),R=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusImage})),F=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSidecarImage})),D=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusInitImage})),K=(0,i.useState)({}),E=(0,r.Z)(K,2),G=E[0],L=E[1],z=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];f&&(e=[].concat((0,p.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:w,customValidation:""===w,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:_,customValidation:""===_||parseInt(_)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),v&&(e=[].concat((0,p.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:A,customValidation:""===A,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:C,customValidation:""===C||parseInt(C)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),a&&(e=[].concat((0,p.Z)(e),[{fieldKey:"image",required:!1,value:s,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/minio:VERSION'"},{fieldKey:"logSearchImage",required:!1,value:T,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/operator:VERSION'"},{fieldKey:"kesImage",required:!1,value:I,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/kes:VERSION'"},{fieldKey:"logSearchPostgresImage",required:!1,value:P,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/postgres:VERSION'"},{fieldKey:"logSearchPostgresInitImage",required:!1,value:k,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"},{fieldKey:"prometheusImage",required:!1,value:R,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/prometheus:VERSION'"},{fieldKey:"prometheusSidecarImage",required:!1,value:F,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'project/container:VERSION'"},{fieldKey:"prometheusInitImage",required:!1,value:D,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"}]),o&&(e=[].concat((0,p.Z)(e),[{fieldKey:"registry",required:!0,value:u},{fieldKey:"registryUsername",required:!0,value:d},{fieldKey:"registryPassword",required:!0,value:m}])));var n=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(n).length})),L(n)}),[a,s,T,I,P,k,R,F,D,o,u,d,m,t,f,x,v,w,_,A,C]);var O=function(e){L((0,y.h)(G,e))};return(0,N.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,N.jsxs)("div",{className:n.headerElement,children:[(0,N.jsx)("h3",{className:n.h3Section,children:"Container Images"}),(0,N.jsx)("span",{className:n.descriptionText,children:"Specify the container images used by the Tenant and it's features."})]}),(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"image",name:"image",onChange:function(e){z("imageName",e.target.value),O("image")},label:"MinIO",value:s,error:G.image||"",placeholder:"minio/minio:RELEASE.2022-02-26T02-54-46Z"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"kesImage",name:"kesImage",onChange:function(e){z("kesImage",e.target.value),O("kesImage")},label:"KES",value:I,error:G.kesImage||"",placeholder:"minio/kes:v0.17.6"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)("h4",{children:"Log Search"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"logSearchImage",name:"logSearchImage",onChange:function(e){z("logSearchImage",e.target.value),O("logSearchImage")},label:"API",value:T,error:G.logSearchImage||"",placeholder:"minio/operator:v4.4.22"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"logSearchPostgresImage",name:"logSearchPostgresImage",onChange:function(e){z("logSearchPostgresImage",e.target.value),O("logSearchPostgresImage")},label:"PostgreSQL",value:P,error:G.logSearchPostgresImage||"",placeholder:"library/postgres:13"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"logSearchPostgresInitImage",name:"logSearchPostgresInitImage",onChange:function(e){z("logSearchPostgresInitImage",e.target.value),O("logSearchPostgresInitImage")},label:"PostgreSQL Init",value:k,error:G.logSearchPostgresInitImage||"",placeholder:"library/busybox:1.33.1"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)("h4",{children:"Monitoring"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"prometheusImage",name:"prometheusImage",onChange:function(e){z("prometheusImage",e.target.value),O("prometheusImage")},label:"Prometheus",value:R,error:G.prometheusImage||"",placeholder:"quay.io/prometheus/prometheus:latest"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"prometheusSidecarImage",name:"prometheusSidecarImage",onChange:function(e){z("prometheusSidecarImage",e.target.value),O("prometheusSidecarImage")},label:"Prometheus Sidecar",value:F,error:G.prometheusSidecarImage||"",placeholder:"library/alpine:latest"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"prometheusInitImage",name:"prometheusInitImage",onChange:function(e){z("prometheusInitImage",e.target.value),O("prometheusInitImage")},label:"Prometheus Init",value:D,error:G.prometheusInitImage||"",placeholder:"library/busybox:1.33.1"})})]}),a&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)("h4",{children:"Custom Container Registry"})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(Z.Z,{value:"custom_docker_hub",id:"custom_docker_hub",name:"custom_docker_hub",checked:o,onChange:function(e){var n=e.target.checked;z("customDockerhub",n)},label:"Use a private container registry"})})]}),o&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"registry",name:"registry",onChange:function(e){z("imageRegistry",e.target.value)},label:"Endpoint",value:u,error:G.registry||"",placeholder:"https://index.docker.io/v1/",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"registryUsername",name:"registryUsername",onChange:function(e){z("imageRegistryUsername",e.target.value)},label:"Username",value:d,error:G.registryUsername||"",required:!0})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(b.Z,{id:"registryPassword",name:"registryPassword",onChange:function(e){z("imageRegistryPassword",e.target.value)},label:"Password",value:m,error:G.registryPassword||"",required:!0})})]})]})})),xe=t(74794),he=t(84669),ve=t(79836),ye=t(53382),je=t(53994),Ze=t(35855),be=t(45248),Ce=t(94721),_e=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({root:{margin:4},table:{"& .MuiTableCell-root":{fontSize:13}}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.nodes})),r=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesMemoryRequest})),a=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParity})),s=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.distribution})),o=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParityCalc})),c=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesCPURequest})),u=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.integrationSelection})),d=o.storageFactors.find((function(e){return e.erasureCode===a}));return(0,N.jsxs)("div",{className:n.root,children:[(0,N.jsx)("h4",{children:"Resource Allocation"}),(0,N.jsx)(Ce.Z,{}),(0,N.jsx)(ve.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,N.jsxs)(ye.Z,{children:[(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Number of Servers"}),(0,N.jsx)(je.Z,{align:"right",children:parseInt(t)>0?t:"-"})]}),""===u.typeSelection&&""===u.storageClass&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Drives per Server"}),(0,N.jsx)(je.Z,{align:"right",children:s?s.disks:"-"})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Drive Capacity"}),(0,N.jsx)(je.Z,{align:"right",children:s?(0,be.ae)(s.pvSize):"-"})]})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Total Volumes"}),(0,N.jsx)(je.Z,{align:"right",children:s?s.persistentVolumes:"-"})]}),""===u.typeSelection&&""===u.storageClass&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Memory per Node"}),(0,N.jsxs)(je.Z,{align:"right",children:[r," Gi"]})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"CPU Selection"}),(0,N.jsx)(je.Z,{style:{borderBottom:0},align:"right",children:c})]})]})]})}),0===o.error&&d&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)("h4",{children:"Erasure Code Configuration"}),(0,N.jsx)(Ce.Z,{}),(0,N.jsx)(ve.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,N.jsxs)(ye.Z,{children:[(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"EC Parity"}),(0,N.jsx)(je.Z,{align:"right",children:""!==a?a:"-"})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Raw Capacity"}),(0,N.jsx)(je.Z,{align:"right",children:(0,be.ae)(o.rawCapacity)})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Usable Capacity"}),(0,N.jsx)(je.Z,{align:"right",children:(0,be.ae)(d.maxCapacity)})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"Server Failures Tolerated"}),(0,N.jsx)(je.Z,{style:{borderBottom:0},align:"right",children:s?Math.floor(d.maxFailureTolerations/s.disks):"-"})]})]})})]}),""!==u.typeSelection&&""!==u.storageClass&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)("h4",{children:"Single Instance Configuration"}),(0,N.jsx)(Ce.Z,{}),(0,N.jsx)(ve.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,N.jsxs)(ye.Z,{children:[(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"CPU"}),(0,N.jsx)(je.Z,{align:"right",children:0!==u.CPU?u.CPU:"-"})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Memory"}),(0,N.jsx)(je.Z,{align:"right",children:0!==u.memory?"".concat(u.memory," Gi"):"-"})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{scope:"row",children:"Drives per Server"}),(0,N.jsx)(je.Z,{align:"right",children:0!==u.drivesPerServer?"".concat(u.drivesPerServer):"-"})]}),(0,N.jsxs)(Ze.Z,{children:[(0,N.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"Drive Size"}),(0,N.jsxs)(je.Z,{style:{borderBottom:0},align:"right",children:[u.driveSize.driveSize,u.driveSize.sizeUnit]})]})]})})]})]})})),Se=t(19720),Ne=t(45884),Ae=t(46078),Te=t(51691),Ie=t(2148),Pe=t(15900),ke=t(98222),we=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},m.oO),m.Qw))})),Re=function(){var e=(0,g.TL)(),n=we(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),r=(0,l.v9)((function(e){return e.createTenant.addNSLoading})),a=(0,l.v9)((function(e){return e.createTenant.addNSOpen}));return(0,N.jsx)(Ie.Z,{title:"New namespace",confirmText:"Create",confirmButtonProps:{color:"primary",variant:"contained"},isOpen:a,titleIcon:(0,N.jsx)(Pe.EjK,{}),isLoading:r,onConfirm:function(){e((0,ke.QD)())},onClose:function(){e((0,S.pb)())},confirmationContent:(0,N.jsxs)(i.Fragment,{children:[r&&(0,N.jsx)(u.Z,{}),(0,N.jsxs)(Te.Z,{children:["Are you sure you want to add a namespace called",(0,N.jsx)("br",{}),(0,N.jsx)("b",{className:n.wrapText,children:t}),"?"]})]})})},Fe=t(48573),De=t.n(Fe),Ke=function(e){e.formToRender;var n=(0,g.TL)(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),r=(0,l.v9)((function(e){return e.createTenant.showNSCreateButton})),a=(0,l.v9)((function(e){return e.createTenant.validationErrors.namespace})),s=(0,l.v9)((function(e){return e.createTenant.addNSOpen})),o=(0,i.useMemo)((function(){return De()((function(){n((0,ke.IO)())}),500)}),[n]);(0,i.useEffect)((function(){if(""!==t)return o(),o.cancel}),[o,t]);return(0,N.jsxs)(i.Fragment,{children:[s&&(0,N.jsx)(Re,{}),(0,N.jsx)(b.Z,{id:"namespace",name:"namespace",onChange:function(e){n((0,S.Zx)(e.target.value))},label:"Namespace",value:t,error:a||"",overlayId:"add-namespace",overlayIcon:r?(0,N.jsx)(ce.Z,{}):null,overlayAction:function(){n((0,S.Oj)())},required:!0})]})},Ee=function(){var e=(0,g.TL)(),n=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.tenantName})),t=(0,l.v9)((function(e){return e.createTenant.validationErrors["tenant-name"]}));return(0,N.jsx)(b.Z,{id:"tenant-name",name:"tenant-name",onChange:function(n){e((0,S.V7)(n.target.value))},label:"Name",value:n,required:!0,error:t||""})},Ge=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({sizePreview:{position:"fixed",marginLeft:10,background:"#FFFFFF",border:"1px solid #EAEAEA",padding:2}},m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=e.formToRender,r=(0,g.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),s=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageType})),u=(0,l.v9)((function(e){return e.createTenant.storageClasses})),d=(0,l.v9)(Ae.$4),m=(0,i.useCallback)((function(e,n){r((0,S.HM)({pageName:"nameTenant",field:e,value:n}))}),[r]);return(0,i.useEffect)((function(){var e=t===Ne.cy.default&&u.length>0||t!==Ne.cy.default&&""!==s;r((0,S.NO)({pageName:"nameTenant",valid:e}))}),[u,r,s,t]),(0,N.jsx)(i.Fragment,{children:(0,N.jsxs)(c.ZP,{container:!0,children:[(0,N.jsx)(c.ZP,{item:!0,xs:8,md:9,children:(0,N.jsx)(h.Z,{className:n.paperWrapper,sx:{minHeight:550},children:(0,N.jsxs)(c.ZP,{container:!0,children:[(0,N.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,N.jsxs)("div",{className:n.headerElement,children:[(0,N.jsx)("h3",{className:n.h3Section,children:"Name"}),(0,N.jsx)("span",{className:n.descriptionText,children:"How would you like to name this new tenant?"})]}),(0,N.jsx)("div",{className:n.formFieldRow,children:(0,N.jsx)(Ee,{})})]}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(Ke,{formToRender:t})}),t===Ne.cy.default?(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(ue.Z,{id:"storage_class",name:"storage_class",onChange:function(e){m("selectedStorageClass",e.target.value)},label:"Storage Class",value:a,options:u,disabled:u.length<1})}):(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,N.jsx)(ue.Z,{id:"storage_type",name:"storage_type",onChange:function(e){r((0,S.Qy)({storageType:e.target.value,features:d}))},label:o()(Ne.Hd,"".concat(t,".variantSelectorLabel"),"Storage Type"),value:s,options:o()(Ne.Hd,"".concat(t,".variantSelectorValues"),[])})}),t===Ne.cy.default?(0,N.jsx)(Se.Z,{}):o()(Ne.Hd,"".concat(t,".sizingComponent"),null)]})})}),(0,N.jsx)(c.ZP,{item:!0,xs:4,md:3,children:(0,N.jsx)("div",{className:n.sizePreview,children:(0,N.jsx)(_e,{})})})]})})})),Le=function(){var e=(0,l.v9)(Ae.$4),n=(0,i.useState)(null),t=(0,r.Z)(n,2),a=t[0],s=t[1];return(0,i.useEffect)((function(){var n=Ne.cy.default;e&&0!==e.length&&Object.keys(Ne.I8).forEach((function(t){e.includes(t)&&(n=o()(Ne.I8,t,Ne.cy.default))}));s(n)}),[e]),null===a?null:(0,N.jsx)(Ge,{formToRender:a})},ze=t(56578),Oe=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},logSearchEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"},fieldSpaceTop:{marginTop:15}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,g.TL)(),s=(0,l.v9)((function(e){return e.createTenant.storageClasses})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchEnabled})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchVolumeSize})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchSelectedStorageClass})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchImage})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresImage})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresInitImage})),v=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),C=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),_=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchSecurityContext})),A=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresSecurityContext})),T=(0,i.useState)({}),I=(0,r.Z)(T,2),P=I[0],k=I[1],w=[{label:"Default",value:"default"}].concat((0,p.Z)(s)),R=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];o&&(e=[].concat((0,p.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:d,customValidation:""===d,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:u,customValidation:""===u||parseInt(u)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"},{fieldKey:"logSearch_securityContext_runAsUser",required:!0,value:_.runAsUser,customValidation:""===_.runAsUser||parseInt(_.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_runAsGroup",required:!0,value:_.runAsGroup,customValidation:""===_.runAsGroup||parseInt(_.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_fsGroup",required:!0,value:_.fsGroup,customValidation:""===_.fsGroup||parseInt(_.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsUser",required:!0,value:A.runAsUser,customValidation:""===A.runAsUser||parseInt(A.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsGroup",required:!0,value:_.runAsGroup,customValidation:""===A.runAsGroup||parseInt(A.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_fsGroup",required:!0,value:A.fsGroup,customValidation:""===A.fsGroup||parseInt(A.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var n=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(n).length})),k(n)}),[m,f,x,t,o,d,u,C,_,A]),(0,i.useEffect)((function(){s.length>0&&(0===s.filter((function(e){return e.value===d})).length&&R("logSearchSelectedStorageClass","default"))}),[d,v,s,R]);var F=function(e){k((0,y.h)(P,e))};return(0,N.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,N.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,N.jsx)(c.ZP,{item:!0,xs:!0,children:(0,N.jsx)($,{children:"Audit Log"})}),(0,N.jsx)(c.ZP,{item:!0,xs:4,children:(0,N.jsx)(Z.Z,{value:"enableLogging",id:"enableLogging",name:"enableLogging",checked:o,onChange:function(e){var n=e.target.checked;R("logSearchEnabled",n)},indicatorLabels:["Enabled","Disabled"]})})]}),(0,N.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("span",{className:n.descriptionText,children:"Deploys a small PostgreSQL database and stores access logs of all calls into the tenant."})}),(0,N.jsx)(c.ZP,{xs:12,children:(0,N.jsx)("hr",{className:n.hrClass})}),o&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(ue.Z,{id:"log_search_storage_class",name:"log_search_storage_class",onChange:function(e){R("logSearchSelectedStorageClass",e.target.value)},label:"Log Search Storage Class",value:d,options:w,disabled:w.length<1})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("div",{className:n.multiContainer,children:(0,N.jsx)(b.Z,{type:"number",id:"log_search_volume_size",name:"log_search_volume_size",onChange:function(e){R("logSearchVolumeSize",e.target.value),F("log_search_volume_size")},label:"Storage Size",overlayObject:(0,N.jsx)(ze.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:u,required:!0,error:P.log_search_volume_size||"",min:"0"})})}),(0,N.jsxs)("fieldset",{className:"".concat(n.fieldGroup," ").concat(n.fieldSpaceTop),children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for LogSearch"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"logSearch_securityContext_runAsUser",name:"logSearch_securityContext_runAsUser",onChange:function(e){R("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsUser:e.target.value})),F("logSearch_securityContext_runAsUser")},label:"Run As User",value:_.runAsUser,required:!0,error:P.logSearch_securityContext_runAsUser||"",min:"0"})}),(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"logSearch_securityContext_runAsGroup",name:"logSearch_securityContext_runAsGroup",onChange:function(e){R("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsGroup:e.target.value})),F("logSearch_securityContext_runAsGroup")},label:"Run As Group",value:_.runAsGroup,required:!0,error:P.logSearch_securityContext_runAsGroup||"",min:"0"})}),(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"logSearch_securityContext_fsGroup",name:"logSearch_securityContext_fsGroup",onChange:function(e){R("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{fsGroup:e.target.value})),F("logSearch_securityContext_fsGroup")},label:"FsGroup",value:_.fsGroup,required:!0,error:P.logSearch_securityContext_fsGroup||"",min:"0"})})]})}),(0,N.jsx)("br",{}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("div",{className:n.multiContainer,children:(0,N.jsx)(Z.Z,{value:"logSearchSecurityContextRunAsNonRoot",id:"logSearch_securityContext_runAsNonRoot",name:"logSearch_securityContext_runAsNonRoot",checked:_.runAsNonRoot,onChange:function(e){var n=e.target.checked;R("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]}),(0,N.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for PostgreSQL"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"postgres_securityContext_runAsUser",name:"postgres_securityContext_runAsUser",onChange:function(e){R("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},A),{},{runAsUser:e.target.value})),F("postgres_securityContext_runAsUser")},label:"Run As User",value:A.runAsUser,required:!0,error:P.postgres_securityContext_runAsUser||"",min:"0"})}),(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"postgres_securityContext_runAsGroup",name:"postgres_securityContext_runAsGroup",onChange:function(e){R("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},A),{},{runAsGroup:e.target.value})),F("postgres_securityContext_runAsGroup")},label:"Run As Group",value:A.runAsGroup,required:!0,error:P.postgres_securityContext_runAsGroup||"",min:"0"})}),(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"postgres_securityContext_fsGroup",name:"postgres_securityContext_fsGroup",onChange:function(e){R("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},A),{},{fsGroup:e.target.value})),F("postgres_securityContext_fsGroup")},label:"FsGroup",value:A.fsGroup,required:!0,error:P.postgres_securityContext_fsGroup||"",min:"0"})})]})}),(0,N.jsx)("br",{}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("div",{className:n.multiContainer,children:(0,N.jsx)(Z.Z,{value:"postgresSecurityContextRunAsNonRoot",id:"postgres_securityContext_runAsNonRoot",name:"postgres_securityContext_runAsNonRoot",checked:A.runAsNonRoot,onChange:function(e){var n=e.target.checked;R("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},A),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})]})})),Ue=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},fieldSpaceTop:{marginTop:15},prometheusEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,g.TL)(),s=(0,l.v9)((function(e){return e.createTenant.storageClasses})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusEnabled})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusVolumeSize})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSelectedStorageClass})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusImage})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSidecarImage})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusInitImage})),v=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),C=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),_=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSecurityContext})),A=(0,i.useState)({}),T=(0,r.Z)(A,2),I=T[0],P=T[1],k=[{label:"Default",value:"default"}].concat((0,p.Z)(s)),w=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];o&&(e=[].concat((0,p.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:d,customValidation:""===d,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:u,customValidation:""===u||parseInt(u)<=0,customValidationMessage:"Volume size must be present and be greater than 0"},{fieldKey:"prometheus_securityContext_runAsUser",required:!0,value:_.runAsUser,customValidation:""===_.runAsUser||parseInt(_.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_runAsGroup",required:!0,value:_.runAsGroup,customValidation:""===_.runAsGroup||parseInt(_.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_fsGroup",required:!0,value:_.fsGroup,customValidation:""===_.fsGroup||parseInt(_.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var n=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(n).length})),P(n)}),[m,f,x,t,o,d,u,C,_]),(0,i.useEffect)((function(){s.length>0&&(0===s.filter((function(e){return e.value===d})).length&&w("prometheusSelectedStorageClass","default"))}),[d,v,s,w]);var R=function(e){P((0,y.h)(I,e))};return(0,N.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,N.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,N.jsx)(c.ZP,{item:!0,xs:!0,children:(0,N.jsx)($,{children:"Monitoring"})}),(0,N.jsx)(c.ZP,{item:!0,xs:4,children:(0,N.jsx)(Z.Z,{indicatorLabels:["Enabled","Disabled"],checked:o,value:"monitoring_status",id:"monitoring-status",name:"monitoring-status",onChange:function(e){var n=e.target.checked;w("prometheusEnabled",n)},description:""})})]}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("span",{className:n.descriptionText,children:"A small Prometheus will be deployed to keep metrics about the tenant."})}),(0,N.jsx)(c.ZP,{xs:12,children:(0,N.jsx)("hr",{className:n.hrClass})}),(0,N.jsx)(c.ZP,{container:!0,spacing:1,children:o&&(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(ue.Z,{id:"prometheus_storage_class",name:"prometheus_storage_class",onChange:function(e){w("prometheusSelectedStorageClass",e.target.value)},label:"Storage Class",value:d,options:k,disabled:k.length<1})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)("div",{className:n.multiContainer,children:(0,N.jsx)(b.Z,{type:"number",id:"prometheus_volume_size",name:"prometheus_volume_size",onChange:function(e){w("prometheusVolumeSize",e.target.value),R("prometheus_volume_size")},label:"Storage Size",overlayObject:(0,N.jsx)(ze.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:u,required:!0,error:I.prometheus_volume_size||"",min:"0"})})}),(0,N.jsxs)("fieldset",{className:"".concat(n.fieldGroup," ").concat(n.fieldSpaceTop),children:[(0,N.jsx)("legend",{className:n.descriptionText,children:"SecurityContext"}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,N.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"prometheus_securityContext_runAsUser",name:"prometheus_securityContext_runAsUser",onChange:function(e){w("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsUser:e.target.value})),R("prometheus_securityContext_runAsUser")},label:"Run As User",value:_.runAsUser,required:!0,error:I.prometheus_securityContext_runAsUser||"",min:"0"})}),(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"prometheus_securityContext_runAsGroup",name:"prometheus_securityContext_runAsGroup",onChange:function(e){w("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsGroup:e.target.value})),R("prometheus_securityContext_runAsGroup")},label:"Run As Group",value:_.runAsGroup,required:!0,error:I.prometheus_securityContext_runAsGroup||"",min:"0"})}),(0,N.jsx)("div",{className:n.configSectionItem,children:(0,N.jsx)(b.Z,{type:"number",id:"prometheus_securityContext_fsGroup",name:"prometheus_securityContext_fsGroup",onChange:function(e){w("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{fsGroup:e.target.value})),R("prometheus_securityContext_fsGroup")},label:"FsGroup",value:_.fsGroup,required:!0,error:I.prometheus_securityContext_fsGroup||"",min:"0"})})]})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,N.jsx)("div",{className:"".concat(n.multiContainer," ").concat(n.fieldSpaceTop),children:(0,N.jsx)(Z.Z,{value:"prometheusSecurityContextRunAsNonRoot",id:"prometheus_securityContext_runAsNonRoot",name:"prometheus_securityContext_runAsNonRoot",checked:_.runAsNonRoot,onChange:function(e){var n=e.target.checked;w("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})})]})})),qe=t(23804),Me=t(36151),Ve=["nameTenant","tenantSize","configure","affinity","identityProvider","security","encryption"],Be=t(84218),He=function(){var e=(0,g.TL)(),n=(0,l.v9)((function(e){return e.createTenant.addingTenant})),t=(0,l.v9)((function(e){return e.createTenant.validPages})),r=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),a=!n&&""!==r&&Ve.every((function(e){return t.includes(e)}));return(0,N.jsx)(Me.Z,{id:"wizard-button-Create",variant:"contained",color:"primary",size:"small",onClick:function(){e((0,Be.e)())},disabled:!a,children:"Create"},"button-AddTenant-Create")},We=t(37798),$e=t(16871),Qe=function(){var e=(0,g.TL)(),n=(0,$e.s0)(),t=(0,l.v9)((function(e){return e.createTenant.showNewCredentials})),r=(0,l.v9)((function(e){return e.createTenant.createdAccount}));return(0,N.jsx)(i.Fragment,{children:t&&(0,N.jsx)(We.default,{newServiceAccount:r,open:t,closeModal:function(){e((0,S.dS)()),n("/tenants")},entity:"Tenant"})})},Ye=(0,k.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({pageBox:{border:"1px solid #EAEAEA"}},m.oO),m.AK),m.Je))})),Je=function(){var e=(0,g.TL)(),n=(0,$e.s0)(),t=Ye(),a=(0,l.v9)(Ae.$4),s=(0,l.v9)((function(e){return e.createTenant.addingTenant})),d=(0,i.useState)(null),m=(0,r.Z)(d,2),p=m[0],x=m[1];(0,i.useEffect)((function(){var e=Ne.cy.default;a&&0!==a.length&&Object.keys(Ne.I8).forEach((function(n){a.includes(n)&&(e=o()(Ne.I8,n,Ne.cy.default))}));x(e)}),[a]);var h={label:"Cancel",type:"other",enabled:!0,action:function(){e((0,S.dS)()),n("/tenants")}},v={componentRender:(0,N.jsx)(He,{},"create-tenant")},y=[{label:"Setup",componentRender:(0,N.jsx)(Le,{}),buttons:[h,v]},{label:"Configure",advancedOnly:!0,componentRender:(0,N.jsx)(A,{}),buttons:[h,v]},{label:"Images",advancedOnly:!0,componentRender:(0,N.jsx)(pe,{}),buttons:[h,v]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,N.jsx)(fe,{}),buttons:[h,v]},{label:"Identity Provider",advancedOnly:!0,componentRender:(0,N.jsx)(O,{}),buttons:[h,v]},{label:"Security",advancedOnly:!0,componentRender:(0,N.jsx)(W,{}),buttons:[h,v]},{label:"Encryption",advancedOnly:!0,componentRender:(0,N.jsx)(se,{}),buttons:[h,v]},{label:"Audit Log",advancedOnly:!0,componentRender:(0,N.jsx)(Oe,{}),buttons:[h,v]},{label:"Monitoring",advancedOnly:!0,componentRender:(0,N.jsx)(Ue,{}),buttons:[h,v]}];return(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)(Qe,{}),(0,N.jsx)(ge.Z,{label:(0,N.jsx)(he.Z,{to:"/tenants",label:"Tenants",executeOnClick:function(){e((0,S.dS)())}})}),(0,N.jsxs)(xe.Z,{children:[s&&(0,N.jsx)(c.ZP,{item:!0,xs:12,children:(0,N.jsx)(u.Z,{})}),(0,N.jsx)(c.ZP,{item:!0,xs:12,className:t.pageBox,children:(0,N.jsx)(f.Z,{wizardSteps:y})}),p===Ne.cy.aws&&(0,N.jsx)(c.ZP,{item:!0,xs:12,style:{marginTop:16},children:(0,N.jsx)(qe.Z,{title:"EBS Volume Configuration.",iconComponent:(0,N.jsx)(Pe.idV,{}),help:(0,N.jsxs)(i.Fragment,{children:[(0,N.jsx)("b",{children:"Performance Optimized"}),": Uses the ",(0,N.jsx)("i",{children:"gp3"})," EBS storage class class configured at 1,000Mi/s throughput and 16,000 IOPS, however the minimum volume size for this type of EBS volume is ",(0,N.jsx)("b",{children:"32Gi"}),".",(0,N.jsx)("br",{}),(0,N.jsx)("br",{}),(0,N.jsx)("b",{children:"Storage Optimized"}),": Uses the ",(0,N.jsx)("i",{children:"sc1"})," EBS storage class, however the minimum volume size for this type of EBS volume is \xa0",(0,N.jsx)("b",{children:"16Ti"})," to unlock their maximum throughput speed of 250Mi/s."]})})})]})]})}},22512:function(e,n,t){var r=t(72791),a=t(20890),i=t(11135),s=t(25787),o=t(80184);n.Z=(0,s.Z)((function(e){var n;return(0,i.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,i=e.withBreak,s=void 0===i||i;return(0,o.jsxs)(r.Fragment,{children:[s&&(0,o.jsx)("br",{}),(0,o.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))}}]);
-//# sourceMappingURL=1260.5eb8500b.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1260.5eb8500b.chunk.js.map b/portal-ui/build/static/js/1260.5eb8500b.chunk.js.map
deleted file mode 100644
index d264ba92e..000000000
--- a/portal-ui/build/static/js/1260.5eb8500b.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1260.5eb8500b.chunk.js","mappings":"sKA0EA,KAAeA,EAAAA,EAAAA,IApDA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJC,OAAQ,oBACRC,aAAc,EACdC,gBAAiB,UACjBC,YAAa,GACbC,WAAY,GACZC,cAAe,GACfC,aAAc,IAEhBC,UAAW,CACTC,SAAU,GACVC,WAAY,OACZC,aAAc,GACdC,QAAS,OACTC,WAAY,SACZ,cAAe,CACbC,YAAa,GACbC,OAAQ,GACRC,MAAO,KAGXC,SAAU,CACRR,SAAU,GACVL,YAAa,IAzBJ,GAoDf,EAhBgB,SAAC,GAAuD,IAArDc,EAAoD,EAApDA,QAASC,EAA2C,EAA3CA,cAAeC,EAA4B,EAA5BA,MAAOC,EAAqB,EAArBA,KAChD,OACE,gBAAKC,UAAWJ,EAAQlB,KAAxB,UACE,UAAC,KAAD,CAAMuB,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQV,UAAtC,UACGW,EACAC,MAEH,SAAC,KAAD,CAAMI,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQD,SAAtC,SACGI,QAKV,G,4DChBD,IArCwB,SAACK,GACvB,OACE,iCACEC,MAAM,6BACNL,UAAS,WACTM,KAAM,eACNC,QAAQ,eACJH,GALN,eAOE,2BACE,qBAAUI,GAAG,qBAAb,UACE,iBACE,YAAU,sBACVF,KAAK,UACLG,EAAE,6BAIR,eACE,YAAU,aACVC,UAAU,kBACVC,SAAS,2BACTL,KAAK,UAJP,WAME,iBACE,YAAU,eACVG,EAAE,kZAEJ,iBACE,YAAU,eACVA,EAAE,kQAGN,iBAAM,YAAU,sBAAqBH,KAAK,OAAOG,EAAE,uBAGxD,C,oPCwCD,GAAelC,EAAAA,EAAAA,IArEA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXwB,UAAW,CACTX,QAAS,OACTsB,SAAU,SACVC,QAAS,gBAEXC,cAAe,CACb,wBAAyB,CACvBpB,MAAO,OACPqB,WAAY,UACZ,wBAAyB,CACvBtB,OAAQ,SAEV,mCAAoC,CAClCD,YAAa,QACb,wBAAyB,CACvBC,OAAQ,UAId,kCAAmC,CACjCC,MAAO,QACPD,OAAQ,UAGZuB,YAAW,kBACNC,EAAAA,GAAAA,YADK,IAER9B,SAAU,WA5BD,GAqEf,EArCuB,SAAC,GAQjB,IAAD,IAPJ+B,MAAAA,OAOI,MAPI,GAOJ,MANJC,MAAAA,OAMI,MANI,GAMJ,MALJvB,QAAAA,OAKI,MALM,CAAC,EAKP,EACJ,OACE,iBAAKI,UAAWJ,EAAQK,UAAxB,WACE,iBAAKD,UAAWJ,EAAQoB,WAAxB,UAAqCE,EAArC,QACA,gBAAKlB,UAAWJ,EAAQkB,cAAxB,UACE,SAACM,EAAA,EAAD,CACED,MAAOA,EACPE,UAAQ,EACRC,cACE,SAACC,EAAA,EAAD,CAAgBC,SAAS,MAAzB,UACE,SAAC,IAAD,CAAiBC,KAAMN,EAAvB,UACE,SAACO,EAAA,EAAD,CACE,aAAW,OACXC,QAAS,OACTC,QAAS,WAAQ,EACjBC,YAAa,WAAQ,EACrBC,KAAK,MALP,UAOE,SAAC,MAAD,gBASjB,I,sBCnBKC,EAAW,SAACC,EAAkBP,GAClC,IAAIQ,EAAUC,SAASC,cAAc,KACrCF,EAAQG,aAAa,OAAQ,iCAAmCX,GAChEQ,EAAQG,aAAa,WAAYJ,GAEjCC,EAAQI,MAAM/C,QAAU,OACxB4C,SAASI,KAAKC,YAAYN,GAE1BA,EAAQO,QACRN,SAASI,KAAKG,YAAYR,EAC3B,EA4LD,GAAe1D,EAAAA,EAAAA,IAlPA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXiE,aAAc,CACZC,MAAO,MACPxD,SAAU,SACVyD,OAAQ,kBACRtD,QAAS,OACTC,WAAY,SACZ,SAAU,CACRC,YAAa,QACbC,OAAQ,GACRC,MAAO,KAGXmD,gBAAiB,CACfhC,QAAS,cACTzB,WAAY,IACZD,SAAU,SAEZ2D,gBAAiB,CACfC,UAAW,QACXC,UAAW,QAEbC,iBAAkB,CAChBC,UAAW,OACXC,UAAW,KAEbC,YAAa,CACX9D,QAAS,OACTC,WAAY,UAEd8D,aAAc,CACZ7D,YAAa,UAhCJ,GAkPf,EA1L0B,SAAC,GAMK,IAL9BI,EAK6B,EAL7BA,QACA0D,EAI6B,EAJ7BA,kBACAC,EAG6B,EAH7BA,KACAC,EAE6B,EAF7BA,WACAC,EAC6B,EAD7BA,OAEA,IAAKH,EACH,OAAO,KAET,IAAMI,EAAeC,IAAIL,EAAmB,UAAW,MACjDM,EAAMD,IAAIL,EAAmB,OAAO,GAE1C,OACE,SAACO,EAAA,EAAD,CACEC,UAAWP,EACXQ,QAAS,WACPP,GACD,EACD1D,OACE,gBAAKE,UAAWJ,EAAQwD,YAAxB,UACE,kCAAUK,EAAV,gBAGJO,WAAW,SAAC,MAAD,IAVb,UAYE,UAACC,EAAA,GAAD,CAAMhE,WAAS,EAAf,WACE,UAACgE,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQsE,eAAtC,mBACST,EADT,iDAEIG,GAAOF,IACP,SAAC,WAAD,WACE,UAACO,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQqD,iBAAtC,WACE,gBAAKjD,UAAWJ,EAAQiD,gBAAxB,iCAGCsB,MAAMC,QAAQV,IACbA,EAAaW,KAAI,SAACC,EAAiBC,GACjC,OACE,iCACE,SAAC,EAAD,CACErD,MAAM,aACNC,MAAOmD,EAAgBE,aAEzB,SAAC,EAAD,CACEtD,MAAM,aACNC,MAAOmD,EAAgBG,cAI9B,KACDN,MAAMC,QAAQV,KACd,iCACE,SAAC,EAAD,CACExC,MAAM,aACNC,MAAOuC,EAAac,aAEtB,SAAC,EAAD,CACEtD,MAAM,aACNC,MAAOuC,EAAae,qBAOb,OAAjBf,QAA0CgB,IAAjBhB,KACzB,iCACE,SAAC,EAAD,CACExC,MAAM,aACNC,MAAOmC,EAAkBkB,WAAa,MAExC,SAAC,EAAD,CACEtD,MAAM,aACNC,MAAOmC,EAAkBmB,WAAa,QAI3Cb,GACC,gBAAK5D,UAAWJ,EAAQ8C,aAAxB,0EAIA,iBAAK1C,UAAWJ,EAAQ8C,aAAxB,WACE,SAACiC,EAAA,EAAD,KACA,8GAON,SAACV,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQkD,gBAAtC,UACIc,IACA,iCACE,SAACgB,EAAA,EAAD,CACEpE,GAAI,kBACJmB,QACE,wIAEFF,KAAM,sBACNzB,UAAWJ,EAAQyD,aACnBzB,QAAS,WACP,IAAIiD,EAAgB,CAAC,EAEjBnB,EAmBAmB,EAlBGV,MAAMC,QAAQV,GASFA,EAAaW,KAAI,SAACS,GAC/B,MAAO,CACLC,IAAKD,EAAQC,IACbP,UAAWM,EAAQN,UACnBC,UAAWK,EAAQL,UACnBO,IAAK,OACLC,KAAM,OAET,IACsB,GAjBP,CACdF,IAAKrB,EAAaqB,IAClBP,UAAWd,EAAac,UACxBC,UAAWf,EAAae,UACxBO,IAAK,OACLC,KAAM,QAeVJ,EAAgB,CACdE,IAAKzB,EAAkByB,IACvBP,UAAWlB,EAAkBkB,UAC7BC,UAAWnB,EAAkBmB,UAC7BO,IAAK,OACLC,KAAM,QAIVlD,EACE,mBACAmD,KAAKC,WAAL,UACKN,IAGR,EACDO,MAAM,SAAC,MAAD,IACNC,QAAQ,YACR1C,MAAM,YAGPwB,MAAMC,QAAQV,IAAiBA,EAAa4B,OAAS,IACpD,SAACV,EAAA,EAAD,CACEpE,GAAI,sBACJmB,QACE,iNAEFF,KAAM,kCACNzB,UAAWJ,EAAQyD,aACnBzB,QAAS,WACP,IAAI2D,EAAiB,CAAC,EAClB7B,IAOF6B,EANe7B,EAAaW,KAAI,SAACS,GAC/B,MAAO,CACLN,UAAWM,EAAQN,UACnBC,UAAWK,EAAQL,UAEtB,KAGH1C,EACE,uBACAmD,KAAKC,WAAL,UACKI,IAGR,EACDH,MAAM,SAAC,MAAD,IACNC,QAAQ,YACR1C,MAAM,qBASvB,G,oPCvFD,GAAepE,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kCACRwC,EAAAA,IACAuE,EAAAA,IAFO,IAGVC,YAAa,CACXC,SAAU,IACVC,WAAY,SACZC,SAAU,SACVC,aAAc,WACd7C,UAAW,GAEb8C,eAAgB,CACdlD,OAAQ,SACR,4BAA6B,CAC3BhC,SAAU,YAGXmF,EAAAA,IAhBO,IAiBV/E,YAAW,kBACNC,EAAAA,GAAAA,YADK,IAER7B,WAAY,WAEd4G,kBAAiB,kBACZ/E,EAAAA,GAAAA,kBADW,IAEdyE,SAAU,OACV/G,OAAQ,oBACRG,YAAa,WA1BJ,GAuIf,EAzGqB,SAAC,GAYA,IAXpBoC,EAWmB,EAXnBA,MACAtB,EAUmB,EAVnBA,QACAqG,EASmB,EATnBA,SACAzF,EAQmB,EARnBA,GACA0F,EAOmB,EAPnBA,KAOmB,IANnBC,SAAAA,OAMmB,aALnBxE,QAAAA,OAKmB,MALT,GAKS,EAJnByE,EAImB,EAJnBA,SAImB,IAHnBC,MAAAA,OAGmB,MAHX,GAGW,MAFnBC,OAAAA,OAEmB,MAFV,GAEU,MADnBnF,MAAAA,OACmB,MADX,GACW,EACnB,GAA4CoF,EAAAA,EAAAA,WAAS,GAArD,eAAOC,EAAP,KAAyBC,EAAzB,KAEA,OACE,SAAC,WAAD,WACE,UAACxC,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GACJH,UAAS,UAAKJ,EAAQkG,eAAb,YAA+BlG,EAAQ8G,YAAvC,YACP9G,EAAQ+G,eADD,YAEK,KAAVN,EAAezG,EAAQgH,aAAe,IAL5C,UAOa,KAAV1F,IACC,UAAC2F,EAAA,EAAD,CACEC,QAAStG,EACTR,UAAS,UAAe,KAAVqG,EAAezG,EAAQmH,gBAAkB,GAA9C,YACPnH,EAAQoB,YAHZ,WAME,4BACGE,EACAkF,EAAW,IAAM,MAEP,KAAZzE,IACC,gBAAK3B,UAAWJ,EAAQoH,iBAAxB,UACE,SAACC,EAAA,EAAD,CAASnH,MAAO6B,EAASuF,UAAU,YAAnC,UACE,gBAAKlH,UAAWJ,EAAQ+B,QAAxB,UACE,SAACwF,EAAA,EAAD,aAQXX,GAA8B,KAAVrF,GACnB,iBAAKnB,UAAWJ,EAAQoG,iBAAxB,WACE,kBACEoB,KAAK,OACLlB,KAAMA,EACND,SAAU,SAACoB,GACT,IAAMC,EAAW3D,IAAI0D,EAAG,uBAAwB,KCnHrC,SAACE,EAAUC,GACpC,IAAMC,EAAOF,EAAIG,OAAOC,MAAM,GACxBC,EAAS,IAAIC,WACnBD,EAAOE,cAAcL,GAErBG,EAAOG,OAAS,WAGd,IAAMC,EAAaJ,EAAOK,OAC1B,GAAID,EAAY,CACd,IAAME,EAAYF,EAAWG,WAAWC,MAAM,WAErB,IAArBF,EAAU5C,QACZkC,EAASU,EAAU,GAEtB,CACF,CACF,CDmGeG,CAAYhB,GAAG,SAACiB,GACdrC,EAASqC,EAAMhB,EAChB,GACF,EACDhB,OAAQA,EACRF,SAAUA,EACVD,SAAUA,EACVnG,UAAWJ,EAAQkG,iBAGV,KAAV3E,IACC,SAACoH,EAAA,EAAD,CACE5F,MAAM,UACN,aAAW,iBACX6F,UAAU,OACV5G,QAAS,WACP6E,GAAgB,EACjB,EACDgC,eAAe,EACfC,oBAAoB,EACpBC,KAAK,QATP,UAWE,SAACC,EAAA,EAAD,MAIO,KAAVvC,IAAgB,SAACwC,EAAA,EAAD,CAAYC,aAAczC,QAG7C,iBAAKrG,UAAWJ,EAAQmJ,aAAxB,WACE,gBAAK/I,UAAWJ,EAAQ6F,YAAxB,SAAsCtE,KACtC,SAACoH,EAAA,EAAD,CACE5F,MAAM,UACN,aAAW,iBACX6F,UAAU,OACV5G,QAAS,WACP6E,GAAgB,EACjB,EACDgC,eAAe,EACfC,oBAAoB,EACpBC,KAAK,QATP,UAWE,SAACK,EAAA,EAAD,aAOb,G,qNERD,KAAezK,EAAAA,EAAAA,IAlIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRwK,EAAAA,IADO,IAEVC,QAAS,CACPrI,QAAS,GACT7B,cAAe,GAEjBmK,iBAAkB,CAChBzJ,MAAO,OACPgG,SAAU,MAET0D,EAAAA,IAXQ,GAkIf,EApHqB,SAAC,GASF,IARlBrF,EAQiB,EARjBA,QACAD,EAOiB,EAPjBA,UACAhE,EAMiB,EANjBA,MACAuJ,EAKiB,EALjBA,SACAzJ,EAIiB,EAJjBA,QAIiB,IAHjB0J,UAAAA,OAGiB,SAFjBC,EAEiB,EAFjBA,iBAEiB,IADjBvF,UAAAA,OACiB,MADL,KACK,EACXwF,GAAWC,EAAAA,EAAAA,MACjB,GAAwClD,EAAAA,EAAAA,WAAkB,GAA1D,eAAOmD,EAAP,KAAqBC,EAArB,KAEMC,GAAoBC,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMC,OAAOC,aAAlC,KAGFC,EAAAA,EAAAA,YAAU,WACRT,GAASU,EAAAA,EAAAA,IAAqB,IAC/B,GAAE,CAACV,KAEJS,EAAAA,EAAAA,YAAU,WACR,GAAIL,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBO,QAEpB,YADAR,GAAgB,GAIa,UAA3BC,EAAkBxC,MACpBuC,GAAgB,EAEnB,CACF,GAAE,CAACC,IAEJ,IAKMQ,EAAad,EACf,CACE1J,QAAS,CACPyK,MAAOzK,EAAQuJ,mBAGnB,CAAEzD,SAAU,KAAe4E,WAAW,GAEtCH,EAAU,GAYd,OAVIP,IACFO,EAAUP,EAAkBW,kBAEa,KAAvCX,EAAkBW,kBAClBX,EAAkBW,iBAAiBjF,OAAS,KAE5C6E,EAAUP,EAAkBO,WAK9B,UAAC,KAAD,gBACE5G,KAAMO,EACNlE,QAASA,GACLwK,GAHN,IAIEI,OAAQ,QACRzG,QAAS,SAAC0G,EAAOC,GACA,kBAAXA,GACF3G,GAEH,EACD/D,UAAWJ,EAAQlB,KAVrB,WAYE,UAAC,IAAD,CAAasB,UAAWJ,EAAQE,MAAhC,WACE,iBAAKE,UAAWJ,EAAQ+K,UAAxB,UACG3G,EADH,IACelE,MAEf,gBAAKE,UAAWJ,EAAQgL,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXpK,GAAI,QACJR,UAAWJ,EAAQiL,YACnBjJ,QAASmC,EACT0E,eAAa,EACbE,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAWmC,SAAS,KACpB,SAAC,IAAD,CACEvH,KAAMmG,EACN1J,UAAWJ,EAAQmL,cACnBhH,QAAS,WA3Db4F,GAAgB,GAChBH,GAASU,EAAAA,EAAAA,IAAqB,IA4DzB,EACDC,QAASA,EACTa,aAAc,CACZhL,UAAU,GAAD,OAAKJ,EAAQqL,SAAb,YACPrB,GAAgD,UAA3BA,EAAkBxC,KACnCxH,EAAQsL,cACR,KAGRC,iBACEvB,GAAgD,UAA3BA,EAAkBxC,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAepH,UAAWuJ,EAAmB,GAAK3J,EAAQsJ,QAA1D,SACGG,OAIR,G,+UC+TD,GAAe9K,EAAAA,EAAAA,IAzbA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACX2M,kBAAmB,CACjB5L,YAAa,GACbH,aAAc,GAEd,oBAAqB,CACnBV,OAAQ,kBAGZ0M,0BAA2B,CACzBC,WAAY,GACZ5L,MAAO,MACPkD,OAAQ,QAEV2I,cAAe,CACb/L,YAAa,IAEfgM,YAAW,kBACNC,EAAAA,GAAAA,YADK,IAER1M,WAAY,GACZM,aAAc,KAEhBqM,sBAAuB,CACrB,4BAA6B,CAC3B9K,SAAU,SACVrB,WAAY,aAEZ,cAAe,CACbF,aAAc,EACdG,YAAa,KAInBmM,iBAAkB,CAChBrM,QAAS,OACTD,aAAc,IAEhBuM,cAAe,CACbN,WAAY,GACZhM,QAAS,OACTC,WAAY,SACZ,QAAS,CACPG,MAAO,GACPD,OAAQ,IAEV,WAAY,CACVsB,WAAY,aAGb8K,EAAAA,IACAC,EAAAA,IAnDQ,GAybf,EAnYkB,SAAC,GAAkC,IAAhClM,EAA+B,EAA/BA,QACb4J,GAAWC,EAAAA,EAAAA,MAEXsC,GAAclC,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUH,WAAzD,IAEII,GAAgBtC,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUC,aAAzD,IAEIC,GAAavC,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUE,UAAzD,IAEIC,GAAgBxC,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUG,aAAzD,IAEIC,GAAezC,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUI,YAAzD,IAEIC,GAAe1C,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUK,YAAzD,IAEIC,GAAwB3C,EAAAA,EAAAA,KAC5B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUM,qBADtC,IAIF,GAAgDjG,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAGMC,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,YAAaF,MAAOA,EAAO1L,MAAOA,IAEhE,GACD,CAACqI,KAIHS,EAAAA,EAAAA,YAAU,WACR,IAAI+C,EAAyC,GAkC7C,GAjCIT,IACFS,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,mCACV7G,UAAU,EACVjF,MAAOqL,EAAsBU,UAC7BC,iBACsC,KAApCX,EAAsBU,WACtBE,SAASZ,EAAsBU,WAAa,EAC9CG,wBAAwB,8CAE1B,CACEJ,SAAU,oCACV7G,UAAU,EACVjF,MAAOqL,EAAsBc,WAC7BH,iBACuC,KAArCX,EAAsBc,YACtBF,SAASZ,EAAsBc,YAAc,EAC/CD,wBAAwB,+CAE1B,CACEJ,SAAU,iCACV7G,UAAU,EACVjF,MAAOqL,EAAsBe,QAC7BJ,iBACoC,KAAlCX,EAAsBe,SACtBH,SAASZ,EAAsBe,SAAW,EAC5CF,wBAAwB,+CAK1BjB,EAAY,CACd,IAAMoB,EAAwBlB,EAAajI,KAAI,SAACoJ,EAAYlJ,GAC1D,MAAO,CACL0I,SAAS,gBAAD,OAAkB1I,EAAM4D,YAChC/B,UAAU,EACVjF,MAAOsM,EACPC,QAAS,6CACTC,qBACE,mEAEL,IAEDX,EAAuB,kBAClBA,IADkB,OAElBQ,GAFkB,CAGrB,CACEP,SAAU,iBACV7G,UAAU,EACVjF,MAAOkL,EACPqB,QACE,kEACFC,qBACE,8FAGP,CAED,IAAMC,GAAYC,EAAAA,EAAAA,GAAqBb,GAEvCxD,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,YACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACDpE,EACA+C,EACAC,EACAJ,EACAC,EACAC,IAGF,IAAM4B,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EASD,OACE,UAACE,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,iBAAKtO,UAAWJ,EAAQ2O,cAAxB,WACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,wBACA,iBAAMxO,UAAWJ,EAAQ6O,gBAAzB,4DAIF,iBAAKzO,UAAWJ,EAAQ2O,cAAxB,WACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,uBACA,iBAAMxO,UAAWJ,EAAQ6O,gBAAzB,4GAKF,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwL,kBAAtC,UACE,SAACsD,EAAA,EAAD,CACEvN,MAAM,eACNX,GAAG,eACH0F,KAAK,eACLyI,QAAS5C,EACT9F,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,cAAegC,EAC5B,EACDzN,MAAO,4BAGX,SAAC+C,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwL,kBAAtC,UACE,SAACsD,EAAA,EAAD,CACEvN,MAAM,iBACNX,GAAG,iBACH0F,KAAK,iBACLyI,QAASxC,EACTlG,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,gBAAiBgC,EAC9B,EACDzN,MAAO,8BAGX,SAAC+C,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwL,kBAAtC,UACE,SAACsD,EAAA,EAAD,CACEvN,MAAM,iBACNX,GAAG,iBACH0F,KAAK,iBACLyI,QAASvC,EACTnG,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,aAAcgC,EAC3B,EACDzN,MAAO,yBAGVkL,IACC,SAACnI,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQyL,0BAAtC,UACE,sBAAUrL,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,uCAGA,UAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAS,UAAKJ,EAAQwL,mBAAzC,WACE,gBAAKpL,UAAWJ,EAAQ2L,cAAxB,UACE,SAACqD,EAAA,EAAD,CACEpO,GAAG,iBACH0F,KAAK,iBACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,OACtC+M,EAAgB,mCACjB,EACDhN,MAAM,iBACNC,MAAOkL,EACPwC,YACE,qDAEFxI,MAAOoG,EAAgB,gBAAsB,QAGjD,4BACE,2CACA,gBAAKzM,UAAS,UAAKJ,EAAQ8L,uBAA3B,SACGY,EAAajI,KAAI,SAACyK,EAAQvK,GACzB,OACE,iBACEvE,UAAS,UAAKJ,EAAQ2L,cAAb,YAA8B3L,EAAQ+L,kBADjD,WAIE,SAACiD,EAAA,EAAD,CACEpO,GAAE,uBAAkB+D,EAAM4D,YAC1BjC,KAAI,uBAAkB3B,EAAM4D,YAC5BlC,SAAU,SACRoB,IAvGA,SAAClG,EAAeoD,GACxC,IAAMwK,GAAW,OAAOzC,GACxByC,EAAYxK,GAASpD,EAErBwL,EAAY,eAAgBoC,EAC7B,CAoGyBC,CAAkB3H,EAAEK,OAAOvG,MAAOoD,EACnC,EACDrD,MAAK,uBAAkBqD,EAAQ,GAC/BpD,MAAO2N,EACPD,YAAa,8BACbxI,MACEoG,EAAiB,gBAAD,OACElI,EAAM4D,cACnB,MAGT,gBAAKnI,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,kBAAM4H,GAASyF,EAAAA,EAAAA,MAAf,EACT9I,SAAU5B,IAAU+H,EAAahH,OAAS,EAH5C,UAKE,SAAC4J,EAAA,EAAD,SAIJ,gBAAKlP,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,kBAAM4H,GAAS2F,EAAAA,EAAAA,IAAkB5K,GAAjC,EACT4B,SAAUmG,EAAahH,QAAU,EAHnC,UAKE,SAAC8J,EAAA,EAAD,UArCN,2BAE2B7K,EAAM4D,YAwCpC,kBAQb,SAAClE,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwL,kBAAtC,UACE,SAACsD,EAAA,EAAD,CACEvN,MAAM,eACNX,GAAG,uBACH0F,KAAK,uBACLyI,QAASpC,EACTtG,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,eAAgBgC,EAC7B,EACDzN,MAAO,uBAGVqL,IACC,SAACtI,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQyL,0BAAtC,UACE,sBAAUrL,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,wCAGA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAS,UAAKJ,EAAQwL,mBAAzC,UACE,iBACEpL,UAAS,UAAKJ,EAAQyP,eAAb,YAA+BzP,EAAQ8L,uBADlD,WAGE,gBAAK1L,UAAWJ,EAAQ2L,cAAxB,UACE,SAACqD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,mCACH0F,KAAK,mCACLD,SAAU,SAACoB,GACTsF,EAAY,yBAAD,QAAC,UACPH,GADM,IAETU,UAAW7F,EAAEK,OAAOvG,SAEtB+M,EAAgB,mCACjB,EACDhN,MAAM,cACNC,MAAOqL,EAAsBU,UAC7B9G,UAAQ,EACRC,MACEoG,EAAgB,kCAAwC,GAE1D6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQ2L,cAAxB,UACE,SAACqD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,oCACH0F,KAAK,oCACLD,SAAU,SAACoB,GACTsF,EAAY,yBAAD,QAAC,UACPH,GADM,IAETc,WAAYjG,EAAEK,OAAOvG,SAEvB+M,EAAgB,oCACjB,EACDhN,MAAM,eACNC,MAAOqL,EAAsBc,WAC7BlH,UAAQ,EACRC,MACEoG,EAAgB,mCAChB,GAEF6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQ2L,cAAxB,UACE,SAACqD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,iCACH0F,KAAK,iCACLD,SAAU,SAACoB,GACTsF,EAAY,yBAAD,QAAC,UACPH,GADM,IAETe,QAASlG,EAAEK,OAAOvG,SAEpB+M,EAAgB,iCACjB,EACDhN,MAAM,UACNC,MAAOqL,EAAsBe,QAC7BnH,UAAQ,EACRC,MACEoG,EAAgB,gCAAsC,GAExD6C,IAAI,cAKZ,mBACA,SAACrL,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwL,kBAAtC,UACE,gBAAKpL,UAAWJ,EAAQyP,eAAxB,UACE,SAACX,EAAA,EAAD,CACEvN,MAAM,oCACNX,GAAG,sCACH0F,KAAK,sCACLyI,QAASnC,EAAsB+C,aAC/BtJ,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,yBAAD,QAAC,UACPH,GADM,IAET+C,aAAcZ,IAEjB,EACDzN,MAAO,kCASxB,I,uDCvbKsO,GAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,gCACXiR,aAAc,CACZpQ,QAAS,OACTD,aAAc,IAEhBsQ,WAAY,CACVrE,WAAY,GACZhM,QAAS,OACTG,OAAQ,GACR,WAAY,CACVsB,WAAY,YAGhB6K,cAAe,CACbN,WAAY,GACZ,QAAS,CACP5F,SAAU,GACVvC,UAAW,IAEb,WAAY,CACVpC,WAAY,aAGb0K,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IA3BsB,IAga7B,EAjY2B,WACzB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,IAEVK,GAAehG,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBD,YAAhE,IAEIE,GAAQlG,EAAAA,EAAAA,KACZ,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBC,KAAhE,IAEIC,GAAYnG,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBE,SAAhE,IAEIC,GAAmBpG,EAAAA,EAAAA,KACvB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBG,gBAD7C,IAGIC,GAAsBrG,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBI,mBAD7C,IAGIC,GAAsBtG,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBK,mBAD7C,IAGIC,GAAYvG,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBM,SAAhE,IAEIC,GAAaxG,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBO,UAAhE,IAEIC,GAAiBzG,EAAAA,EAAAA,KACrB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBQ,cAD7C,IAGIC,GAAuB1G,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBS,oBAD7C,IAGIC,GAAuB3G,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBU,oBAD7C,IAGIC,GAAuB5G,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBW,oBAD7C,IAGIC,GAAmB7G,EAAAA,EAAAA,KACvB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiBY,gBAD7C,IAIF,GAAgDnK,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAEMC,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CACbC,SAAU,mBACVF,MAAOA,EACP1L,MAAOA,IAGZ,GACD,CAACqI,IAGG0E,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EA2CD,OAxCAlE,EAAAA,EAAAA,YAAU,WACR,IAAI0G,EAAqC,GAEpB,OAAjBd,IACFc,EAAmB,kBACdA,GADc,CAEjB,CACE1D,SAAU,SACV7G,UAAU,EACVjF,MAAO4O,GAET,CACE9C,SAAU,kBACV7G,UAAU,EACVjF,MAAOmP,MAKb,IAAM1C,GAAYC,EAAAA,EAAAA,GAAqB8C,GAEvCnH,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,mBACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACD0C,EACAT,EACAE,EACAG,EACAC,EACAC,EACAC,EACA7G,KAIA,UAAC,EAAAoH,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,SACH0F,KAAK,SACLD,SAAU,SAACoB,GACTsF,EAAY,QAAStF,EAAEK,OAAOvG,OAC9B+M,EAAgB,SACjB,EACDhN,MAAM,sBACNC,MAAO4O,EACPlB,YAAY,kBACZxI,MAAOoG,EAAgB,QAAc,GACrCrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACnC,EAAA,EAAD,CACEvN,MAAM,aACNX,GAAG,aACH0F,KAAK,aACLyI,QAASqB,EACT/J,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,YAAagC,EAC1B,EACDzN,MAAO,6BAGX,SAAC+C,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACnC,EAAA,EAAD,CACEvN,MAAM,oBACNX,GAAG,oBACH0F,KAAK,oBACLyI,QAASsB,EACThK,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,mBAAoBgC,EACjC,EACDzN,MAAO,sBAGV+O,GACC,UAAChM,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,WACE,SAAC2Q,EAAA,EAAD,CACE9Q,UAAWJ,EAAQyG,MACnBhB,QAAQ,UACR/F,QAAQ,QACRyR,cAAY,EAJd,6EAQA,qBAEA,MACJ,SAAC9M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACnC,EAAA,EAAD,CACEvN,MAAM,oBACNX,GAAG,oBACH0F,KAAK,oBACLyI,QAAS+B,EACTzK,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,mBAAoBgC,EACjC,EACDzN,MAAO,8CAGX,SAAC+C,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,iBAAkBtF,EAAEK,OAAOvG,OACvC+M,EAAgB,kBACjB,EACDhN,MAAM,iBACNC,MAAOmP,EACPzB,YAAY,wBACZxI,MAAOoG,EAAgB,iBAAuB,GAC9CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,wBACH0F,KAAK,wBACLD,SAAU,SAACoB,GACTsF,EAAY,uBAAwBtF,EAAEK,OAAOvG,MAC9C,EACDD,MAAM,uBACNC,MAAOoP,EACP1B,YAAY,aAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,wBACH0F,KAAK,wBACLD,SAAU,SAACoB,GACTsF,EAAY,uBAAwBtF,EAAEK,OAAOvG,MAC9C,EACDD,MAAM,yBACNC,MAAOqP,EACP3B,YAAY,oBAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,wBACH0F,KAAK,wBACLD,SAAU,SAACoB,GACTsF,EAAY,uBAAwBtF,EAAEK,OAAOvG,MAC9C,EACDD,MAAM,wBACNC,MAAOsP,EACP5B,YAAY,0BAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,uBACH0F,KAAK,uBACLD,SAAU,SAACoB,GACTsF,EAAY,sBAAuBtF,EAAEK,OAAOvG,MAC7C,EACDD,MAAM,uBACNC,MAAO+O,EACPrB,YAAY,qDAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,uBACH0F,KAAK,uBACLD,SAAU,SAACoB,GACTsF,EAAY,sBAAuBtF,EAAEK,OAAOvG,MAC7C,EACDD,MAAM,sBACNC,MAAOgP,EACPtB,YAAY,gDAGhB,sBAAU7O,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,iFAGA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,SACGiQ,EAAU/L,KAAI,SAAC2M,EAAGzM,GACjB,OACE,SAAC,EAAAqM,SAAD,WACE,iBAAK5Q,UAAWJ,EAAQ8P,aAAxB,WACE,SAACd,EAAA,EAAD,CACEpO,GAAE,oBAAe+D,EAAM4D,YACvBjH,MAAO,GACP2N,YAAY,GACZ3I,KAAI,oBAAe3B,EAAM4D,YACzBhH,MAAOiP,EAAU7L,GACjB0B,SAAU,SAACoB,GACTmC,GACEyH,EAAAA,EAAAA,IAAmB,CACjB1M,MAAOA,EACP2M,OAAQ7J,EAAEK,OAAOvG,SAGrB+M,EAAgB,aAAD,OAAc3J,EAAM4D,YACpC,EACD5D,MAAOA,EAEP8B,MACEoG,EAAiB,aAAD,OAAclI,EAAM4D,cAAiB,IAlBzD,wBAgBwB5D,EAAM4D,cAK9B,iBAAKnI,UAAWJ,EAAQ+P,WAAxB,WACE,SAAC1I,EAAA,EAAD,CAASnH,MAAM,WAAW,aAAW,MAArC,UACE,SAACyI,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAAS2H,EAAAA,EAAAA,MACV,EAJH,UAME,SAACjC,EAAA,EAAD,SAGJ,SAACjI,EAAA,EAAD,CAASnH,MAAM,SAAS,aAAW,MAAnC,UACE,SAACyI,EAAA,EAAD,CACEI,KAAM,QACNtG,MAAO,CAAEiJ,WAAY,IACrB1J,QAAS,WACHwO,EAAU9K,OAAS,GACrBkE,GAAS4H,EAAAA,EAAAA,IAAsB7M,GAElC,EAPH,UASE,SAAC8M,EAAA,EAAD,eA5CV,wBAAgC9M,EAAM4D,YAmDzC,UAGL,sBAAUnI,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,kFAGA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,SACGkQ,EAAWhM,KAAI,SAAC2M,EAAGzM,GAClB,OACE,SAAC,EAAAqM,SAAD,WACE,iBAAK5Q,UAAWJ,EAAQ8P,aAAxB,WACE,SAACd,EAAA,EAAD,CACEpO,GAAE,qBAAgB+D,EAAM4D,YACxBjH,MAAO,GACP2N,YAAY,GACZ3I,KAAI,qBAAgB3B,EAAM4D,YAC1BhH,MAAOkP,EAAW9L,GAClB0B,SAAU,SAACoB,GACTmC,GACE8H,EAAAA,EAAAA,IAAqB,CACnB/M,MAAOA,EACP2M,OAAQ7J,EAAEK,OAAOvG,SAGrB+M,EAAgB,cAAD,OAAe3J,EAAM4D,YACrC,EACD5D,MAAOA,EAEP8B,MACEoG,EAAiB,cAAD,OAAelI,EAAM4D,cAAiB,IAlB1D,yBAgByB5D,EAAM4D,cAK/B,iBAAKnI,UAAWJ,EAAQ+P,WAAxB,WACE,SAAC1I,EAAA,EAAD,CAASnH,MAAM,YAAY,aAAW,MAAtC,UACE,SAACyI,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAAS+H,EAAAA,EAAAA,MACV,EAJH,UAME,SAACrC,EAAA,EAAD,SAGJ,SAACjI,EAAA,EAAD,CAASnH,MAAM,SAAS,aAAW,MAAnC,UACE,SAACyI,EAAA,EAAD,CACEI,KAAM,QACNtG,MAAO,CAAEiJ,WAAY,IACrB1J,QAAS,WACHyO,EAAW/K,OAAS,GACtBkE,GAASgI,EAAAA,EAAAA,IAAwBjN,GAEpC,EAPH,UASE,SAAC8M,EAAA,EAAD,eA5CV,wBAAgC9M,EAAM4D,YAmDzC,WAKV,EC1aKqH,GAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,gCACXkR,WAAY,CACVrE,WAAY,GACZhM,QAAS,OACTG,OAAQ,GACR,WAAY,CACVsB,WAAY,YAGhB6K,cAAe,CACbN,WAAY,GACZ,QAAS,CACP5F,SAAU,GACVvC,UAAW,IAEb,WAAY,CACVpC,WAAY,aAGb0K,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IAvBsB,IAuN7B,EA5LkB,WAChB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,IAEVK,GAAehG,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBD,YAAhE,IAEI4B,GAAyB5H,EAAAA,EAAAA,KAC7B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiB2B,sBAD7C,IAGIC,GAAiB7H,EAAAA,EAAAA,KACrB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiB4B,cAD7C,IAGIC,GAAiB9H,EAAAA,EAAAA,KACrB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiB6B,cAD7C,IAGIC,GAAoB/H,EAAAA,EAAAA,KACxB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiB8B,iBAD7C,IAGIC,GAAkBhI,EAAAA,EAAAA,KACtB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAO6D,iBAAiB+B,eAD7C,IAGIC,GAAejI,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBgC,YAAhE,IAGF,GAAgDvL,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAEMC,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CACbC,SAAU,mBACVF,MAAOA,EACP1L,MAAOA,IAGZ,GACD,CAACqI,IAGG0E,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAmDD,OAhDAlE,EAAAA,EAAAA,YAAU,WACR,IAAI0G,EAAqC,GAEpB,WAAjBd,IACFc,EAAmB,kBACdA,GADc,CAEjB,CACE1D,SAAU,2BACV7G,UAAU,EACVjF,MAAOsQ,GAET,CACExE,SAAU,kBACV7G,UAAU,EACVjF,MAAOuQ,GAET,CACEzE,SAAU,kBACV7G,UAAU,EACVjF,MAAOwQ,GAET,CACE1E,SAAU,mBACV7G,UAAU,EACVjF,MAAO0Q,MAKb,IAAMjE,GAAYC,EAAAA,EAAAA,GAAqB8C,GAEvCnH,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,mBACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACDiC,EACA6B,EACAC,EACAF,EACAI,EACArI,KAIA,UAAC,EAAAoH,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,2BACH0F,KAAK,2BACLD,SAAU,SAACoB,GACTsF,EAAY,yBAA0BtF,EAAEK,OAAOvG,OAC/C+M,EAAgB,2BACjB,EACDhN,MAAM,oBACNC,MAAOsQ,EACP5C,YAAY,sEACZxI,MAAOoG,EAAgB,0BAAgC,GACvDrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,iBAAkBtF,EAAEK,OAAOvG,OACvC+M,EAAgB,kBACjB,EACDhN,MAAM,YACNC,MAAOuQ,EACPrL,MAAOoG,EAAgB,iBAAuB,GAC9CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,iBAAkBtF,EAAEK,OAAOvG,OACvC+M,EAAgB,kBACjB,EACDhN,MAAM,YACNC,MAAOwQ,EACPtL,MAAOoG,EAAgB,iBAAuB,GAC9CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,qBACH0F,KAAK,qBACLD,SAAU,SAACoB,GACTsF,EAAY,oBAAqBtF,EAAEK,OAAOvG,OAC1C+M,EAAgB,qBACjB,EACDhN,MAAM,eACNC,MAAOyQ,EACP/C,YAAY,oDACZxI,MAAOoG,EAAgB,oBAA0B,QAGrD,SAACxI,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,mBACH0F,KAAK,mBACLD,SAAU,SAACoB,GACTsF,EAAY,kBAAmBtF,EAAEK,OAAOvG,OACxC+M,EAAgB,mBACjB,EACDhN,MAAM,aACNC,MAAO0Q,EACPxL,MAAOoG,EAAgB,kBAAwB,GAC/CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,gBACH0F,KAAK,gBACLD,SAAU,SAACoB,GACTsF,EAAY,eAAgBtF,EAAEK,OAAOvG,OACrC+M,EAAgB,gBACjB,EACDhN,MAAM,SACNC,MAAO2Q,QAKhB,E,WC5MKtC,GAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,gCACXkR,WAAY,CACVrE,WAAY,GACZhM,QAAS,OACTG,OAAQ,GACR,WAAY,CACVsB,WAAY,YAGhB6K,cAAe,CACbN,WAAY,GACZ,QAAS,CACP5F,SAAU,GACVvC,UAAW,IAEb,WAAY,CACVpC,WAAY,YAGhBgR,UAAW,CACTC,oBAAqB,sBACrB1S,QAAS,OACT2S,QAAS,GACT5S,aAAc,GACd,UAAW,CACTD,WAAY,OAGbqM,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IAhCsB,IAgM7B,EA5JmB,WACjB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,IAEVK,GAAehG,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBD,YAAhE,IAEIqC,GAAarI,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBoC,UAAhE,IAEIC,GAAatI,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBqC,UAAhE,IAGF,GAAgD5L,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAEMwB,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAsCD,OAnCAlE,EAAAA,EAAAA,YAAU,WACR,IAAI0G,EAAqC,GAEzC,GAAqB,aAAjBd,EAA6B,CAC/Bc,GAAmB,OAAOA,GAC1B,IAAK,IAAIyB,EAAI,EAAGA,EAAIF,EAAW5M,OAAQ8M,IACrCzB,EAAoB0B,KAAK,CACvBpF,SAAS,aAAD,OAAemF,EAAEjK,YACzB/B,UAAU,EACVjF,MAAO+Q,EAAWE,GAClB1E,QAAS,uBACTC,qBAAsB,mCAExBgD,EAAoB0B,KAAK,CACvBpF,SAAS,aAAD,OAAemF,EAAEjK,YACzB/B,UAAU,EACVjF,MAAOgR,EAAWC,GAClB1E,QAAS,uBACTC,qBAAsB,kCAG3B,CAED,IAAMC,GAAYC,EAAAA,EAAAA,GAAqB8C,GAEvCnH,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,mBACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CAACiC,EAAcqC,EAAYC,EAAY3I,KAGxC,UAAC,EAAAoH,SAAD,kCAEGsB,EAAW7N,KAAI,SAAC2M,EAAGzM,GAClB,OACE,SAAC,EAAAqM,SAAD,WACE,iBAAK5Q,UAAWJ,EAAQmS,UAAxB,WACE,SAACnD,EAAA,EAAD,CACEpO,GAAE,oBAAe+D,EAAM4D,YACvBjH,MAAO,GACP2N,YAAa,aACb3I,KAAI,oBAAe3B,EAAM4D,YACzBhH,MAAO+Q,EAAW3N,GAClB0B,SAAU,SAACoB,GACTmC,GACE8I,EAAAA,EAAAA,IAAiB,CACf/N,MAAAA,EACAC,UAAW6C,EAAEK,OAAOvG,SAGxB+M,EAAgB,aAAD,OAAc3J,EAAM4D,YACpC,EACD5D,MAAOA,EAEP8B,MAAOoG,EAAiB,aAAD,OAAclI,EAAM4D,cAAiB,IAjB9D,wBAgBwB5D,EAAM4D,cAG9B,SAACyG,EAAA,EAAD,CACEpO,GAAE,oBAAe+D,EAAM4D,YACvBjH,MAAO,GACP2N,YAAa,aACb3I,KAAI,oBAAe3B,EAAM4D,YACzBhH,MAAOgR,EAAW5N,GAClB0B,SAAU,SAACoB,GACTmC,GACE+I,EAAAA,EAAAA,IAAiB,CACfhO,MAAAA,EACAE,UAAW4C,EAAEK,OAAOvG,SAGxB+M,EAAgB,aAAD,OAAc3J,EAAM4D,YACpC,EACD5D,MAAOA,EAEP8B,MAAOoG,EAAiB,aAAD,OAAclI,EAAM4D,cAAiB,IAjB9D,wBAgBwB5D,EAAM4D,cAG9B,iBAAKnI,UAAWJ,EAAQ+P,WAAxB,WACE,gBAAK3P,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAASgJ,EAAAA,EAAAA,MACV,EACDrM,SAAU5B,IAAU2N,EAAW5M,OAAS,EAL1C,UAOE,SAAC4J,EAAA,EAAD,SAGJ,gBAAKlP,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAASiJ,EAAAA,EAAAA,IAAwBlO,GAClC,EACD4B,SAAU+L,EAAW5M,QAAU,EALjC,UAOE,SAAC8J,EAAA,EAAD,SAGJ,SAACnI,EAAA,EAAD,CAASnH,MAAM,wBAAwB,aAAW,MAAlD,UACE,gBAAKE,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACE3G,QAAS,WACP4H,GACE8I,EAAAA,EAAAA,IAAiB,CACf/N,MAAAA,EACAC,WAAWkO,EAAAA,EAAAA,GAAgB,OAG/BlJ,GACE+I,EAAAA,EAAAA,IAAiB,CACfhO,MAAAA,EACAE,WAAWiO,EAAAA,EAAAA,GAAgB,MAGhC,EACD/J,KAAM,QAfR,UAiBE,SAACgK,EAAA,EAAD,iBAlFZ,wBAAgCpO,EAAM4D,YA0FzC,MAGN,EC1MKqH,GAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,wBACXmU,qBAAsB,CACpBtT,QAAS,OACTsB,SAAU,SACVvB,aAAc,GAEd,UAAW,CACTF,SAAU,IAEZ,QAAS,CACPG,QAAS,OACTsB,SAAU,SACVrB,WAAY,cAGbkM,EAAAA,IACAI,EAAAA,IACAC,EAAAA,IAlBsB,IA+D7B,EAzCyB,WACvB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,IAEVK,GAAehG,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAO6D,iBAAiBD,YAAhE,IAGF,OACE,UAACxB,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,iBAAKtO,UAAWJ,EAAQ2O,cAAxB,WACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,gCACA,iBAAMxO,UAAWJ,EAAQ6O,gBAAzB,0FAKF,UAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgT,qBAAtC,WACE,yCACA,SAACC,EAAA,EAAD,CACEC,iBAAkBjD,EAClBrP,GAAG,cACH0F,KAAK,cACLhF,MAAM,IACN+E,SAAU,SAACoB,GACTmC,GAASuJ,EAAAA,EAAAA,IAAO1L,EAAEK,OAAOvG,OAC1B,EACD6R,gBAAiB,CACf,CAAE9R,MAAO,WAAYC,MAAO,YAC5B,CAAED,MAAO,SAAUC,MAAO,UAC1B,CAAED,MAAO,mBAAoBC,MAAO,YAIxB,aAAjB0O,IAA+B,SAAC,EAAD,IACd,WAAjBA,IAA6B,SAAC,EAAD,IACZ,OAAjBA,IAAyB,SAAC,EAAD,MAG/B,E,4CC1EKoD,EAAc,SAAC,GAMd,IALL7N,EAKI,EALJA,KACA8N,EAII,EAJJA,YAKA,OACE,UAACC,EAAA,EAAD,CACEC,GAAI,CACF9T,QAAS,OACT,cAAe,CACbE,YAAa,OACbC,OAAQ,OACRC,MAAO,OACPL,aAAc,SAPpB,UAWG+F,EAAM,KACP,gBAAK/C,MAAO,CAAElD,SAAU,OAAQkU,UAAW,SAAU1Q,MAAO,WAA5D,SACGuQ,MAIR,EA6ED,EA5EmB,WACjB,IAAMI,GAAYzJ,EAAAA,EAAAA,KAAY,SAACC,GAC7B,OAAOA,EAAMkC,aAAaC,OAAOsH,WAAWD,WAAa,aAC1D,IAEKE,GAAa3J,EAAAA,EAAAA,KAAY,SAACC,GAC9B,OAAOA,EAAMkC,aAAaC,OAAOsH,WAAWC,YAAc,eAC3D,IAED,OACE,SAACL,EAAA,EAAD,CACEC,GAAI,CACFK,KAAM,EACN9U,OAAQ,oBACRC,aAAc,MACdU,QAAS,OACTsB,SAAU,SACVC,QAAS,OACTmC,UAAW,CACT7C,GAAI,QATV,UAaE,UAACgT,EAAA,EAAD,CACEC,GAAI,CACF9T,QAAS,OACTsB,SAAU,UAHd,WAME,SAACqS,EAAD,CACE7N,MAAM,SAACsO,EAAA,EAAD,IACNR,YAAW,8BAEb,UAACC,EAAA,EAAD,CAAKC,GAAI,CAAEjU,SAAU,OAAQE,aAAc,QAA3C,8DAEE,mBACA,kBAHF,sCAIoC,+CAJpC,0EAME,mBACA,mBACA,iBACEgD,MAAO,CAAElD,SAAU,OAAQkU,UAAW,SAAU1Q,MAAO,WADzD,mBAGS2Q,GACP,kBAJF,SAKSA,EALT,QAME,kBANF,SAOSA,EAPT,yBAQE,kBARF,KASKE,EATL,OASqBF,EATrB,yBAUE,kBAVF,KAWKA,EAXL,4BAaA,kBArBF,YAsBU,0CAtBV,IAsB4C,KAC1C,wCAvBF,QAwBE,6CAxBF,kDA0BE,mBACA,kBA3BF,4BA4B4B,KAC1B,cACEK,KAAK,kEACLjM,OAAO,SACPkM,IAAI,aAHN,2BA7BF,WAyCP,EC2PD,GAAerV,EAAAA,EAAAA,IAjUA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,wBACXoV,qBAAsB,CACpBvU,QAAS,OACTC,WAAY,SACZuU,eAAgB,aAChBC,aAAc,oBACd,eAAgB,CACdA,aAAc,GAEhB,4BAA6B,CAC3BN,KAAM,IAGVO,SAAU,CACRxU,YAAa,GACbF,QAAS,OACT,cAAe,CACb2U,SAAU,IAGZ,4BAA6B,CAC3BrT,SAAU,WAGdsT,oBAAqB,CACnB7U,aAAc,IAEhB8U,gBAAiB,CACf7U,QAAS,OACTC,WAAY,SACZuU,eAAgB,aAEhBC,aAAc,oBACd,eAAgB,CACdA,aAAc,GAEhB,4BAA6B,CAC3BN,KAAM,EAEN,cAAe,CACbQ,SAAU,MAIhBG,WAAY,CACV9U,QAAS,OACTwU,eAAgB,WAChB,4BAA6B,CAC3BL,KAAM,IAGV7H,cAAe,CACbN,WAAY,GACZ,QAAS,CACP5F,SAAU,GACVvC,UAAW,IAEb,WAAY,CACVpC,WAAY,aAIb0K,EAAAA,IACAI,EAAAA,IACAC,EAAAA,IAjEQ,GAiUf,EA7PiB,SAAC,GAAiC,IAA/BlM,EAA8B,EAA9BA,QACZ4J,GAAWC,EAAAA,EAAAA,MAEX4K,GAAYxK,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOqI,SAASD,SAAxD,IAEIE,GAAiB1K,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOqI,SAASC,cAAxD,IAEIC,GAAoB3K,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOqI,SAASE,iBAAxD,IAEIC,GAAoB5K,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAaD,iBAArD,IAEIE,GAAiB9K,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAaC,cAArD,IAIIhI,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,WAAYF,MAAOA,EAAO1L,MAAOA,IAE/D,GACD,CAACqI,IAqBH,OAhBAS,EAAAA,EAAAA,YAAU,WAMNT,EALG6K,EAIDE,GAIAC,GAHO1G,EAAAA,EAAAA,IAAY,CAAEf,SAAU,WAAYgB,OAAO,KAO7CD,EAAAA,EAAAA,IAAY,CAAEf,SAAU,WAAYgB,OAAO,KAXzCD,EAAAA,EAAAA,IAAY,CAAEf,SAAU,WAAYgB,OAAO,IAYvD,GAAE,CAACsG,EAAWE,EAAgBC,EAAmBhL,KAGhD,UAAC6E,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,gBAAKtO,UAAWJ,EAAQ2O,cAAxB,UACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,yBAEF,UAACvK,EAAA,GAAD,CAAMhE,WAAS,EAAC2U,QAAS,EAAzB,WACE,SAAC3Q,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACuO,EAAA,EAAD,CACEvN,MAAM,YACNX,GAAG,YACH0F,KAAK,YACLyI,QAAS0F,EACTpO,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,YAAagC,EAC1B,EACDzN,MAAO,MACPgS,YACE,wFAILmB,IACC,UAAC,EAAAzD,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACuO,EAAA,EAAD,CACEvN,MAAM,iBACNX,GAAG,iBACH0F,KAAK,iBACLyI,QAAS4F,EACTtO,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,iBAAkBgC,EAC/B,EACDzN,MAAO,WACPgS,YACE,kFAIN,SAACjP,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACuO,EAAA,EAAD,CACEvN,MAAM,oBACNX,GAAG,oBACH0F,KAAK,oBACLyI,QAAS6F,EACTvO,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,oBAAqBgC,EAClC,EACDzN,MAAO,sBACPgS,YAAa,mDAGhBsB,IACC,UAAC,EAAA5D,SAAD,YACI2D,IACA,SAACtQ,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,EAAD,OAGJ,UAAC8D,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQsU,oBAAtC,WACE,SAACW,EAAA,EAAD,iCACCJ,EAAkBpQ,KAAI,SAACyQ,EAAkBvQ,GAAnB,OACrB,UAACN,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GAEJH,UAAWJ,EAAQiU,qBAJrB,WAME,UAAC5P,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQoU,SAAtC,WACE,SAACe,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEyL,EAAAA,EAAAA,IAAiB,CACfzU,GAAIsU,EAAQtU,GACZ0U,IAAK,OACL5N,SAAUA,EACVnG,MAAO6T,IAGZ,EACD1O,OAAO,uBACP9F,GAAG,UACH0F,KAAK,UACLhF,MAAM,OACNC,MAAO2T,EAAQK,QAEjB,SAACJ,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEyL,EAAAA,EAAAA,IAAiB,CACfzU,GAAIsU,EAAQtU,GACZ0U,IAAK,MACL5N,SAAUA,EACVnG,MAAO6T,IAGZ,EACD1O,OAAO,YACP9F,GAAG,SACH0F,KAAK,SACLhF,MAAM,MACNC,MAAO2T,EAAQI,UAInB,UAACjR,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAGH,UAAWJ,EAAQwU,WAArC,WACE,gBAAKpU,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAAS4L,EAAAA,EAAAA,MACV,EACDjP,SAAU5B,IAAUkQ,EAAkBnP,OAAS,EALjD,UAOE,SAAC4J,EAAA,EAAD,SAGJ,gBAAKlP,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAAS6L,EAAAA,EAAAA,IAAcP,EAAQtU,IAChC,EACD2F,SAAUsO,EAAkBnP,QAAU,EALxC,UAOE,SAAC8J,EAAA,EAAD,aA/DR,sBAGsB0F,EAAQtU,IAJT,QAwEzB,UAACyD,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQsU,oBAAtC,WACE,SAACW,EAAA,EAAD,oCAECF,EAAetQ,KAAI,SAACyQ,EAAkBvQ,GAAnB,OAClB,UAACN,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GAEJH,UAAWJ,EAAQuU,gBAJrB,WAME,SAAClQ,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAf,UACE,SAAC4U,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACE8L,EAAAA,EAAAA,IAAwB,CACtB9U,GAAIsU,EAAQtU,GACZ0U,IAAK,OACL5N,SAAUA,EACVnG,MAAO6T,IAGZ,EACD1O,OAAO,uBACP9F,GAAG,UACH0F,KAAK,UACLhF,MAAM,OACNC,MAAO2T,EAAQK,UAGnB,SAAClR,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAf,UACE,iBAAKH,UAAWJ,EAAQwU,WAAxB,WACE,gBAAKpU,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAAS+L,EAAAA,EAAAA,MACV,EACDpP,SAAU5B,IAAUoQ,EAAerP,OAAS,EAL9C,UAOE,SAAC4J,EAAA,EAAD,SAGJ,gBAAKlP,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAASgM,EAAAA,EAAAA,IAAoBV,EAAQtU,IACtC,EACD2F,SAAUwO,EAAerP,QAAU,EALrC,UAOE,SAAC8J,EAAA,EAAD,eA9CV,yBAGyB0F,EAAQtU,IAJf,kBA8DrC,ICpVD,EARmC,SAAC,GAAkB,IAAhB6I,EAAe,EAAfA,SACpC,OACE,eAAIhH,MAAO,CAAEO,OAAQ,EAAGvD,aAAc,QAASF,SAAU,UAAzD,SACGkK,GAGN,ECgBKmG,GAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,kCACRgN,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IALsB,IA2T7B,EAlToB,WAClB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,IAEViG,GAAgB5L,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWD,aAA1D,IAEIE,GAAc9L,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWC,WAA1D,IAEIC,GAAiB/L,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWE,cAA1D,IAEIC,GAAchM,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWG,WAA1D,IAEIC,GAAqBjM,EAAAA,EAAAA,KACzB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWI,kBAA1D,IAEIC,GAAUlM,EAAAA,EAAAA,KACd,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWK,OAA1D,IAEIC,GAAcnM,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWM,WAA1D,IAEIC,GAAapM,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWO,UAA1D,IAEIC,GAAYrM,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWQ,SAA1D,IAEIC,GAAmBtM,EAAAA,EAAAA,KACvB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAayB,gBAArD,IAEIC,GAAUvM,EAAAA,EAAAA,KACd,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAa0B,OAArD,IAGF,GAAgD7P,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,MAGAzC,EAAAA,EAAAA,YAAU,WACR,IAAIoM,EAAsC,GAE1CA,EAAoB,kBACfA,GADe,CAElB,CACEpJ,SAAU,iBACV7G,UAAU,EACVjF,MAAOsU,GAET,CACExI,SAAU,WACV7G,UAAU,EACVjF,MAAO4U,GAET,CACE9I,SAAU,eACV7G,UAAU,EACVjF,MAAO6U,GAET,CACE/I,SAAU,aACV7G,UAAU,EACVjF,MAAO+U,EACP/I,iBAAkBC,SAAS8I,GAAa,EACxC7I,wBAAyB,kCAE3B,CACEJ,SAAU,cACV7G,UAAU,EACVjF,MAAO8U,EACP9I,iBAAkBC,SAAS6I,GAAc,EACzC5I,wBAAyB,oCAI7B,IAAMO,GAAYC,EAAAA,EAAAA,GAAqBwI,GAEvC7M,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,aACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACD6H,EACAE,EACAI,EACAC,EACAE,EACAD,EACAzM,IAIF,IAAMmD,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,aAAcF,MAAOA,EAAO1L,MAAOA,IAEjE,GACD,CAACqI,IAGG0E,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAED,OACE,UAAC,EAAAyC,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,iBACH0F,KAAK,iBACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,OACtC+M,EAAgB,iBACjB,EACDhN,MAAM,WACNC,MAAOsU,EACPpP,MAAOoG,EAAgB,gBAAsB,GAC7CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,eACH0F,KAAK,eACLD,SAAU,SAACoB,GACTsF,EAAY,cAAetF,EAAEK,OAAOvG,OACpC+M,EAAgB,eACjB,EACDhN,MAAM,SACNC,MAAOwU,OAGX,SAAC1R,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,iBAAkBtF,EAAEK,OAAOvG,MACxC,EACDD,MAAM,YACNC,MAAOyU,OAGX,SAAC3R,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,eACH0F,KAAK,eACLD,SAAU,SAACoB,GACTsF,EAAY,cAAetF,EAAEK,OAAOvG,MACrC,EACDD,MAAM,SACNC,MAAO0U,OAIX,SAAC5R,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,sBAAUH,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,uBACA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,uBACH0F,KAAK,uBACLD,SAAU,SAACoB,GACTsF,EAAY,qBAAsBtF,EAAEK,OAAOvG,MAC5C,EACDD,MAAM,SACNC,MAAO2U,OAGX,SAAC7R,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,WACH0F,KAAK,WACLD,SAAU,SAACoB,GACTsF,EAAY,UAAWtF,EAAEK,OAAOvG,OAChC+M,EAAgB,WACjB,EACDhN,MAAM,aACNC,MAAO4U,EACP1P,MAAOoG,EAAgB,UAAgB,GACvCrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,eACH0F,KAAK,eACLD,SAAU,SAACoB,GACTsF,EAAY,cAAetF,EAAEK,OAAOvG,OACpC+M,EAAgB,eACjB,EACDhN,MAAM,iBACNC,MAAO6U,EACP3P,MAAOoG,EAAgB,cAAoB,GAC3CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACExH,KAAK,SACLkI,IAAI,IACJ9O,GAAG,cACH0F,KAAK,cACLD,SAAU,SAACoB,GACTsF,EAAY,aAActF,EAAEK,OAAOvG,OACnC+M,EAAgB,cACjB,EACDhN,MAAM,kBACNC,MAAO8U,EACP5P,MAAOoG,EAAgB,aAAmB,aAMlD,SAACxI,EAAA,GAAD,CAAMhE,WAAS,EAACD,UAAWJ,EAAQ0W,gBAAnC,UACE,sBAAUtW,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,mDAGA,SAACsG,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACE+M,EAAAA,EAAAA,IAAiB,CACfrB,IAAK,MACL5N,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,YACjB,EACD5H,OAAO,YACP9F,GAAG,YACH0F,KAAK,YACLhF,MAAM,MACNC,MAAOgV,EAAiBjB,OAE1B,SAACH,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACE+M,EAAAA,EAAAA,IAAiB,CACfrB,IAAK,OACL5N,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,aACjB,EACD5H,OAAO,uBACP9F,GAAG,aACH0F,KAAK,aACLhF,MAAM,OACNC,MAAOgV,EAAiBhB,QAE1B,SAACJ,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEgN,EAAAA,EAAAA,IAAe,CACblP,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,WACjB,EACD5H,OAAO,uBACP9F,GAAG,WACH0F,KAAK,WACLhF,MAAM,KACNC,MAAOiV,EAAQjB,aAIrB,SAAClR,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GACJH,UAAWJ,EAAQiR,aACnBxO,MAAO,CAAEW,UAAW,IAJtB,UAME,sBAAUhD,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,qBACA,SAACG,EAAA,EAAD,CACExH,KAAK,SACLkI,IAAI,IACJ9O,GAAG,aACH0F,KAAK,aACLD,SAAU,SAACoB,GACTsF,EAAY,YAAatF,EAAEK,OAAOvG,OAClC+M,EAAgB,aACjB,EACDhN,MAAM,iBACNC,MAAO+U,EACP7P,MAAOoG,EAAgB,YAAkB,YAMpD,EChUK+C,GAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,kCACRgN,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IALsB,IAuJ7B,EA9IoB,WAClB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,IAEViH,GAAgB5M,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWe,aAA1D,IAEIC,GAAgB7M,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWgB,aAA1D,IAEIC,GAAgB9M,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWiB,aAA1D,IAEIC,GAAoB/M,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWkB,iBAA1D,IAGF,GAAgDrQ,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,MAGAzC,EAAAA,EAAAA,YAAU,WACR,IAAIoM,EAAsC,GAE1CA,EAAoB,kBACfA,GADe,CAElB,CACEpJ,SAAU,iBACV7G,UAAU,EACVjF,MAAOsV,GAET,CACExJ,SAAU,kBACV7G,UAAU,EACVjF,MAAOuV,GAET,CACEzJ,SAAU,kBACV7G,UAAU,EACVjF,MAAOwV,GAET,CACE1J,SAAU,sBACV7G,UAAU,EACVjF,MAAOyV,KAIX,IAAMhJ,GAAYC,EAAAA,EAAAA,GAAqBwI,GAEvC7M,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,aACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACD6I,EACAC,EACAC,EACAC,EACApN,IAIF,IAAMmD,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,aAAcF,MAAOA,EAAO1L,MAAOA,IAEjE,GACD,CAACqI,IAGG0E,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAED,OACE,UAAC,EAAAyC,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,iBACH0F,KAAK,iBACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,OACtC+M,EAAgB,iBACjB,EACDhN,MAAM,WACNC,MAAOsV,EACPpQ,MAAOoG,EAAgB,gBAAsB,QAGjD,SAACxI,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,sBAAUH,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,0BACA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,OACtC+M,EAAgB,kBACjB,EACDhN,MAAM,YACNC,MAAOuV,EACPrQ,MAAOoG,EAAgB,iBAAuB,QAGlD,SAACxI,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,OACtC+M,EAAgB,kBACjB,EACDhN,MAAM,YACNC,MAAOwV,EACPtQ,MAAOoG,EAAgB,iBAAuB,QAGlD,SAACxI,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,sBACH0F,KAAK,sBACLD,SAAU,SAACoB,GACTsF,EAAY,oBAAqBtF,EAAEK,OAAOvG,OAC1C+M,EAAgB,sBACjB,EACDhN,MAAM,gBACNC,MAAOyV,EACPvQ,MAAOoG,EAAgB,qBAA2B,cAO/D,EC1JK+C,IAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,kCACRgN,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IALsB,IAuH7B,GA9GkB,WAChB,IAAMlM,EAAU4P,KACVhG,GAAWC,EAAAA,EAAAA,MAEXoN,GAAehN,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWmB,YAA1D,IAEIC,GAAcjN,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWoB,WAA1D,IAEIC,GAAiBlN,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWqB,cAA1D,IAEIC,GAAcnN,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWsB,WAA1D,IAEIC,GAAkBpN,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWuB,eAA1D,IAEIC,GAAgBrN,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWwB,aAA1D,IAIIvK,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,aAAcF,MAAOA,EAAO1L,MAAOA,IAEjE,GACD,CAACqI,IAGH,OACE,UAAC,EAAAoH,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,iBACH0F,KAAK,iBACLD,SAAU,SAACoB,GACTsF,EAAY,eAAgBtF,EAAEK,OAAOvG,MACtC,EACDD,MAAM,aACNC,MAAO0V,OAGX,SAAC5S,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,eACH0F,KAAK,eACLD,SAAU,SAACoB,GACTsF,EAAY,cAAetF,EAAEK,OAAOvG,MACrC,EACDD,MAAM,WACNC,MAAO2V,OAGX,SAAC7S,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,sBAAUH,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,0BACA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,mBACH0F,KAAK,mBACLD,SAAU,SAACoB,GACTsF,EAAY,iBAAkBtF,EAAEK,OAAOvG,MACxC,EACDD,MAAM,eACNC,MAAO4V,OAGX,SAAC9S,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,gBACH0F,KAAK,gBACLD,SAAU,SAACoB,GACTsF,EAAY,cAAetF,EAAEK,OAAOvG,MACrC,EACDD,MAAM,YACNC,MAAO6V,OAGX,SAAC/S,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,qBACH0F,KAAK,qBACLD,SAAU,SAACoB,GACTsF,EAAY,kBAAmBtF,EAAEK,OAAOvG,MACzC,EACDD,MAAM,iBACNC,MAAO8V,OAGX,SAAChT,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,MACvC,EACDD,MAAM,cACNC,MAAO+V,aAOpB,EC3GK1H,IAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,kCACRgN,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IALsB,IA+L7B,GAtLsB,WACpB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,KAEV2H,GAAYtN,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAayC,SAArD,IAEIC,GAAkBvN,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAW0B,eAA1D,IAEIC,GAAexN,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAW2B,YAA1D,IAEIC,GAAgBzN,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAW4B,aAA1D,IAEIC,GAAe1N,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAW6B,YAA1D,IAGF,GAAgDhR,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,MAGAzC,EAAAA,EAAAA,YAAU,WACR,IAAIoM,EAAsC,GAE1CA,EAAoB,kBACfA,GADe,CAElB,CACEpJ,SAAU,mBACV7G,UAAU,EACVjF,MAAOiW,GAET,CACEnK,SAAU,gBACV7G,UAAU,EACVjF,MAAOkW,GAET,CACEpK,SAAU,iBACV7G,UAAU,EACVjF,MAAOmW,GAET,CACErK,SAAU,gBACV7G,UAAU,EACVjF,MAAOoW,EACPpK,iBAAkBC,SAASmK,GAAgB,EAC3ClK,wBAAyB,oCAI7B,IAAMO,GAAYC,EAAAA,EAAAA,GAAqBwI,GAEvC7M,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,aACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CAACwJ,EAAiBC,EAAcC,EAAeC,EAAc/N,IAGhE,IAAMmD,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,aAAcF,MAAOA,EAAO1L,MAAOA,IAEjE,GACD,CAACqI,IAGG0E,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAED,OACE,UAAC,EAAAyC,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,mBACH0F,KAAK,mBACLD,SAAU,SAACoB,GACTsF,EAAY,kBAAmBtF,EAAEK,OAAOvG,OACxC+M,EAAgB,mBACjB,EACDhN,MAAM,WACNC,MAAOiW,EACP/Q,MAAOoG,EAAgB,kBAAwB,GAC/CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GACJkC,MAAO,CACLhD,aAAc,IAJlB,UAOE,sBAAUW,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,0BACA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,gBACH0F,KAAK,gBACLD,SAAU,SAACoB,GACTsF,EAAY,eAAgBtF,EAAEK,OAAOvG,OACrC+M,EAAgB,gBACjB,EACDhN,MAAM,QACNC,MAAOkW,EACPhR,MAAOoG,EAAgB,eAAqB,GAC5CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,iBACH0F,KAAK,iBACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,OACtC+M,EAAgB,iBACjB,EACDhN,MAAM,SACNC,MAAOmW,EACPjR,MAAOoG,EAAgB,gBAAsB,GAC7CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACExH,KAAK,SACLkI,IAAI,IACJ9O,GAAG,gBACH0F,KAAK,gBACLD,SAAU,SAACoB,GACTsF,EAAY,eAAgBtF,EAAEK,OAAOvG,OACrC+M,EAAgB,gBACjB,EACDhN,MAAM,kBACNC,MAAOoW,EACPlR,MAAOoG,EAAgB,eAAqB,aAKpD,SAACxI,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GACJkC,MAAO,CACLhD,aAAc,IAJlB,UAOE,sBAAUW,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,sDAIA,SAACsG,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEgO,EAAAA,EAAAA,IAAiB,CACflQ,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,aACjB,EACD5H,OAAO,uBACP9F,GAAG,aACH0F,KAAK,aACLhF,MAAM,KACNC,MAAOgW,EAAUhC,cAM5B,EClMK3F,IAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,kCACRgN,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IALsB,IAgL7B,GAvKkB,WAChB,IAAMtC,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,KAEViI,GAAc5N,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAW+B,WAA1D,IAEIC,GAAY7N,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWgC,SAA1D,IAEIC,GAAY9N,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWiC,SAA1D,IAEIC,GAAe/N,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWkC,YAA1D,IAEIC,GAAehO,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWmC,YAA1D,IAEIC,GAAWjO,EAAAA,EAAAA,KACf,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWoC,QAA1D,IAEF,GAAgDvR,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,MAGAzC,EAAAA,EAAAA,YAAU,WACR,IAAIoM,EAAsC,GAE1CA,EAAoB,kBACfA,GADe,CAElB,CACEpJ,SAAU,eACV7G,UAAU,EACVjF,MAAOsW,GAET,CACExK,SAAU,aACV7G,UAAU,EACVjF,MAAOuW,GAET,CACEzK,SAAU,gBACV7G,UAAU,EACVjF,MAAOyW,GAET,CACE3K,SAAU,gBACV7G,UAAU,EACVjF,MAAO0W,KAIX,IAAMjK,GAAYC,EAAAA,EAAAA,GAAqBwI,GAEvC7M,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,aACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CAAC6J,EAAaC,EAAWG,EAAcD,EAAcpO,IAGxD,IAAMmD,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,aAAcF,MAAOA,EAAO1L,MAAOA,IAEjE,GACD,CAACqI,IAGG0E,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAED,OACE,UAAC,EAAAyC,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,eACH0F,KAAK,eACLD,SAAU,SAACoB,GACTsF,EAAY,cAAetF,EAAEK,OAAOvG,OACpC+M,EAAgB,eACjB,EACDhN,MAAM,WACNC,MAAOsW,EACPpR,MAAOoG,EAAgB,cAAoB,GAC3CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,aACH0F,KAAK,aACLD,SAAU,SAACoB,GACTsF,EAAY,YAAatF,EAAEK,OAAOvG,OAClC+M,EAAgB,aACjB,EACDhN,MAAM,SACNC,MAAOuW,EACPrR,MAAOoG,EAAgB,YAAkB,GACzCrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,aACH0F,KAAK,aACLD,SAAU,SAACoB,GACTsF,EAAY,YAAatF,EAAEK,OAAOvG,MACnC,EACDD,MAAM,UACNC,MAAOwW,OAGX,SAAC1T,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,sBAAUH,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,0BACA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,gBACH0F,KAAK,gBACLD,SAAU,SAACoB,GACTsF,EAAY,eAAgBtF,EAAEK,OAAOvG,OACrC+M,EAAgB,gBACjB,EACDhN,MAAM,aACNC,MAAOyW,EACPvR,MAAOoG,EAAgB,eAAqB,GAC5CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,gBACH0F,KAAK,gBACLD,SAAU,SAACoB,GACTsF,EAAY,eAAgBtF,EAAEK,OAAOvG,OACrC+M,EAAgB,gBACjB,EACDhN,MAAM,aACNC,MAAO0W,EACPxR,MAAOoG,EAAgB,eAAqB,GAC5CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,YACH0F,KAAK,YACLD,SAAU,SAACoB,GACTsF,EAAY,WAAYtF,EAAEK,OAAOvG,MAClC,EACDD,MAAM,QACNC,MAAO2W,aAOpB,ECkXD,IAAevZ,EAAAA,EAAAA,IA5gBA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gCACXsZ,sBAAuB,CACrB1Y,aAAc,IAEhBiX,gBAAiB,CACftT,UAAW,GACX,aAAc,CACZyQ,KAAM,IAGVuE,YAAa,CACXxY,YAAa,IAEfyY,oBAAqB,CACnB,4BAA6B,CAC3B3Y,QAAS,OACTsB,SAAU,YAGX6K,EAAAA,IACAmE,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IAvBQ,GA4gBf,EAlfmB,SAAC,GAAmC,IAAjClM,EAAgC,EAAhCA,QACd4J,GAAWC,EAAAA,EAAAA,MAEXyO,GAAWrO,EAAAA,EAAAA,KACf,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWwC,QAA1D,IAEIC,GAAmBtO,EAAAA,EAAAA,KACvB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWyC,gBAA1D,IAEIC,GAAiBvO,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAW0C,cAA1D,IAGIvB,GAAehN,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWmB,YAA1D,IAEIC,GAAcjN,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWoB,WAA1D,IAEIC,GAAiBlN,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWqB,cAA1D,IAEIC,GAAcnN,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWsB,WAA1D,IAEIC,GAAkBpN,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWuB,eAA1D,IAEIC,GAAgBrN,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAWwB,aAA1D,IAEImB,GAA0BxO,EAAAA,EAAAA,KAC9B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOyJ,WAAW2C,uBADvC,IAGI9D,GAAiB1K,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOqI,SAASC,cAAxD,IAEIF,GAAYxK,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOqI,SAASD,SAAxD,IAEII,GAAoB5K,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAaD,iBAArD,IAEI6D,GAAoBzO,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAa4D,iBAArD,IAEIC,GAAoB1O,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa0I,aAAa6D,iBAArD,IAGI/D,GAAoB3K,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOqI,SAASE,iBAAxD,IAEIgE,GAAqB3O,EAAAA,EAAAA,KACzB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOyJ,WAAW8C,kBAA1D,IAGF,GAAgDjS,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAEI+L,GAAsB,EAExBpE,IACCE,GACEE,GACCA,EAAkBiE,QAChB,SAACxY,GAAD,OAAUA,EAAKyY,aAAezY,EAAK0Y,YAAnC,IACAtT,OAAS,KAEfmT,GAAsB,GAIxB,IAAM9L,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,aAAcF,MAAOA,EAAO1L,MAAOA,IAEjE,GACD,CAACqI,IAGG0E,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAsGD,OAnGAlE,EAAAA,EAAAA,YAAU,WACR,IAAIoM,EAAsC,GAEtC8B,IACF9B,EAAoB,kBACfA,GADe,CAElB,CACEpJ,SAAU,WACV7G,UAAU,EACVjF,MAAO+W,EACP/K,iBAAkBC,SAAS8K,GAAY,EACvC7K,wBAAyB,qCAE3B,CACEJ,SAAU,gCACV7G,UAAU,EACVjF,MAAOqX,EAAmBtL,UAC1BC,iBACmC,KAAjCqL,EAAmBtL,WACnBE,SAASoL,EAAmBtL,WAAa,EAC3CG,wBAAwB,8CAE1B,CACEJ,SAAU,iCACV7G,UAAU,EACVjF,MAAOqX,EAAmBlL,WAC1BH,iBACoC,KAAlCqL,EAAmBlL,YACnBF,SAASoL,EAAmBlL,YAAc,EAC5CD,wBAAwB,+CAE1B,CACEJ,SAAU,8BACV7G,UAAU,EACVjF,MAAOqX,EAAmBjL,QAC1BJ,iBACiC,KAA/BqL,EAAmBjL,SACnBH,SAASoL,EAAmBjL,SAAW,EACzCF,wBAAwB,8CAIxBmH,IACF6B,EAAoB,kBACfA,GADe,CAElB,CACEpJ,SAAU,YACV7G,UAAWmO,EACXpT,MAAOmX,EAAkBK,aAE3B,CACE1L,SAAU,aACV7G,UAAWmO,EACXpT,MAAOmX,EAAkBM,cAE3B,CACE3L,SAAU,YACV7G,UAAWmO,EACXpT,MAAOoX,EAAkBI,aAE3B,CACE1L,SAAU,aACV7G,UAAWmO,EACXpT,MAAOoX,EAAkBK,kBAMjC,IAAMhL,GAAYC,EAAAA,EAAAA,GAAqBwI,GAEvC7M,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,aACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACDuK,EACAC,EACAvB,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1N,EACA+K,EACAC,EACA8D,EAAkBK,YAClBL,EAAkBM,aAClBL,EAAkBI,YAClBJ,EAAkBK,aAClBJ,EACAN,KAIA,UAAC7J,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,UAACrK,EAAA,GAAD,CAAMhE,WAAS,EAACV,WAAY,SAA5B,WACE,SAAC0E,EAAA,GAAD,CAAM/D,MAAI,EAACC,IAAE,EAAb,UACE,SAAC,EAAD,4BAEF,SAAC8D,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAG2T,eAAgB,MAAO/Q,UAAW,QAApD,UACE,SAAC2L,EAAA,EAAD,CACExN,MAAO,GACP2X,gBAAiB,CAAC,UAAW,YAC7BlK,QAASwJ,EACThX,MAAO,oBACPX,GAAG,oBACH0F,KAAK,oBACLD,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,mBAAoBgC,EACjC,EACDuE,YAAY,GACZ/M,UAAWsS,UAIjB,UAACxU,EAAA,GAAD,CAAMhE,WAAS,EAAC2U,QAAS,EAAzB,WACE,SAAC3Q,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,iBAAMH,UAAWJ,EAAQ6O,gBAAzB,6UAQF,SAACxK,EAAA,GAAD,CAAM9D,GAAI,GAAV,UACE,eAAIH,UAAWJ,EAAQkZ,YAGxBX,IACC,UAAC,EAAAvH,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQmY,sBAAtC,UACE,SAAClF,EAAA,EAAD,CACEC,iBAAkBsF,EAClB5X,GAAG,iBACH0F,KAAK,iBACLhF,MAAM,qBACN+E,SAAU,SAACoB,GACTsF,EAAY,iBAAkBtF,EAAEK,OAAOvG,MACxC,EACD6R,gBAAiB,CACf,CAAE9R,MAAO,QAASC,MAAO,SACzB,CAAED,MAAO,MAAOC,MAAO,OACvB,CAAED,MAAO,UAAWC,MAAO,WAC3B,CAAED,MAAO,MAAOC,MAAO,OACvB,CAAED,MAAO,QAASC,MAAO,cAIX,UAAnBiX,IAA8B,SAAC,EAAD,IACX,UAAnBA,IAA8B,SAAC,EAAD,IACX,QAAnBA,IAA4B,SAAC,GAAD,IACT,QAAnBA,IAA4B,SAAC,GAAD,IACT,YAAnBA,IAAgC,SAAC,GAAD,KACjC,gBAAKpY,UAAWJ,EAAQ2O,cAAxB,UACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,0CAEF,SAACvK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACuO,EAAA,EAAD,CACEvN,MAAM,0BACNX,GAAG,0BACH0F,KAAK,0BACLyI,QAAS0J,IAA4B9D,EACrCtO,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,0BAA2BgC,EACxC,EACDzN,MAAO,sBACPiF,UAAWoO,OAGb8D,IAA4B9D,KAC5B,UAAC,EAAA3D,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAMhE,WAAS,EAAf,UACE,SAACgE,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIkC,MAAO,CAAEhD,aAAc,IAA1C,UACE,sBAAUW,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,8CAGA,SAACsG,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEuP,EAAAA,EAAAA,IAAkB,CAChB7D,IAAK,MACL5N,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,YACjB,EACD5H,OAAO,YACP9F,GAAG,YACH0F,KAAK,YACLhF,MAAM,MACNmF,MAAOoG,EAAgB,WAAiB,GACxCtL,MAAOmX,EAAkBpD,IACzB9O,UAAWmO,KAEb,SAACQ,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEuP,EAAAA,EAAAA,IAAkB,CAChB7D,IAAK,OACL5N,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,aACjB,EACD5H,OAAO,uBACP9F,GAAG,aACH0F,KAAK,aACLhF,MAAM,OACNmF,MAAOoG,EAAgB,YAAkB,GACzCtL,MAAOmX,EAAkBnD,KACzB/O,UAAWmO,YAKnB,SAACtQ,EAAA,GAAD,CAAMhE,WAAS,EAACoC,MAAO,CAAEhD,aAAc,IAAvC,UACE,SAAC4E,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,sBAAUH,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,mDAGA,SAACsG,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEwP,EAAAA,EAAAA,IAAkB,CAChB9D,IAAK,MACL5N,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,YACjB,EACD5H,OAAO,YACP9F,GAAG,YACH0F,KAAK,YACLhF,MAAM,MACNmF,MAAOoG,EAAgB,WAAiB,GACxCtL,MAAOoX,EAAkBrD,IACzB9O,UAAWmO,KAEb,SAACQ,EAAA,EAAD,CACE9O,SAAU,SAAC+O,EAAc1N,GACvBkC,GACEwP,EAAAA,EAAAA,IAAkB,CAChB9D,IAAK,OACL5N,SAAUA,EACVnG,MAAO6T,KAGX9G,EAAgB,aACjB,EACD5H,OAAO,uBACP9F,GAAG,aACH0F,KAAK,aACLhF,MAAM,OACNmF,MAAOoG,EAAgB,YAAkB,GACzCtL,MAAOoX,EAAkBpD,KACzB/O,UAAWmO,eAOvB,UAACtQ,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,WACE,SAAC8D,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIP,QAASA,EAAQiR,aAApC,UACE,SAACjC,EAAA,EAAD,CACExH,KAAK,SACLkI,IAAI,IACJ9O,GAAG,WACH0F,KAAK,WACLD,SAAU,SAACoB,GACTsF,EAAY,WAAYtF,EAAEK,OAAOvG,OACjC+M,EAAgB,WACjB,EACDhN,MAAM,WACNC,MAAO+W,EACP9R,UAAQ,EACRC,MAAOoG,EAAgB,UAAgB,QAI3C,sBACEzM,UAAWJ,EAAQ4L,WACnBnJ,MAAO,CAAEW,UAAW,IAFtB,WAIE,mBAAQhD,UAAWJ,EAAQ6O,gBAA3B,2CAGA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ4Y,mBAAtC,UACE,iBACExY,UAAS,UAAKJ,EAAQyP,eAAb,YAA+BzP,EAAQqY,qBADlD,WAGE,gBACEjY,UAAS,UAAKJ,EAAQiR,aAAb,YAA6BjR,EAAQoY,aADhD,UAGE,SAACpJ,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,gCACH0F,KAAK,gCACLD,SAAU,SAACoB,GACTsF,EAAY,sBAAD,QAAC,UACP6L,GADM,IAETtL,UAAW7F,EAAEK,OAAOvG,SAEtB+M,EAAgB,gCACjB,EACDhN,MAAM,cACNC,MAAOqX,EAAmBtL,UAC1B9G,UAAQ,EACRC,MACEoG,EAAgB,+BAChB,GAEF6C,IAAI,SAGR,gBACEtP,UAAS,UAAKJ,EAAQiR,aAAb,YAA6BjR,EAAQoY,aADhD,UAGE,SAACpJ,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,iCACH0F,KAAK,iCACLD,SAAU,SAACoB,GACTsF,EAAY,sBAAD,QAAC,UACP6L,GADM,IAETlL,WAAYjG,EAAEK,OAAOvG,SAEvB+M,EAAgB,iCACjB,EACDhN,MAAM,eACNC,MAAOqX,EAAmBlL,WAC1BlH,UAAQ,EACRC,MACEoG,EAAgB,gCAChB,GAEF6C,IAAI,SAGR,gBACEtP,UAAS,UAAKJ,EAAQiR,aAAb,YAA6BjR,EAAQoY,aADhD,UAGE,SAACpJ,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,8BACH0F,KAAK,8BACLD,SAAU,SAACoB,GACTsF,EAAY,sBAAD,QAAC,UACP6L,GADM,IAETjL,QAASlG,EAAEK,OAAOvG,SAEpB+M,EAAgB,8BACjB,EACDhN,MAAM,UACNC,MAAOqX,EAAmBjL,QAC1BnH,UAAQ,EACRC,MACEoG,EAAgB,6BAAmC,GAErD6C,IAAI,cAKZ,mBACA,SAACrL,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,gBAAKH,UAAWJ,EAAQyP,eAAxB,UACE,SAACX,EAAA,EAAD,CACEvN,MAAM,iCACNX,GAAG,mCACH0F,KAAK,mCACLyI,QAAS6J,EAAmBjJ,aAC5BtJ,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,sBAAD,QAAC,UACP6L,GADM,IAETjJ,aAAcZ,IAEjB,EACDzN,MAAO,yCAW5B,I,uEC7DD,IAAe3C,EAAAA,EAAAA,IA9cA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACXmN,cAAe,CACbN,WAAY,GACZhM,QAAS,OACTC,WAAY,SACZ,QAAS,CACPmG,SAAU,GACVvC,UAAW,IAEb,WAAY,CACVpC,WAAY,YAGhBkY,oBAAqB,CACnB3Z,QAAS,QAEX4Z,mBAAoB,CAClB5Z,QAAS,OACTsB,SAAU,SACV6S,KAAM,GAER0F,WAAY,CACV7Z,QAAS,OACTC,WAAY,aACZyD,UAAW,GACX,oBAAqB,CACnB1D,QAAS,OACTsB,SAAU,SACVrB,WAAY,WACZwD,UAAW,oBAGfqW,iBAAkB,CAChB,oBAAqB,CACnB/Z,aAAc,IAGlBga,mBAAoB,CAClB/N,WAAY,GACZ,oBAAqB,CACnBjM,aAAc,IAGlB+U,WAAY,CACV9U,QAAS,OACTC,WAAY,UAEd+Z,YAAa,CACXja,aAAc,GACdC,QAAS,SAERuM,EAAAA,IACAC,EAAAA,IArDQ,GA8cf,EAjZiB,SAAC,GAAiC,IAA/BlM,EAA8B,EAA9BA,QACZ4J,GAAWC,EAAAA,EAAAA,MAEX8P,GAAc1P,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOuN,SAASD,WAAxD,IAEIE,GAAqB5P,EAAAA,EAAAA,KACzB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOuN,SAASC,kBAAxD,IAEIC,GAAsB7P,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOuN,SAASE,mBAAxD,IAEIC,GAAgB9P,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa4N,iBAAxC,IAEIC,GAAchQ,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa6N,WAAxC,IAGF,GAAgDtT,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KACA,GAA8BnG,EAAAA,EAAAA,WAAkB,GAAhD,eAAOuT,EAAP,KAAgBC,EAAhB,KACA,GAAsCxT,EAAAA,EAAAA,UACpC,CAAC,GADH,eAAOyT,EAAP,KAAoBC,EAApB,KAGA,GAAoC1T,EAAAA,EAAAA,UAAuB,IAA3D,eAAO2T,EAAP,KAAmBC,EAAnB,KAGMxN,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CACbC,SAAU,WACVF,MAAOA,EACP1L,MAAOA,IAGZ,GACD,CAACqI,KAGHS,EAAAA,EAAAA,YAAU,WACJ6P,GACF9U,GAAAA,EAAAA,OACU,MADV,wBAEGoV,MAAK,SAACC,GACLN,GAAW,GACXE,EAAeI,GACf,IAAIpM,EAAqB,GACzB,IAAK,IAAIqM,KAAKD,EACZpM,EAAKoE,KAAK,CACRnR,MAAOoZ,EACPnZ,MAAOmZ,IAGXH,EAAclM,EACf,IACAsM,OAAM,SAACC,GACNT,GAAW,GACXvQ,GAASiR,EAAAA,GAAAA,IAA0BD,IACnCP,EAAe,CAAC,EACjB,GAEN,GAAE,CAACzQ,EAAUsQ,KAEd7P,EAAAA,EAAAA,YAAU,WACR,GAAI0P,EAAe,CACjB,IAIMe,EAJMf,EACTjB,QAAO,SAACiC,GAAD,MAAqB,KAAZA,EAAIzF,GAAb,IACP7Q,KAAI,SAACsW,GAAD,gBAAYA,EAAIzF,IAAhB,YAAuByF,EAAIxZ,MAA3B,IACJuX,QAAO,SAACkC,EAAKxI,EAAGyI,GAAT,OAAeA,EAAEC,QAAQF,KAASxI,CAAlC,IACK2I,KAAK,KACpBpO,EAAY,qBAAsB+N,EACnC,CACF,GAAE,CAACf,EAAehN,KAGnB1C,EAAAA,EAAAA,YAAU,WACR,IAAI+C,EAAyC,GAE7C,GAAoB,iBAAhBuM,EAAgC,CAClC,IAAIxL,GAAQ,EAENiN,EAAiBvB,EAAmBrR,MAAM,KAElB,IAA1B4S,EAAe1V,QAAsC,KAAtB0V,EAAe,KAChDjN,GAAQ,GAGViN,EAAeC,SAAQ,SAAC/a,EAAcqE,GACpC,IAAM2W,EAAYhb,EAAKkI,MAAM,KAEJ,IAArB8S,EAAU5V,SACZyI,GAAQ,GAGNxJ,EAAQ,IAAMyW,EAAe1V,SACV,KAAjB4V,EAAU,IAA8B,KAAjBA,EAAU,KACnCnN,GAAQ,GAGb,IAEDf,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,SACV7G,UAAU,EACVjF,MAAOsY,EACPtM,kBAAmBY,EACnBV,wBACE,gDAGP,CAED,IAAMO,GAAYC,EAAAA,EAAAA,GAAqBb,GAEvCxD,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,WACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CAACpE,EAAU+P,EAAaE,IAE3B,IAAM0B,EAAmB,SAAC5W,EAAesI,EAAe1L,GACtD,IAAMia,GAAe,kBAAQvB,EAAYtV,IAApB,eAA6BsI,EAAQ1L,IAE1DqI,GACE6R,EAAAA,EAAAA,IAAkB,CAChB9W,MAAOA,EACP+W,gBAAiBF,IAGtB,EAED,OACE,UAAC/M,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,iBAAKtO,UAAWJ,EAAQ2O,cAAxB,WACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,4BACA,iBAAMxO,UAAWJ,EAAQ6O,gBAAzB,8DAIF,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQqZ,oBAAtC,UACE,UAAChV,EAAA,GAAD,CAAM/D,MAAI,EAACF,UAAWJ,EAAQsZ,mBAA9B,WACE,gBAAKlZ,UAAWJ,EAAQsB,MAAxB,mBACA,gBACElB,UAAS,UAAKJ,EAAQ6O,gBAAb,YAAgC7O,EAAQ2b,kBADnD,sEAKA,SAACtX,EAAA,GAAD,CAAM/D,MAAI,EAACF,UAAWJ,EAAQuZ,WAA9B,UACE,SAACtG,EAAA,EAAD,CACEC,iBAAkByG,EAClB/Y,GAAG,mBACH0F,KAAK,mBACLhF,MAAO,IACP+E,SAAU,SAACoB,GACTsF,EAAY,cAAetF,EAAEK,OAAOvG,MACrC,EACD6R,gBAAiB,CACf,CAAE9R,MAAO,OAAQC,MAAO,QACxB,CAAED,MAAO,8BAA+BC,MAAO,WAC/C,CAAED,MAAO,gBAAiBC,MAAO,0BAM1B,iBAAhBoY,IACC,UAAC,EAAA3I,SAAD,YACE,mBACA,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACuO,EAAA,EAAD,CACEvN,MAAM,yBACNX,GAAG,yBACH0F,KAAK,yBACLyI,QAAS+K,EACTzT,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,sBAAuBgC,EACpC,EACDzN,MAAO,8BAGX,UAAC+C,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,WACE,oCACA,iBAAMH,UAAWJ,EAAQyG,MAAzB,SAAiCoG,EAAgB,UACjD,SAACxI,EAAA,GAAD,CAAMhE,WAAS,EAAf,SACG0Z,GACCA,EAActV,KAAI,SAACsW,EAAKvI,GACtB,OACE,UAACnO,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GACJH,UAAWJ,EAAQ0Z,YAHrB,WAME,UAACrV,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAGH,UAAWJ,EAAQwZ,iBAArC,UACGc,EAAW5U,OAAS,IACnB,SAACkW,GAAA,EAAD,CACEvV,SAAU,SAACoB,GACT,IAAMoU,EAASpU,EAAEK,OAAOvG,MAClBua,EAAuB,CAC3BxG,IAAKuG,EACLta,MAAO6Y,EAAYyB,GAAQ,IAEvBE,GAAqB,OAAOhC,GAClCgC,EAAMvJ,GAAKsJ,EACXlS,GAASoS,EAAAA,EAAAA,IAAiBD,GAC3B,EACDnb,GAAG,uBACH0F,KAAK,uBACLhF,MAAO,GACPC,MAAOwZ,EAAIzF,IACX2G,QAAS3B,IAGU,IAAtBA,EAAW5U,SACV,SAACsJ,EAAA,EAAD,CACEpO,GAAE,2BAAsB4R,EAAEjK,YAC1BjH,MAAO,GACPgF,KAAI,uBAAkBkM,EAAEjK,YACxBhH,MAAOwZ,EAAIzF,IACXjP,SAAU,SAACoB,GACT,IAAMsU,GAAqB,OAAOhC,GAClCgC,EAAMvJ,GAAK,CACT8C,IAAKyG,EAAMvJ,GAAG8C,IACd/T,MAAOkG,EAAEK,OAAOvG,OAElBqI,GAASoS,EAAAA,EAAAA,IAAiBD,GAC3B,EACDpX,MAAO6N,EACPvD,YAAa,YAInB,UAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAGH,UAAWJ,EAAQyZ,mBAArC,UACGa,EAAW5U,OAAS,IACnB,SAACkW,GAAA,EAAD,CACEvV,SAAU,SAACoB,GACT,IAAMsU,GAAqB,OAAOhC,GAClCgC,EAAMvJ,GAAK,CACT8C,IAAKyG,EAAMvJ,GAAG8C,IACd/T,MAAOkG,EAAEK,OAAOvG,OAElBqI,GAASoS,EAAAA,EAAAA,IAAiBD,GAC3B,EACDnb,GAAG,uBACH0F,KAAK,uBACLhF,MAAO,GACPC,MAAOwZ,EAAIxZ,MACX0a,QACE7B,EAAYW,EAAIzF,KACZ8E,EAAYW,EAAIzF,KAAK7Q,KAAI,SAACyX,GACxB,MAAO,CAAE5a,MAAO4a,EAAG3a,MAAO2a,EAC3B,IACD,KAIa,IAAtB5B,EAAW5U,SACV,SAACsJ,EAAA,EAAD,CACEpO,GAAE,6BAAwB4R,EAAEjK,YAC5BjH,MAAO,GACPgF,KAAI,uBAAkBkM,EAAEjK,YACxBhH,MAAOwZ,EAAIxZ,MACX8E,SAAU,SAACoB,GACT,IAAMsU,GAAqB,OAAOhC,GAClCgC,EAAMvJ,GAAK,CACT8C,IAAKyG,EAAMvJ,GAAG8C,IACd/T,MAAOkG,EAAEK,OAAOvG,OAElBqI,GAASoS,EAAAA,EAAAA,IAAiBD,GAC3B,EACDpX,MAAO6N,EACPvD,YAAa,cAInB,UAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAGH,UAAWJ,EAAQwU,WAArC,WACE,gBAAKpU,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP,IAAM+Z,GAAK,OAAOhC,GACdO,EAAW5U,OAAS,EACtBqW,EAAMtJ,KAAK,CACT6C,IAAKgF,EAAW,GAAG/Y,MACnBA,MAAO6Y,EAAYE,EAAW,GAAG/Y,OAAO,KAG1Cwa,EAAMtJ,KAAK,CAAE6C,IAAK,GAAI/T,MAAO,KAG/BqI,GAASoS,EAAAA,EAAAA,IAAiBD,GAC3B,EAdH,UAgBE,SAACI,GAAA,EAAD,QAGHpC,EAAcrU,OAAS,IACtB,gBAAKtF,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP,IAAM+Z,EAAQhC,EAAcjB,QAC1B,SAACxY,EAAMqE,GAAP,OAAiBA,IAAU6N,CAA3B,IAEF5I,GAASoS,EAAAA,EAAAA,IAAiBD,GAC3B,EAPH,UASE,SAACvM,EAAA,EAAD,aAxHV,0BAI0BgD,EAAEjK,YA2H/B,aAKX,SAAClE,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQqZ,oBAAtC,UACE,UAAChV,EAAA,GAAD,CAAM/D,MAAI,EAACF,UAAWJ,EAAQsZ,mBAA9B,WACE,yCACA,iBAAMlZ,UAAWJ,EAAQyG,MAAzB,SACGoG,EAAgB,eAEnB,SAACxI,EAAA,GAAD,CAAMhE,WAAS,EAAf,SACG4Z,GACCA,EAAYxV,KAAI,SAAC2X,EAAK5J,GAAO,IAAD,EAC1B,OACE,UAACnO,EAAA,GAAD,CACE/D,MAAI,EACJC,GAAI,GACJH,UAAWJ,EAAQ0Z,YAHrB,WAME,SAAC2C,GAAA,EAAD,CACEC,OAAQF,EAAIE,OACZC,eAAgB,SAAChb,GACfga,EAAiB/I,EAAG,SAAUjR,EAC/B,EACDib,cAAeJ,EAAI9G,IACnBmH,sBAAuB,SAAClb,GACtBga,EAAiB/I,EAAG,MAAOjR,EAC5B,EACDmb,SAAUN,EAAIM,SACdC,iBAAkB,SAACpb,GACjBga,EAAiB/I,EAAG,WAAYjR,EACjC,EACDA,MAAO6a,EAAI7a,MACXqb,cAAe,SAACrb,GACdga,EAAiB/I,EAAG,QAASjR,EAC9B,EACDsb,mBAAmB,UAAAT,EAAIS,yBAAJ,eAAuBC,UAAW,EACrDC,gBAAiB,SAACxb,GAChBga,EAAiB/I,EAAG,oBAAqB,CACvCsK,QAASvb,GAEZ,EACDoD,MAAO6N,KAET,gBAAKpS,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,WACP4H,GAASoT,EAAAA,EAAAA,MACV,EACDzW,SAAUiM,IAAMyH,EAAYvU,OAAS,EALvC,UAOE,SAACyW,GAAA,EAAD,SAIJ,gBAAK/b,UAAWJ,EAAQgM,cAAxB,UACE,SAACrD,EAAA,EAAD,CACEI,KAAM,QACN/G,QAAS,kBAAM4H,GAASqT,EAAAA,EAAAA,IAAiBzK,GAAhC,EACTjM,SAAU0T,EAAYvU,QAAU,EAHlC,UAKE,SAAC8J,EAAA,EAAD,UAjDN,0BAI0BgD,EAAEjK,YAkD/B,aAMd,I,YCTD,IAAe5J,EAAAA,EAAAA,IAldA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACRmR,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IAJQ,GAkdf,EA3ce,SAAC,GAA+B,IAA7BlM,EAA4B,EAA5BA,QACV4J,GAAWC,EAAAA,EAAAA,MAEXqT,GAAcjT,EAAAA,EAAAA,KAClB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAU4Q,WAAzD,IAEIC,GAAYlT,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAU6Q,SAAzD,IAEIC,GAAkBnT,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAU8Q,eAAzD,IAEIC,GAAgBpT,EAAAA,EAAAA,KACpB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAU+Q,aAAzD,IAEIC,GAAwBrT,EAAAA,EAAAA,KAC5B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUgR,qBADtC,IAGIC,GAAwBtT,EAAAA,EAAAA,KAC5B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUiR,qBADtC,IAIIC,GAAmBvT,EAAAA,EAAAA,KACvB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUmR,iBAAzD,IAEI9Q,GAAe1C,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUK,YAAzD,IAEI+Q,GAAkBzT,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUqR,gBAAzD,IAEIC,GAAsB3T,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUsR,mBAAzD,IAGIC,GAAuB5T,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUuR,oBADtC,IAIIC,GAAgC7T,EAAAA,EAAAA,KACpC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUwR,6BADtC,IAGIC,GAAiB9T,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUyR,cAAzD,IAEIC,GAAW/T,EAAAA,EAAAA,KACf,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAU0R,QAAzD,IAEIC,GAAyBhU,EAAAA,EAAAA,KAC7B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU2R,sBADtC,IAGIC,GAA6BjU,EAAAA,EAAAA,KACjC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU4R,0BADtC,IAGIC,GAAiClU,EAAAA,EAAAA,KACrC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU6R,8BADtC,IAGIC,GAAkBnU,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAU8R,eAAzD,IAEIC,GAAyBpU,EAAAA,EAAAA,KAC7B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU+R,sBADtC,IAGIC,GAAsBrU,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUgS,mBAAzD,IAGF,GAAgD3X,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAGMC,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,YAAaF,MAAOA,EAAO1L,MAAOA,IAEhE,GACD,CAACqI,KAIHS,EAAAA,EAAAA,YAAU,WACR,IAAI+C,EAAyC,GAEzCoQ,IACFpQ,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,2BACV7G,UAAU,EACVjF,MAAO4c,EACP5Q,iBAAqD,KAAnC4Q,EAClB1Q,wBAAyB,yBAE3B,CACEJ,SAAU,yBACV7G,UAAU,EACVjF,MAAOsc,EACPtQ,iBAC2B,KAAzBsQ,GAA+BrQ,SAASqQ,IAAyB,EACnEpQ,wBAAwB,yDAI1BiQ,IACFtQ,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,2BACV7G,UAAU,EACVjF,MAAOuc,EACPvQ,iBAAoD,KAAlCuQ,EAClBrQ,wBAAyB,yBAE3B,CACEJ,SAAU,yBACV7G,UAAU,EACVjF,MAAOqc,EACPrQ,iBAC0B,KAAxBqQ,GAA8BpQ,SAASoQ,IAAwB,EACjEnQ,wBAAwB,yDAK1ByP,IACF9P,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,QACV7G,UAAU,EACVjF,MAAO4b,EACPrP,QAAS,wBACTC,qBAAsB,iDAExB,CACEV,SAAU,iBACV7G,UAAU,EACVjF,MAAOwc,EACPjQ,QAAS,wBACTC,qBACE,oDAEJ,CACEV,SAAU,WACV7G,UAAU,EACVjF,MAAOyc,EACPlQ,QAAS,wBACTC,qBAAsB,+CAExB,CACEV,SAAU,yBACV7G,UAAU,EACVjF,MAAO0c,EACPnQ,QAAS,wBACTC,qBACE,sDAEJ,CACEV,SAAU,6BACV7G,UAAU,EACVjF,MAAO2c,EACPpQ,QAAS,wBACTC,qBACE,qDAEJ,CACEV,SAAU,kBACV7G,UAAU,EACVjF,MAAO6c,EACPtQ,QAAS,wBACTC,qBACE,sDAEJ,CACEV,SAAU,yBACV7G,UAAU,EACVjF,MAAO8c,EACPvQ,QAAS,wBACTC,qBACE,uDAEJ,CACEV,SAAU,sBACV7G,UAAU,EACVjF,MAAO+c,EACPxQ,QAAS,wBACTC,qBACE,uDAGFqP,IACFhQ,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,WACV7G,UAAU,EACVjF,MAAO8b,GAET,CACEhQ,SAAU,mBACV7G,UAAU,EACVjF,MAAO+b,GAET,CACEjQ,SAAU,mBACV7G,UAAU,EACVjF,MAAOgc,OAMf,IAAMvP,GAAYC,EAAAA,EAAAA,GAAqBb,GAEvCxD,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,YACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACDkP,EACAC,EACAY,EACAC,EACAC,EACAC,EACAE,EACAC,EACAC,EACAlB,EACAC,EACAC,EACAC,EACA3T,EACA4T,EACA7Q,EACA+Q,EACAS,EACAN,EACAC,EACAF,IAGF,IAAMtP,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAED,OACE,UAACE,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,iBAAKtO,UAAWJ,EAAQ2O,cAAxB,WACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,+BACA,iBAAMxO,UAAWJ,EAAQ6O,gBAAzB,oFAKF,UAAC,EAAAmC,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,QACH0F,KAAK,QACLD,SAAU,SAACoB,GACTsF,EAAY,YAAatF,EAAEK,OAAOvG,OAClC+M,EAAgB,QACjB,EACDhN,MAAM,QACNC,MAAO4b,EACP1W,MAAOoG,EAAgB,OAAa,GACpCoC,YAAY,gDAIhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,WACH0F,KAAK,WACLD,SAAU,SAACoB,GACTsF,EAAY,WAAYtF,EAAEK,OAAOvG,OACjC+M,EAAgB,WACjB,EACDhN,MAAM,MACNC,MAAOyc,EACPvX,MAAOoG,EAAgB,UAAgB,GACvCoC,YAAY,yBAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,0CAEF,SAAC5M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,iBACH0F,KAAK,iBACLD,SAAU,SAACoB,GACTsF,EAAY,iBAAkBtF,EAAEK,OAAOvG,OACvC+M,EAAgB,iBACjB,EACDhN,MAAM,MACNC,MAAOwc,EACPtX,MAAOoG,EAAgB,gBAAsB,GAC7CoC,YAAY,8BAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,yBACH0F,KAAK,yBACLD,SAAU,SAACoB,GACTsF,EAAY,yBAA0BtF,EAAEK,OAAOvG,OAC/C+M,EAAgB,yBACjB,EACDhN,MAAM,aACNC,MAAO0c,EACPxX,MAAOoG,EAAgB,wBAA8B,GACrDoC,YAAY,2BAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,6BACH0F,KAAK,6BACLD,SAAU,SAACoB,GACTsF,EAAY,6BAA8BtF,EAAEK,OAAOvG,OACnD+M,EAAgB,6BACjB,EACDhN,MAAM,kBACNC,MAAO2c,EACPzX,MAAOoG,EAAgB,4BAAkC,GACzDoC,YAAY,8BAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,0CAEF,SAAC5M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,kBACH0F,KAAK,kBACLD,SAAU,SAACoB,GACTsF,EAAY,kBAAmBtF,EAAEK,OAAOvG,OACxC+M,EAAgB,kBACjB,EACDhN,MAAM,aACNC,MAAO6c,EACP3X,MAAOoG,EAAgB,iBAAuB,GAC9CoC,YAAY,4CAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,yBACH0F,KAAK,yBACLD,SAAU,SAACoB,GACTsF,EAAY,yBAA0BtF,EAAEK,OAAOvG,OAC/C+M,EAAgB,yBACjB,EACDhN,MAAM,qBACNC,MAAO8c,EACP5X,MAAOoG,EAAgB,wBAA8B,GACrDoC,YAAY,6BAGhB,SAAC5K,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,sBACH0F,KAAK,sBACLD,SAAU,SAACoB,GACTsF,EAAY,sBAAuBtF,EAAEK,OAAOvG,OAC5C+M,EAAgB,sBACjB,EACDhN,MAAM,kBACNC,MAAO+c,EACP7X,MAAOoG,EAAgB,qBAA2B,GAClDoC,YAAY,gCAKjBiO,IACC,UAAC,EAAAlM,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,yDAEF,SAAC5M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACnC,EAAA,EAAD,CACEvN,MAAM,oBACNX,GAAG,oBACH0F,KAAK,oBACLyI,QAASqO,EACT/W,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,kBAAmBgC,EAChC,EACDzN,MAAO,0CAKd8b,IACC,UAAC,EAAApM,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,WACH0F,KAAK,WACLD,SAAU,SAACoB,GACTsF,EAAY,gBAAiBtF,EAAEK,OAAOvG,MACvC,EACDD,MAAM,WACNC,MAAO8b,EACP5W,MAAOoG,EAAgB,UAAgB,GACvCoC,YAAY,8BACZzI,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,mBACH0F,KAAK,mBACLD,SAAU,SAACoB,GACTsF,EAAY,wBAAyBtF,EAAEK,OAAOvG,MAC/C,EACDD,MAAM,WACNC,MAAO+b,EACP7W,MAAOoG,EAAgB,kBAAwB,GAC/CrG,UAAQ,OAGZ,SAACnC,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAACjC,EAAA,EAAD,CACEpO,GAAG,mBACH0F,KAAK,mBACLD,SAAU,SAACoB,GACTsF,EAAY,wBAAyBtF,EAAEK,OAAOvG,MAC/C,EACDD,MAAM,WACNC,MAAOgc,EACP9W,MAAOoG,EAAgB,kBAAwB,GAC/CrG,UAAQ,WAOrB,I,gGC7QD,IAAe7H,EAAAA,EAAAA,IAtMA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACXC,KAAM,CACJkE,OAAQ,GAEVub,MAAO,CACL,uBAAwB,CACtBhf,SAAU,MAGX0M,EAAAA,IACAC,EAAAA,IAXQ,GAsMf,EAxLoB,SAAC,GAAoC,IAAlClM,EAAiC,EAAjCA,QACfwe,GAAQvU,EAAAA,EAAAA,KACZ,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOoS,WAAWD,KAA1D,IAEIE,GAAazU,EAAAA,EAAAA,KACjB,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOoS,WAAWE,sBADvC,IAGIC,GAAW3U,EAAAA,EAAAA,KACf,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOoS,WAAWG,QAA1D,IAGIC,GAAe5U,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOoS,WAAWI,YAA1D,IAEIC,GAAe7U,EAAAA,EAAAA,KACnB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOoS,WAAWK,YAA1D,IAGIC,GAAW9U,EAAAA,EAAAA,KACf,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOoS,WAAWO,mBADvC,IAGIC,GAAuBhV,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOoS,WAAWQ,oBADvC,IAIIC,EAAoBJ,EAAaK,eAAeC,MACpD,SAAC/c,GAAD,OAAaA,EAAQgd,cAAgBT,CAArC,IAGF,OACE,iBAAKxe,UAAWJ,EAAQlB,KAAxB,WACE,iDACA,SAACwgB,GAAA,EAAD,KACA,SAACC,GAAA,EAAD,CAAOnf,UAAWJ,EAAQue,MAAO,aAAW,eAAexV,KAAM,QAAjE,UACE,UAACyW,GAAA,EAAD,YACE,UAACC,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,gCACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SACGpS,SAASgR,GAAS,EAAIA,EAAQ,SAGK,KAAvCS,EAAqBY,eACkB,KAAtCZ,EAAqBa,eACnB,UAAC,EAAA9O,SAAD,YACE,UAACyO,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,gCACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SACGf,EAAeA,EAAakB,MAAQ,UAGzC,UAACN,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,6BACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SACGf,GAAemB,EAAAA,GAAAA,IAAUnB,EAAaoB,QAAU,aAM3D,UAACR,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,4BACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SACGf,EAAeA,EAAaqB,kBAAoB,SAGb,KAAvCjB,EAAqBY,eACkB,KAAtCZ,EAAqBa,eACnB,UAAC,EAAA9O,SAAD,YACE,UAACyO,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,8BACA,UAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,UAA0BlB,EAA1B,aAEF,UAACe,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWjd,MAAO,CAAE0R,aAAc,GAAKwL,MAAM,MAA7C,4BAGA,SAACD,GAAA,EAAD,CAAWjd,MAAO,CAAE0R,aAAc,GAAKyL,MAAM,QAA7C,SACGb,eAOS,IAAvBD,EAAarY,OAAeyY,IAC3B,UAAC,EAAAlO,SAAD,YACE,wDACA,SAACsO,GAAA,EAAD,KACA,SAACC,GAAA,EAAD,CACEnf,UAAWJ,EAAQue,MACnB,aAAW,eACXxV,KAAM,QAHR,UAKE,UAACyW,GAAA,EAAD,YACE,UAACC,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,wBACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SACgB,KAAbhB,EAAkBA,EAAW,UAGlC,UAACa,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,2BACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,UACGI,EAAAA,GAAAA,IAAUlB,EAAaqB,mBAG5B,UAACV,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,8BACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,UACGI,EAAAA,GAAAA,IAAUd,EAAkBkB,mBAGjC,UAACX,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWjd,MAAO,CAAE0R,aAAc,GAAKwL,MAAM,MAA7C,wCAGA,SAACD,GAAA,EAAD,CAAWjd,MAAO,CAAE0R,aAAc,GAAKyL,MAAM,QAA7C,SACGf,EACGwB,KAAKC,MACHpB,EAAkBqB,sBAChB1B,EAAakB,OAEjB,iBAOwB,KAAvCd,EAAqBY,eACkB,KAAtCZ,EAAqBa,eACnB,UAAC,EAAA9O,SAAD,YACE,2DACA,SAACsO,GAAA,EAAD,KACA,SAACC,GAAA,EAAD,CACEnf,UAAWJ,EAAQue,MACnB,aAAW,eACXxV,KAAM,QAHR,UAKE,UAACyW,GAAA,EAAD,YACE,UAACC,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,kBACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SACgC,IAA7BX,EAAqBuB,IAClBvB,EAAqBuB,IACrB,UAGR,UAACf,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,qBACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SACmC,IAAhCX,EAAqBwB,OAArB,UACMxB,EAAqBwB,OAD3B,OAEG,UAGR,UAAChB,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWC,MAAM,MAAjB,gCACA,SAACD,GAAA,EAAD,CAAWE,MAAM,QAAjB,SAC4C,IAAzCX,EAAqByB,gBAArB,UACMzB,EAAqByB,iBACxB,UAGR,UAACjB,GAAA,EAAD,YACE,SAACC,GAAA,EAAD,CAAWjd,MAAO,CAAE0R,aAAc,GAAKwL,MAAM,MAA7C,yBAGA,UAACD,GAAA,EAAD,CAAWjd,MAAO,CAAE0R,aAAc,GAAKyL,MAAM,QAA7C,UACGX,EAAqB0B,UAAUA,UAC/B1B,EAAqB0B,UAAUC,yBASnD,I,mFC1MKhR,IAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,gBACXgiB,SAAU,CACR/a,SAAU,QACVC,WAAY,SACZ+a,SAAU,eAET7U,EAAAA,IACA5C,EAAAA,IARsB,IAyD7B,GA7C0B,WACxB,IAAMO,GAAWC,EAAAA,EAAAA,MACX7J,EAAU4P,KAEV8D,GAAYzJ,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOsH,WAAWD,SAA1D,IAEIqN,GAAsB9W,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OAAqBA,EAAMkC,aAAa4U,YAAxC,IAEIC,GAAmBhX,EAAAA,EAAAA,KACvB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa8U,SAAxC,IAGF,OACE,SAACC,GAAA,EAAD,CACEjhB,MAAK,gBACLkhB,YAAa,SACbC,mBAAoB,CAClBte,MAAO,UACP0C,QAAS,aAEX6b,OAAQL,EACR7c,WAAW,SAAC,OAAD,IACXmd,UAAWR,EACXS,UAAW,WACT5X,GAAS6X,EAAAA,GAAAA,MACV,EACDtd,QAAS,WACPyF,GAAS8X,EAAAA,EAAAA,MACV,EACDC,qBACE,UAAC,WAAD,WACGZ,IAAuB,SAACa,EAAA,EAAD,KACxB,UAACC,GAAA,EAAD,8DAEE,mBACA,cAAGzhB,UAAWJ,EAAQ6gB,SAAtB,SAAiCnN,IAHnC,WAST,E,uBCFD,GA1D0B,SAAC,GAAiD,EAA/CoO,aAAgD,IACrElY,GAAWC,EAAAA,EAAAA,MAEX6J,GAAYzJ,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOsH,WAAWD,SAA1D,IAGIqO,GAAqB9X,EAAAA,EAAAA,KACzB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa2V,kBAAxC,IAGIC,GAAiB/X,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaS,iBAAnB,SAArB,IAEIoV,GAAmBhY,EAAAA,EAAAA,KACvB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa8U,SAAxC,IAGIgB,GAAoBC,EAAAA,EAAAA,UACxB,kBACEC,MAAS,WACPxY,GAASyY,EAAAA,GAAAA,MACV,GAAE,IAHL,GAIA,CAACzY,KAGHS,EAAAA,EAAAA,YAAU,WACR,GAAkB,KAAdqJ,EAGF,OAFAwO,IAEOA,EAAkBI,MAE5B,GAAE,CAACJ,EAAmBxO,IAMvB,OACE,UAAC,EAAA1C,SAAD,WACGiR,IAAoB,SAAC,GAAD,KACrB,SAACjT,EAAA,EAAD,CACEpO,GAAG,YACH0F,KAAK,YACLD,SAAU,SAACoB,GACTmC,GAAS2Y,EAAAA,EAAAA,IAAa9a,EAAEK,OAAOvG,OAChC,EACDD,MAAM,YACNC,MAAOmS,EACPjN,MAAOub,GAAkB,GACzBQ,UAAW,gBACXC,YAAaV,GAAqB,SAAC5F,GAAA,EAAD,IAAc,KAChDnQ,cAlBe,WACnBpC,GAAS8Y,EAAAA,EAAAA,MACV,EAiBKlc,UAAQ,MAIf,EC1BKmc,GAAkB,WACtB,IAAM/Y,GAAWC,EAAAA,EAAAA,MACX+J,GAAa3J,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOsH,WAAWC,UAA1D,IAGIgP,GAAkB3Y,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaS,iBAAiB,cAAzD,IAGF,OACE,SAACmC,EAAA,EAAD,CACEpO,GAAG,cACH0F,KAAK,cACLD,SAAU,SAACoB,GACTmC,GAASiZ,EAAAA,EAAAA,IAAcpb,EAAEK,OAAOvG,OACjC,EACDD,MAAM,OACNC,MAAOqS,EACPpN,UAAQ,EACRC,MAAOmc,GAAmB,IAG/B,EAgID,IAAejkB,EAAAA,EAAAA,IArKA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,wBACXikB,YAAa,CACXlhB,SAAU,QACV8J,WAAY,GACZvK,WAAY,UACZpC,OAAQ,oBACRkC,QAAS,IAER+O,EAAAA,IACA/D,EAAAA,IACAC,EAAAA,IAXQ,GAqKf,EAzHuB,SAAC,GAAsD,IAApDlM,EAAmD,EAAnDA,QAAS8hB,EAA0C,EAA1CA,aAC3BlY,GAAWC,EAAAA,EAAAA,MAEXkZ,GAAuB9Y,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOsH,WAAWoP,oBADvC,IAGIC,GAAsB/Y,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOsH,WAAWqP,mBADvC,IAGIC,GAAiBhZ,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa6W,cAAxC,IAEIC,GAAWjZ,EAAAA,EAAAA,IAAYkZ,GAAAA,IAGvBpW,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,aAAcF,MAAOA,EAAO1L,MAAOA,IAEjE,GACD,CAACqI,IAYH,OARAS,EAAAA,EAAAA,YAAU,WACR,IAAM+Y,EACHtB,IAAiBuB,GAAAA,GAAAA,SAAmBJ,EAAevd,OAAS,GAC5Doc,IAAiBuB,GAAAA,GAAAA,SAA2C,KAAxBL,EAEvCpZ,GAASsE,EAAAA,EAAAA,IAAY,CAAEf,SAAU,aAAcgB,MAAOiV,IACvD,GAAE,CAACH,EAAgBrZ,EAAUoZ,EAAqBlB,KAGjD,SAAC,EAAA9Q,SAAD,WACE,UAAC3M,EAAA,GAAD,CAAMhE,WAAS,EAAf,WACE,SAACgE,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAG+iB,GAAI,EAAtB,UACE,SAAC7U,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAAc8E,GAAI,CAAE+P,UAAW,KAAzD,UACE,UAAClf,EAAA,GAAD,CAAMhE,WAAS,EAAf,WACE,UAACgE,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,WACE,iBAAKH,UAAWJ,EAAQ2O,cAAxB,WACE,eAAIvO,UAAWJ,EAAQ4O,UAAvB,mBACA,iBAAMxO,UAAWJ,EAAQ6O,gBAAzB,6DAIF,gBAAKzO,UAAWJ,EAAQiR,aAAxB,UACE,SAAC0R,GAAD,UAGJ,SAACte,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAAC,GAAD,CAAmB6Q,aAAcA,MAElCA,IAAiBuB,GAAAA,GAAAA,SAChB,SAAChf,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAAC2K,GAAA,EAAD,CACEhb,GAAG,gBACH0F,KAAK,gBACLD,SAAU,SAACoB,GACTsF,EACE,uBACAtF,EAAEK,OAAOvG,MAEZ,EACDD,MAAM,gBACNC,MAAOwhB,EACP9G,QAASgH,EACT1c,SAAU0c,EAAevd,OAAS,OAItC,SAACrB,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQiR,aAAtC,UACE,SAAC2K,GAAA,EAAD,CACEhb,GAAG,eACH0F,KAAK,eACLD,SAAU,SAACoB,GACTmC,GACE4Z,EAAAA,EAAAA,IAAe,CACbC,YAAahc,EAAEK,OAAOvG,MACtB2hB,SAAUA,IAGf,EACD5hB,MAAOyC,IACL2f,GAAAA,GADQ,UAEL5B,EAFK,yBAGR,gBAEFvgB,MAAOyhB,EACP/G,QAASlY,IACP2f,GAAAA,GADU,UAEP5B,EAFO,0BAGV,QAKPA,IAAiBuB,GAAAA,GAAAA,SAChB,SAACM,GAAA,EAAD,IAEA5f,IACE2f,GAAAA,GADC,UAEE5B,EAFF,oBAGD,cAMV,SAACzd,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAG+iB,GAAI,EAAtB,UACE,gBAAKljB,UAAWJ,EAAQ8iB,YAAxB,UACE,SAAC,GAAD,YAMX,ICzJD,GA/BwB,WACtB,IAAMI,GAAWjZ,EAAAA,EAAAA,IAAYkZ,GAAAA,IAC7B,GAAoCxc,EAAAA,EAAAA,UAAyB,MAA7D,eAAOid,EAAP,KAAmBC,EAAnB,KAsBA,OApBAxZ,EAAAA,EAAAA,YAAU,WACR,IAAIyZ,EAAmBT,GAAAA,GAAAA,QAEnBH,GAAgC,IAApBA,EAASxd,QACG0I,OAAOC,KAAK0V,GAAAA,IAEpB1I,SAAQ,SAAChZ,GACrB6gB,EAASc,SAAS3hB,KACpByhB,EAAmB/f,IACjBggB,GAAAA,GACA1hB,EACAghB,GAAAA,GAAAA,SAGL,IAGHQ,EAAcC,EACf,GAAE,CAACZ,IAEe,OAAfU,EACK,MAGF,SAAC,GAAD,CAAgB9B,aAAc8B,GACtC,E,YCsfD,IAAejlB,EAAAA,EAAAA,IA9fA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACX2M,kBAAmB,CACjB5L,YAAa,GAEb,oBAAqB,CACnBb,OAAQ,kBAGZ6M,YAAW,kBACNC,EAAAA,GAAAA,YADK,IAER1M,WAAY,GACZM,aAAc,KAEhBqM,sBAAuB,CACrB,4BAA6B,CAC3B9K,SAAU,SACVrB,WAAY,aAEZ,cAAe,CACbF,aAAc,EACdG,YAAa,KAKnBqkB,uBAAwB,CACtBvY,WAAY,GACZzK,QAAS,GACTnB,MAAO,MACPkD,OAAQ,QAEVkhB,cAAe,CACb9gB,UAAW,KAEV6I,EAAAA,IACAC,EAAAA,IApCQ,GA8ff,EAvdwB,SAAC,GAAkC,IAAhClM,EAA+B,EAA/BA,QACnB4J,GAAWC,EAAAA,EAAAA,MAEXoZ,GAAiBhZ,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa6W,cAAxC,IAEItF,GAAmB1T,EAAAA,EAAAA,KACvB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUqR,gBAAzD,IAEIC,GAAsB3T,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUsR,mBAAzD,IAEIE,GAAgC7T,EAAAA,EAAAA,KACpC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUwR,6BADtC,IAGIC,GAAiB9T,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUyR,cAAzD,IAEIE,GAAyBhU,EAAAA,EAAAA,KAC7B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU2R,sBADtC,IAGIC,GAA6BjU,EAAAA,EAAAA,KACjC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU4R,0BADtC,IAGI6E,GAAuB9Y,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOsH,WAAWoP,oBADvC,IAGInW,GAAwB3C,EAAAA,EAAAA,KAC5B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUM,qBADtC,IAGIuX,GAA2Bla,EAAAA,EAAAA,KAC/B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU6X,wBADtC,IAGIC,GAAmCna,EAAAA,EAAAA,KACvC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU8X,gCADtC,IAIF,GAAgDzd,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAEMuX,EAAkB,CACtB,CAAE/iB,MAAO,UAAWC,MAAO,YADL,eAEnB0hB,IAIClW,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,YAAaF,MAAOA,EAAO1L,MAAOA,IAEhE,GACD,CAACqI,KAIHS,EAAAA,EAAAA,YAAU,WACR,IAAI+C,EAAyC,GAEzCuQ,IACFvQ,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,2BACV7G,UAAU,EACVjF,MAAOuc,EACPvQ,iBAAoD,KAAlCuQ,EAClBrQ,wBAAyB,yBAE3B,CACEJ,SAAU,yBACV7G,UAAU,EACVjF,MAAOqc,EACPrQ,iBAC0B,KAAxBqQ,GAA8BpQ,SAASoQ,IAAwB,EACjEnQ,wBAAwB,sDAE1B,CACEJ,SAAU,sCACV7G,UAAU,EACVjF,MAAO4iB,EAAyB7W,UAChCC,iBACyC,KAAvC4W,EAAyB7W,WACzBE,SAAS2W,EAAyB7W,WAAa,EACjDG,wBAAwB,8CAE1B,CACEJ,SAAU,uCACV7G,UAAU,EACVjF,MAAO4iB,EAAyBzW,WAChCH,iBAC0C,KAAxC4W,EAAyBzW,YACzBF,SAAS2W,EAAyBzW,YAAc,EAClDD,wBAAwB,+CAE1B,CACEJ,SAAU,oCACV7G,UAAU,EACVjF,MAAO4iB,EAAyBxW,QAChCJ,iBACuC,KAArC4W,EAAyBxW,SACzBH,SAAS2W,EAAyBxW,SAAW,EAC/CF,wBAAwB,4CAE1B,CACEJ,SAAU,qCACV7G,UAAU,EACVjF,MAAO6iB,EAAiC9W,UACxCC,iBACiD,KAA/C6W,EAAiC9W,WACjCE,SAAS4W,EAAiC9W,WAAa,EACzDG,wBAAwB,8CAE1B,CACEJ,SAAU,sCACV7G,UAAU,EACVjF,MAAO4iB,EAAyBzW,WAChCH,iBACkD,KAAhD6W,EAAiC1W,YACjCF,SAAS4W,EAAiC1W,YAAc,EAC1DD,wBAAwB,+CAE1B,CACEJ,SAAU,mCACV7G,UAAU,EACVjF,MAAO6iB,EAAiCzW,QACxCJ,iBAC+C,KAA7C6W,EAAiCzW,SACjCH,SAAS4W,EAAiCzW,SAAW,EACvDF,wBAAwB,+CAK9B,IAAMO,GAAYC,EAAAA,EAAAA,GAAqBb,GAEvCxD,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,YACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACD+P,EACAE,EACAC,EACAtU,EACA+T,EACAG,EACAF,EACAhR,EACAuX,EACAC,KAGF/Z,EAAAA,EAAAA,YAAU,WAEJ4Y,EAAevd,OAAS,IAIK,IAHPud,EAAenK,QACrC,SAACxY,GAAD,OAAeA,EAAKiB,QAAUuc,CAA9B,IAEkBpY,QAClBqH,EAAY,gCAAiC,WAGlD,GAAE,CACD+Q,EACAiF,EACAE,EACAlW,IAGF,IAAMuB,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAED,OACE,UAACE,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,UAACrK,EAAA,GAAD,CAAMhE,WAAS,EAACV,WAAY,SAA5B,WACE,SAAC0E,EAAA,GAAD,CAAM/D,MAAI,EAACC,IAAE,EAAb,UACE,SAAC,EAAD,2BAEF,SAAC8D,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAf,UACE,SAACuO,EAAA,EAAD,CACEvN,MAAM,gBACNX,GAAG,gBACH0F,KAAK,gBACLyI,QAAS4O,EACTtX,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,mBAAoBgC,EACjC,EACDkK,gBAAiB,CAAC,UAAW,oBAInC,UAAC5U,EAAA,GAAD,CAAMhE,WAAS,EAAC2U,QAAS,EAAzB,WACE,SAAC3Q,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,iBAAMH,UAAWJ,EAAQ6O,gBAAzB,yGAKF,SAACxK,EAAA,GAAD,CAAM9D,GAAI,GAAV,UACE,eAAIH,UAAWJ,EAAQkZ,YAExByE,IACC,UAAC,EAAA3M,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACqb,GAAA,EAAD,CACEhb,GAAG,2BACH0F,KAAK,2BACLD,SAAU,SAACoB,GACTsF,EACE,gCACAtF,EAAEK,OAAOvG,MAEZ,EACDD,MAAM,2BACNC,MAAOuc,EACP7B,QAASoI,EACT9d,SAAU8d,EAAmB3e,OAAS,OAG1C,SAACrB,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,gBAAKH,UAAWJ,EAAQyP,eAAxB,UACE,SAACT,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,yBACH0F,KAAK,yBACLD,SAAU,SAACoB,GACTsF,EAAY,sBAAuBtF,EAAEK,OAAOvG,OAC5C+M,EAAgB,yBACjB,EACDhN,MAAM,eACNgjB,eACE,SAACC,GAAA,EAAD,CACE3jB,GAAI,YACJ4jB,aAAc,WAAQ,EACtBC,aAAc,KACdC,UAAW,CAAC,CAAEpjB,MAAO,KAAMC,MAAO,OAClCgF,UAAU,IAGdhF,MAAOqc,EACPpX,UAAQ,EACRC,MAAOoG,EAAgB,wBAA8B,GACrD6C,IAAI,WAKV,sBACEtP,UAAS,UAAKJ,EAAQ4L,WAAb,YAA2B5L,EAAQkkB,eAD9C,WAGE,mBAAQ9jB,UAAWJ,EAAQ6O,gBAA3B,4CAIA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,iBACEH,UAAS,UAAKJ,EAAQyP,eAAb,YAA+BzP,EAAQ8L,uBADlD,WAGE,gBAAK1L,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,sCACH0F,KAAK,sCACLD,SAAU,SAACoB,GACTsF,EAAY,4BAAD,QAAC,UACPoX,GADM,IAET7W,UAAW7F,EAAEK,OAAOvG,SAEtB+M,EAAgB,sCACjB,EACDhN,MAAM,cACNC,MAAO4iB,EAAyB7W,UAChC9G,UAAQ,EACRC,MACEoG,EAAgB,qCAEX,GAEP6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,uCACH0F,KAAK,uCACLD,SAAU,SAACoB,GACTsF,EAAY,4BAAD,QAAC,UACPoX,GADM,IAETzW,WAAYjG,EAAEK,OAAOvG,SAEvB+M,EAAgB,uCACjB,EACDhN,MAAM,eACNC,MAAO4iB,EAAyBzW,WAChClH,UAAQ,EACRC,MACEoG,EAAgB,sCAEX,GAEP6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,oCACH0F,KAAK,oCACLD,SAAU,SAACoB,GACTsF,EAAY,4BAAD,QAAC,UACPoX,GADM,IAETxW,QAASlG,EAAEK,OAAOvG,SAEpB+M,EAAgB,oCACjB,EACDhN,MAAM,UACNC,MAAO4iB,EAAyBxW,QAChCnH,UAAQ,EACRC,MACEoG,EAAgB,mCAChB,GAEF6C,IAAI,cAKZ,mBACA,SAACrL,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,gBAAKH,UAAWJ,EAAQyP,eAAxB,UACE,SAACX,EAAA,EAAD,CACEvN,MAAM,uCACNX,GAAG,yCACH0F,KAAK,yCACLyI,QAASoV,EAAyBxU,aAClCtJ,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,4BAAD,QAAC,UACPoX,GADM,IAETxU,aAAcZ,IAEjB,EACDzN,MAAO,+BAKf,sBAAUlB,UAAWJ,EAAQ4L,WAA7B,WACE,mBAAQxL,UAAWJ,EAAQ6O,gBAA3B,6CAIA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,iBACEH,UAAS,UAAKJ,EAAQyP,eAAb,YAA+BzP,EAAQ8L,uBADlD,WAGE,gBAAK1L,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,qCACH0F,KAAK,qCACLD,SAAU,SAACoB,GACTsF,EAAY,oCAAD,QAAC,UACPqX,GADM,IAET9W,UAAW7F,EAAEK,OAAOvG,SAEtB+M,EAAgB,qCACjB,EACDhN,MAAM,cACNC,MAAO6iB,EAAiC9W,UACxC9G,UAAQ,EACRC,MACEoG,EAAgB,oCAEX,GAEP6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,sCACH0F,KAAK,sCACLD,SAAU,SAACoB,GACTsF,EAAY,oCAAD,QAAC,UACPqX,GADM,IAET1W,WAAYjG,EAAEK,OAAOvG,SAEvB+M,EAAgB,sCACjB,EACDhN,MAAM,eACNC,MAAO6iB,EAAiC1W,WACxClH,UAAQ,EACRC,MACEoG,EAAgB,qCAEX,GAEP6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,mCACH0F,KAAK,mCACLD,SAAU,SAACoB,GACTsF,EAAY,oCAAD,QAAC,UACPqX,GADM,IAETzW,QAASlG,EAAEK,OAAOvG,SAEpB+M,EAAgB,mCACjB,EACDhN,MAAM,UACNC,MAAO6iB,EAAiCzW,QACxCnH,UAAQ,EACRC,MACEoG,EAAgB,kCAChB,GAEF6C,IAAI,cAKZ,mBACA,SAACrL,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,gBAAKH,UAAWJ,EAAQyP,eAAxB,UACE,SAACX,EAAA,EAAD,CACEvN,MAAM,sCACNX,GAAG,wCACH0F,KAAK,wCACLyI,QAASqV,EAAiCzU,aAC1CtJ,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,oCAAD,QAAC,UACPqX,GADM,IAETzU,aAAcZ,IAEjB,EACDzN,MAAO,sCAU1B,IChID,IAAe3C,EAAAA,EAAAA,IA3XA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACX2M,kBAAmB,CACjB5L,YAAa,GAEb,oBAAqB,CACnBb,OAAQ,kBAGZ6M,YAAW,kBACNC,EAAAA,GAAAA,YADK,IAER1M,WAAY,GACZM,aAAc,KAEhBqM,sBAAuB,CACrB,4BAA6B,CAC3B9K,SAAU,SACVrB,WAAY,aAEZ,cAAe,CACbF,aAAc,EACdG,YAAa,KAInBskB,cAAe,CACb9gB,UAAW,IAEbuhB,wBAAyB,CACvBjZ,WAAY,GACZzK,QAAS,GACTnB,MAAO,MACPkD,OAAQ,SAEPiJ,EAAAA,IACAC,EAAAA,IAnCQ,GA2Xf,EArVyB,SAAC,GAAkC,IAAhClM,EAA+B,EAA/BA,QACpB4J,GAAWC,EAAAA,EAAAA,MAEXoZ,GAAiBhZ,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa6W,cAAxC,IAEIxF,GAAoBxT,EAAAA,EAAAA,KACxB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUmR,iBAAzD,IAEII,GAAuB5T,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUuR,oBADtC,IAGIM,GAAiClU,EAAAA,EAAAA,KACrC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU6R,8BADtC,IAGIC,GAAkBnU,EAAAA,EAAAA,KACtB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAU8R,eAAzD,IAEIC,GAAyBpU,EAAAA,EAAAA,KAC7B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAU+R,sBADtC,IAGIC,GAAsBrU,EAAAA,EAAAA,KAC1B,SAACC,GAAD,OAAqBA,EAAMkC,aAAaC,OAAOC,UAAUgS,mBAAzD,IAEIyE,GAAuB9Y,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOsH,WAAWoP,oBADvC,IAGInW,GAAwB3C,EAAAA,EAAAA,KAC5B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUM,qBADtC,IAGIgY,GAA4B3a,EAAAA,EAAAA,KAChC,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOC,UAAUsY,yBADtC,IAIF,GAAgDje,EAAAA,EAAAA,UAAc,CAAC,GAA/D,eAAOkG,EAAP,KAAyBC,EAAzB,KAEMuX,EAAkB,CACtB,CAAE/iB,MAAO,UAAWC,MAAO,YADL,eAEnB0hB,IAIClW,GAAcC,EAAAA,EAAAA,cAClB,SAACC,EAAe1L,GACdqI,GACEsD,EAAAA,EAAAA,IAAe,CAAEC,SAAU,YAAaF,MAAOA,EAAO1L,MAAOA,IAEhE,GACD,CAACqI,KAIHS,EAAAA,EAAAA,YAAU,WACR,IAAI+C,EAAyC,GAEzCqQ,IACFrQ,EAAuB,kBAClBA,GADkB,CAErB,CACEC,SAAU,2BACV7G,UAAU,EACVjF,MAAO4c,EACP5Q,iBAAqD,KAAnC4Q,EAClB1Q,wBAAyB,yBAE3B,CACEJ,SAAU,yBACV7G,UAAU,EACVjF,MAAOsc,EACPtQ,iBAC2B,KAAzBsQ,GAA+BrQ,SAASqQ,IAAyB,EACnEpQ,wBAAwB,qDAE1B,CACEJ,SAAU,uCACV7G,UAAU,EACVjF,MAAOqjB,EAA0BtX,UACjCC,iBAC0C,KAAxCqX,EAA0BtX,WAC1BE,SAASoX,EAA0BtX,WAAa,EAClDG,wBAAwB,8CAE1B,CACEJ,SAAU,wCACV7G,UAAU,EACVjF,MAAOqjB,EAA0BlX,WACjCH,iBAC2C,KAAzCqX,EAA0BlX,YAC1BF,SAASoX,EAA0BlX,YAAc,EACnDD,wBAAwB,+CAE1B,CACEJ,SAAU,qCACV7G,UAAU,EACVjF,MAAOqjB,EAA0BjX,QACjCJ,iBACwC,KAAtCqX,EAA0BjX,SAC1BH,SAASoX,EAA0BjX,SAAW,EAChDF,wBAAwB,+CAK9B,IAAMO,GAAYC,EAAAA,EAAAA,GAAqBb,GAEvCxD,GACEsE,EAAAA,EAAAA,IAAY,CACVf,SAAU,YACVgB,MAAyC,IAAlCC,OAAOC,KAAKL,GAAWtI,UAIlCoH,EAAoBkB,EACrB,GAAE,CACDoQ,EACAC,EACAC,EACA1U,EACA6T,EACAU,EACAN,EACAjR,EACAgY,KAGFva,EAAAA,EAAAA,YAAU,WAEJ4Y,EAAevd,OAAS,IAIM,IAHPud,EAAenK,QACtC,SAACxY,GAAD,OAAeA,EAAKiB,QAAU4c,CAA9B,IAEmBzY,QACnBqH,EAAY,iCAAkC,WAGnD,GAAE,CACDoR,EACA4E,EACAE,EACAlW,IAGF,IAAMuB,EAAkB,SAACC,GACvBzB,GAAoB0B,EAAAA,EAAAA,GAAqB3B,EAAkB0B,GAC5D,EAED,OACE,UAACE,EAAA,EAAD,CAAOrO,UAAWJ,EAAQ0O,aAA1B,WACE,UAACrK,EAAA,GAAD,CAAMhE,WAAS,EAACV,WAAY,SAA5B,WACE,SAAC0E,EAAA,GAAD,CAAM/D,MAAI,EAACC,IAAE,EAAb,UACE,SAAC,EAAD,4BAEF,SAAC8D,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,EAAf,UACE,SAACuO,EAAA,EAAD,CACEmK,gBAAiB,CAAC,UAAW,YAC7BlK,QAAS0O,EACTlc,MAAO,oBACPX,GAAG,oBACH0F,KAAK,oBACLD,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QAExBhC,EAAY,oBAAqBgC,EAClC,EACDuE,YAAY,WAIlB,SAACjP,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,iBAAMH,UAAWJ,EAAQ6O,gBAAzB,sFAIF,SAACxK,EAAA,GAAD,CAAM9D,GAAI,GAAV,UACE,eAAIH,UAAWJ,EAAQkZ,aAEzB,SAAC7U,EAAA,GAAD,CAAMhE,WAAS,EAAC2U,QAAS,EAAzB,SACGyI,IACC,UAAC,EAAAzM,SAAD,YACE,SAAC3M,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACqb,GAAA,EAAD,CACEhb,GAAG,2BACH0F,KAAK,2BACLD,SAAU,SAACoB,GACTsF,EACE,iCACAtF,EAAEK,OAAOvG,MAEZ,EACDD,MAAM,gBACNC,MAAO4c,EACPlC,QAASoI,EACT9d,SAAU8d,EAAmB3e,OAAS,OAG1C,SAACrB,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,gBAAKH,UAAWJ,EAAQyP,eAAxB,UACE,SAACT,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,yBACH0F,KAAK,yBACLD,SAAU,SAACoB,GACTsF,EAAY,uBAAwBtF,EAAEK,OAAOvG,OAC7C+M,EAAgB,yBACjB,EACDhN,MAAM,eACNgjB,eACE,SAACC,GAAA,EAAD,CACE3jB,GAAI,YACJ4jB,aAAc,WAAQ,EACtBC,aAAc,KACdC,UAAW,CAAC,CAAEpjB,MAAO,KAAMC,MAAO,OAClCgF,UAAU,IAGdhF,MAAOsc,EACPrX,UAAQ,EACRC,MAAOoG,EAAgB,wBAA8B,GACrD6C,IAAI,WAIV,sBACEtP,UAAS,UAAKJ,EAAQ4L,WAAb,YAA2B5L,EAAQkkB,eAD9C,WAGE,mBAAQ9jB,UAAWJ,EAAQ6O,gBAA3B,8BAGA,SAACxK,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwL,kBAAtC,UACE,iBACEpL,UAAS,UAAKJ,EAAQyP,eAAb,YAA+BzP,EAAQ8L,uBADlD,WAGE,gBAAK1L,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,uCACH0F,KAAK,uCACLD,SAAU,SAACoB,GACTsF,EAAY,6BAAD,QAAC,UACP6X,GADM,IAETtX,UAAW7F,EAAEK,OAAOvG,SAEtB+M,EAAgB,uCACjB,EACDhN,MAAM,cACNC,MAAOqjB,EAA0BtX,UACjC9G,UAAQ,EACRC,MACEoG,EAAgB,sCAEX,GAEP6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,wCACH0F,KAAK,wCACLD,SAAU,SAACoB,GACTsF,EAAY,6BAAD,QAAC,UACP6X,GADM,IAETlX,WAAYjG,EAAEK,OAAOvG,SAEvB+M,EACE,wCAEH,EACDhN,MAAM,eACNC,MAAOqjB,EAA0BlX,WACjClH,UAAQ,EACRC,MACEoG,EAAgB,uCAEX,GAEP6C,IAAI,SAGR,gBAAKtP,UAAWJ,EAAQwL,kBAAxB,UACE,SAACwD,EAAA,EAAD,CACExH,KAAK,SACL5G,GAAG,qCACH0F,KAAK,qCACLD,SAAU,SAACoB,GACTsF,EAAY,6BAAD,QAAC,UACP6X,GADM,IAETjX,QAASlG,EAAEK,OAAOvG,SAEpB+M,EAAgB,qCACjB,EACDhN,MAAM,UACNC,MAAOqjB,EAA0BjX,QACjCnH,UAAQ,EACRC,MACEoG,EAAgB,oCAEX,GAEP6C,IAAI,cAKZ,SAACrL,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQwL,kBAAtC,UACE,gBACEpL,UAAS,UAAKJ,EAAQyP,eAAb,YAA+BzP,EAAQkkB,eADlD,UAGE,SAACpV,EAAA,EAAD,CACEvN,MAAM,wCACNX,GAAG,0CACH0F,KAAK,0CACLyI,QAAS6V,EAA0BjV,aACnCtJ,SAAU,SAACoB,GACT,IACMsH,EADUtH,EAAEK,OACMiH,QACxBhC,EAAY,6BAAD,QAAC,UACP6X,GADM,IAETjV,aAAcZ,IAEjB,EACDzN,MAAO,qCAU1B,I,wBCvZYujB,GAAgB,CAC3B,aACA,aACA,YACA,WACA,mBACA,WACA,c,YCuCF,GAtC2B,WACzB,IAAMjb,GAAWC,EAAAA,EAAAA,MAEXib,GAAa7a,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa2Y,YAAxC,IAGIC,GAAa/a,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa4Y,UAAxC,IAGIjC,GAAuB9Y,EAAAA,EAAAA,KAC3B,SAACC,GAAD,OACEA,EAAMkC,aAAaC,OAAOsH,WAAWoP,oBADvC,IAIIkC,GACHH,GACwB,KAAzB/B,GACA8B,GAAcK,OAAM,SAAChJ,GAAD,OAAO8I,EAAWhB,SAAS9H,EAA3B,IAEtB,OACE,SAACiJ,GAAA,EAAD,CACEvkB,GAAI,uBACJ6E,QAAQ,YACR1C,MAAM,UACNgG,KAAK,QACL/G,QAAS,WACP4H,GAASwb,EAAAA,GAAAA,KACV,EACD7e,UAAW0e,EARb,6CAcH,E,wBCRD,GA5B6B,WAC3B,IAAMrb,GAAWC,EAAAA,EAAAA,MACXwb,GAAWC,EAAAA,GAAAA,MAEXC,GAAqBtb,EAAAA,EAAAA,KACzB,SAACC,GAAD,OAAqBA,EAAMkC,aAAamZ,kBAAxC,IAEIC,GAAiBvb,EAAAA,EAAAA,KACrB,SAACC,GAAD,OAAqBA,EAAMkC,aAAaoZ,cAAxC,IAGF,OACE,SAAC,EAAAxU,SAAD,UACGuU,IACC,SAACE,GAAA,QAAD,CACE/hB,kBAAmB8hB,EACnB7hB,KAAM4hB,EACN3hB,WAAY,WACVgG,GAAS8b,EAAAA,EAAAA,OACTL,EAAS,WACV,EACDxhB,OAAO,YAKhB,ECWK+L,IAAYC,EAAAA,EAAAA,IAAW,SAACjR,GAAD,OAC3BC,EAAAA,EAAAA,IAAa,wBACX8mB,QAAS,CACP5mB,OAAQ,sBAEPkN,EAAAA,IACAC,EAAAA,IACA0Z,EAAAA,IAPsB,IAwK7B,GA7JkB,WAChB,IAAMhc,GAAWC,EAAAA,EAAAA,MACXwb,GAAWC,EAAAA,GAAAA,MACXtlB,EAAU4P,KAEVsT,GAAWjZ,EAAAA,EAAAA,IAAYkZ,GAAAA,IAGvB2B,GAAa7a,EAAAA,EAAAA,KACjB,SAACC,GAAD,OAAqBA,EAAMkC,aAAa2Y,YAAxC,IAEF,GAAoCpe,EAAAA,EAAAA,UAAyB,MAA7D,eAAOid,EAAP,KAAmBC,EAAnB,MAEAxZ,EAAAA,EAAAA,YAAU,WACR,IAAIyZ,EAAmBT,GAAAA,GAAAA,QAEnBH,GAAgC,IAApBA,EAASxd,QACG0I,OAAOC,KAAK0V,GAAAA,IAEpB1I,SAAQ,SAAChZ,GACrB6gB,EAASc,SAAS3hB,KACpByhB,EAAmB/f,IACjBggB,GAAAA,GACA1hB,EACAghB,GAAAA,GAAAA,SAGL,IAGHQ,EAAcC,EACf,GAAE,CAACZ,IAEJ,IAAM2C,EAAe,CACnBvkB,MAAO,SACPkG,KAAM,QACNyd,SAAS,EACTa,OAAQ,WACNlc,GAAS8b,EAAAA,EAAAA,OACTL,EAAS,WACV,GAGGU,EAA8B,CAClCC,iBAAiB,SAAC,GAAD,GAAyB,kBA2DxCC,EAxDkC,CACpC,CACE3kB,MAAO,QACP0kB,iBAAiB,SAAC,GAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,YACP6kB,cAAc,EACdH,iBAAiB,SAAC,EAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,SACP6kB,cAAc,EACdH,iBAAiB,SAAC,GAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,gBACP6kB,cAAc,EACdH,iBAAiB,SAAC,GAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,oBACP6kB,cAAc,EACdH,iBAAiB,SAAC,EAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,WACP6kB,cAAc,EACdH,iBAAiB,SAAC,EAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,aACP6kB,cAAc,EACdH,iBAAiB,SAAC,GAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,YACP6kB,cAAc,EACdH,iBAAiB,SAAC,GAAD,IACjBE,QAAS,CAACL,EAAcE,IAE1B,CACEzkB,MAAO,aACP6kB,cAAc,EACdH,iBAAiB,SAAC,GAAD,IACjBE,QAAS,CAACL,EAAcE,KAM5B,OACE,UAAC,EAAA/U,SAAD,YACE,SAAC,GAAD,KACA,SAACoV,GAAA,EAAD,CACE9kB,OACE,SAAC+kB,GAAA,EAAD,CACEC,GAAI,WACJhlB,MAAO,UACPilB,eAAgB,WACd3c,GAAS8b,EAAAA,EAAAA,MACV,OAKP,UAACc,GAAA,EAAD,WACG1B,IACC,SAACzgB,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAf,UACE,SAACqhB,EAAA,EAAD,OAGJ,SAACvd,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ2lB,QAAtC,UACE,SAACc,EAAA,EAAD,CAAeC,YAAaT,MAE7BrC,IAAeP,GAAAA,GAAAA,MACd,SAAChf,EAAA,GAAD,CAAM/D,MAAI,EAACC,GAAI,GAAIkC,MAAO,CAAEW,UAAW,IAAvC,UACE,SAACujB,GAAA,EAAD,CACEzmB,MAAO,4BACPD,eAAe,SAAC,OAAD,IACfE,MACE,UAAC,EAAA6Q,SAAD,YACE,iDADF,eACyC,+BADzC,gJAIY,gCAJZ,KAKE,mBACA,mBACA,6CAPF,eAOqC,+BAPrC,2FAUE,gCAVF,oEAoBf,C,mFC/LD,KAAerS,EAAAA,EAAAA,IA5BA,SAACC,GAAD,aACbC,EAAAA,EAAAA,GAAa,CACX+nB,WAAY,CACV7jB,OAAO,UAAAnE,EAAMioB,eAAN,eAAepgB,MAAMqgB,OAAQ,YAH3B,GA4Bf,EAfmB,SAAC,GAIK,IAHvB9mB,EAGsB,EAHtBA,QACAkJ,EAEsB,EAFtBA,aAEsB,IADtB6d,UAAAA,OACsB,SACtB,OACE,UAAC,WAAD,WACGA,IAAa,mBACd,SAAC,IAAD,CAAYne,UAAU,IAAInD,QAAQ,QAAQrF,UAAWJ,EAAQ4mB,WAA7D,SACG1d,MAIR,G","sources":["common/HelpBox.tsx","icons/CertificateIcon.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tenants/AddTenant/Steps/Configure.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPActiveDirectory.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPOpenID.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPBuiltIn.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider.tsx","screens/Console/Tenants/HelpBox/TLSHelpBox.tsx","screens/Console/Tenants/AddTenant/Steps/Security.tsx","screens/Console/Common/SectionH1.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/VaultKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AzureKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GCPKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GemaltoKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AWSKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption.tsx","screens/Console/Tenants/AddTenant/Steps/Affinity.tsx","screens/Console/Tenants/AddTenant/Steps/Images.tsx","screens/Console/Tenants/AddTenant/Steps/SizePreview.tsx","screens/Console/Tenants/AddTenant/Steps/helpers/AddNamespaceModal.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NamespaceSelector.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NameTenantMain.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantResources.tsx","screens/Console/Tenants/AddTenant/Steps/ConfigLogSearch.tsx","screens/Console/Tenants/AddTenant/Steps/ConfigPrometheus.tsx","screens/Console/Tenants/AddTenant/common.ts","screens/Console/Tenants/AddTenant/CreateTenantButton.tsx","screens/Console/Tenants/AddTenant/NewTenantCredentials.tsx","screens/Console/Tenants/AddTenant/AddTenant.tsx","screens/shared/ErrorBlock.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) 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 * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst CertificateIcon = (props: SVGProps) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport default CertificateIcon;\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 { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n \n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\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 get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n \n
New {entity} Created
\n
\n }\n titleIcon={ }\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n \n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n >\n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n >\n )}\n \n \n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n >\n )}\n {idp ? (\n \n Please Login via the configured external identity provider.\n
\n ) : (\n \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n >\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\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, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
\n ) : (\n \n
{value}
\n
{\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(FileSelector);\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\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\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 .\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) 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, { useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport {\n addNewMinIODomain,\n isPageValid,\n removeMinIODomain,\n updateAddField,\n} from \"../createTenantSlice\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n marginBottom: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n wrapperContainer: {\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 ...modalBasic,\n ...wizardCommon,\n });\n\nconst Configure = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const exposeMinIO = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeMinIO\n );\n const exposeConsole = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeConsole\n );\n const setDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.setDomains\n );\n const consoleDomain = useSelector(\n (state: AppState) => state.createTenant.fields.configure.consoleDomain\n );\n const minioDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.minioDomains\n );\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (tenantCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"tenant_securityContext_runAsUser\",\n required: true,\n value: tenantSecurityContext.runAsUser,\n customValidation:\n tenantSecurityContext.runAsUser === \"\" ||\n parseInt(tenantSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_runAsGroup\",\n required: true,\n value: tenantSecurityContext.runAsGroup,\n customValidation:\n tenantSecurityContext.runAsGroup === \"\" ||\n parseInt(tenantSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_fsGroup\",\n required: true,\n value: tenantSecurityContext.fsGroup,\n customValidation:\n tenantSecurityContext.fsGroup === \"\" ||\n parseInt(tenantSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n if (setDomains) {\n const minioExtraValidations = minioDomains.map((validation, index) => {\n return {\n fieldKey: `minio-domain-${index.toString()}`,\n required: false,\n value: validation,\n pattern: /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$/,\n customPatternMessage:\n \"MinIO domain is not in the form of http|https://subdomain.domain\",\n };\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n ...minioExtraValidations,\n {\n fieldKey: \"console_domain\",\n required: false,\n value: consoleDomain,\n pattern:\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-./]*)?$/,\n customPatternMessage:\n \"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n dispatch,\n tenantCustom,\n tenantSecurityContext,\n setDomains,\n consoleDomain,\n minioDomains,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const copyDomains = [...minioDomains];\n copyDomains[index] = value;\n\n updateField(\"minioDomains\", copyDomains);\n };\n\n return (\n \n \n
Configure \n \n Basic configurations for tenant management\n \n \n \n
Services \n \n Whether the tenant's services should request an external IP via\n LoadBalancer service type.\n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeMinIO\", checked);\n }}\n label={\"Expose MinIO Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeConsole\", checked);\n }}\n label={\"Expose Console Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"setDomains\", checked);\n }}\n label={\"Set Custom Domains\"}\n />\n \n {setDomains && (\n \n \n \n Custom Domains for MinIO\n \n \n \n ) => {\n updateField(\"consoleDomain\", e.target.value);\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n error={validationErrors[\"console_domain\"] || \"\"}\n />\n
\n \n
MinIO Domains \n
\n {minioDomains.map((domain, index) => {\n return (\n
\n
\n ) => {\n updateMinIODomain(e.target.value, index);\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n error={\n validationErrors[\n `minio-domain-${index.toString()}`\n ] || \"\"\n }\n />\n \n
dispatch(addNewMinIODomain())}\n disabled={index !== minioDomains.length - 1}\n >\n \n \n
\n\n \n dispatch(removeMinIODomain(index))}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n \n );\n })}\n
\n
\n \n \n \n )}\n\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"tenantCustom\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {tenantCustom && (\n \n \n \n SecurityContext for MinIO\n \n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={tenantSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={tenantSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={tenantSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n )}\n \n );\n};\n\nexport default withStyles(styles)(Configure);\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 { Grid, IconButton, Tooltip, Typography } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n addIDPADUsrAtIndex,\n isPageValid,\n removeIDPADUsrAtIndex,\n setIDPADUsrAtIndex,\n updateAddField,\n addIDPADGroupAtIndex,\n removeIDPADGroupAtIndex,\n setIDPADGroupAtIndex,\n} from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { clearValidationError } from \"../../../utils\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n adUserDnRows: {\n display: \"flex\",\n marginBottom: 10,\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IDPActiveDirectory = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n const ADURL = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADURL\n );\n const ADSkipTLS = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADSkipTLS\n );\n const ADServerInsecure = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerInsecure\n );\n const ADGroupSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchBaseDN\n );\n const ADGroupSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchFilter\n );\n const ADUserDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADUserDNs\n );\n const ADGroupDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADGroupDNs\n );\n const ADLookupBindDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindDN\n );\n const ADLookupBindPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindPassword\n );\n const ADUserDNSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchBaseDN\n );\n const ADUserDNSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchFilter\n );\n const ADServerStartTLS = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerStartTLS\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"AD\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n ADLookupBindDN,\n idpSelection,\n ADURL,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n ADGroupDNs,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"ADURL\", e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADSkipTLS\", checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerInsecure\", checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be unencrypted\n \n \n \n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerStartTLS\", checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n updateField(\"ADLookupBindDN\", e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"ADLookupBindPassword\", e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchBaseDN\", e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchFilter\", e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchBaseDN\", e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchFilter\", e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n \n \n List of user DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADUserDNs.map((_, index) => {\n return (\n \n \n
) => {\n dispatch(\n setIDPADUsrAtIndex({\n index: index,\n userDN: e.target.value,\n })\n );\n cleanValidation(`ad-userdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={\n validationErrors[`ad-userdn-${index.toString()}`] || \"\"\n }\n />\n \n
\n {\n dispatch(addIDPADUsrAtIndex());\n }}\n >\n \n \n \n
\n {\n if (ADUserDNs.length > 1) {\n dispatch(removeIDPADUsrAtIndex(index));\n }\n }}\n >\n \n \n \n
\n \n \n );\n })}\n \n \n \n \n List of group DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADGroupDNs.map((_, index) => {\n return (\n \n \n
) => {\n dispatch(\n setIDPADGroupAtIndex({\n index: index,\n userDN: e.target.value,\n })\n );\n cleanValidation(`ad-groupdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-groupdn-${index.toString()}`}\n error={\n validationErrors[`ad-groupdn-${index.toString()}`] || \"\"\n }\n />\n \n
\n {\n dispatch(addIDPADGroupAtIndex());\n }}\n >\n \n \n \n
\n {\n if (ADGroupDNs.length > 1) {\n dispatch(removeIDPADGroupAtIndex(index));\n }\n }}\n >\n \n \n \n
\n \n \n );\n })}\n \n \n \n );\n};\n\nexport default IDPActiveDirectory;\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 { Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IDPOpenID = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n const openIDConfigurationURL = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDConfigurationURL\n );\n const openIDClientID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClientID\n );\n const openIDSecretID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDSecretID\n );\n const openIDCallbackURL = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDCallbackURL\n );\n const openIDClaimName = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClaimName\n );\n const openIDScopes = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.openIDScopes\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"OpenID\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: true,\n value: openIDClaimName,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n idpSelection,\n openIDClientID,\n openIDSecretID,\n openIDConfigurationURL,\n openIDClaimName,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"openIDConfigurationURL\", e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClientID\", e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDSecretID\", e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDCallbackURL\", e.target.value);\n cleanValidation(\"openID_callbackURL\");\n }}\n label=\"Callback URL\"\n value={openIDCallbackURL}\n placeholder=\"https://your-console-endpoint:9443/oauth_callback\"\n error={validationErrors[\"openID_callbackURL\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"openIDClaimName\", e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n error={validationErrors[\"openID_claimName\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDScopes\", e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n );\n};\n\nexport default IDPOpenID;\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, useEffect, useState } from \"react\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n addIDPNewKeyPair,\n isPageValid,\n removeIDPKeyPairAtIndex,\n setIDPPwdAtIndex,\n setIDPUsrAtIndex,\n} from \"../../createTenantSlice\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../../icons/RemoveIcon\";\nimport { clearValidationError, getRandomString } from \"../../../utils\";\nimport CasinoIcon from \"@mui/icons-material/Casino\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n shortened: {\n gridTemplateColumns: \"auto auto 50px 50px\",\n display: \"grid\",\n gridGap: 15,\n marginBottom: 10,\n \"& input\": {\n fontWeight: 400,\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IDPBuiltIn = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n const accessKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.accessKeys\n );\n const secretKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.secretKeys\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"Built-in\") {\n customIDPValidation = [...customIDPValidation];\n for (var i = 0; i < accessKeys.length; i++) {\n customIDPValidation.push({\n fieldKey: `accesskey-${i.toString()}`,\n required: true,\n value: accessKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n customIDPValidation.push({\n fieldKey: `secretkey-${i.toString()}`,\n required: true,\n value: secretKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n }\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [idpSelection, accessKeys, secretKeys, dispatch]);\n\n return (\n \n Add additional users\n {accessKeys.map((_, index) => {\n return (\n \n \n
) => {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: e.target.value,\n })\n );\n cleanValidation(`accesskey-${index.toString()}`);\n }}\n index={index}\n key={`csv-accesskey-${index.toString()}`}\n error={validationErrors[`accesskey-${index.toString()}`] || \"\"}\n />\n ) => {\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: e.target.value,\n })\n );\n cleanValidation(`secretkey-${index.toString()}`);\n }}\n index={index}\n key={`csv-secretkey-${index.toString()}`}\n error={validationErrors[`secretkey-${index.toString()}`] || \"\"}\n />\n \n
\n
{\n dispatch(addIDPNewKeyPair());\n }}\n disabled={index !== accessKeys.length - 1}\n >\n \n \n
\n
\n {\n dispatch(removeIDPKeyPairAtIndex(index));\n }}\n disabled={accessKeys.length <= 1}\n >\n \n \n
\n
\n \n {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: getRandomString(16),\n })\n );\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: getRandomString(16),\n })\n );\n }}\n size={\"small\"}\n >\n \n \n
\n \n
\n \n \n );\n })}\n \n );\n};\n\nexport default IDPBuiltIn;\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 { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { setIDP } from \"../createTenantSlice\";\nimport IDPActiveDirectory from \"./IdentityProvider/IDPActiveDirectory\";\nimport IDPOpenID from \"./IdentityProvider/IDPOpenID\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport IDPBuiltIn from \"./IdentityProvider/IDPBuiltIn\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n protocolRadioOptions: {\n display: \"flex\",\n flexFlow: \"column\",\n marginBottom: 10,\n\n \"& label\": {\n fontSize: 14,\n },\n \"& div\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n },\n },\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IdentityProvider = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n\n return (\n \n \n
Identity Provider \n \n Access to the tenant can be controlled via an external Identity\n Manager.\n \n \n \n Protocol \n {\n dispatch(setIDP(e.target.value));\n }}\n selectorOptions={[\n { label: \"Built-in\", value: \"Built-in\" },\n { label: \"OpenID\", value: \"OpenID\" },\n { label: \"Active Directory\", value: \"AD\" },\n ]}\n />\n \n {idpSelection === \"Built-in\" && }\n {idpSelection === \"OpenID\" && }\n {idpSelection === \"AD\" && }\n \n );\n};\n\nexport default IdentityProvider;\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 { useSelector } from \"react-redux\";\nimport { Box } from \"@mui/material\";\nimport CertificateIcon from \"../../../../icons/CertificateIcon\";\nimport { AppState } from \"../../../../store\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n
\n \n );\n};\nconst TLSHelpBox = () => {\n const namespace = useSelector((state: AppState) => {\n return state.createTenant.fields.nameTenant.namespace || \"\";\n });\n\n const tenantName = useSelector((state: AppState) => {\n return state.createTenant.fields.nameTenant.tenantName || \"\";\n });\n\n return (\n \n \n }\n description={`TLS Certificates Warning`}\n />\n \n Automatic certificate generation is not enabled.\n \n \n If you wish to continue only with custom certificates make sure\n they are valid for the following internode hostnames, i.e.:\n \n \n \n minio.{namespace}\n \n minio.{namespace}.svc\n \n minio.{namespace}.svc.<cluster domain>\n \n *.{tenantName}-hl.{namespace}.svc.<cluster domain>\n \n *.{namespace}.svc.<cluster domain>\n
\n \n Replace <tenant-name> ,{\" \"}\n <namespace> and\n <cluster domain> with the actual values for your\n MinIO tenant.\n \n \n You can learn more at our{\" \"}\n \n documentation\n \n .\n \n \n \n );\n};\n\nexport default TLSHelpBox;\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 } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport SectionTitle from \"../../../Common/SectionTitle\";\nimport {\n addCaCertificate,\n addFileToCaCertificates,\n addFileToKeyPair,\n addKeyPair,\n deleteCaCertificate,\n deleteKeyPair,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport TLSHelpBox from \"../../HelpBox/TLSHelpBox\";\n\ninterface ISecurityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n minioCertificateRows: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n minioCertsContainer: {\n marginBottom: 15,\n },\n minioCACertsRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Security = ({ classes }: ISecurityProps) => {\n const dispatch = useAppDispatch();\n\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert\n );\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts\n );\n const minioCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.minioCertificates\n );\n const caCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.caCertificates\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"security\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n\n useEffect(() => {\n if (!enableTLS) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableAutoCert) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableCustomCerts) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n dispatch(isPageValid({ pageName: \"security\", valid: false }));\n }, [enableTLS, enableAutoCert, enableCustomCerts, dispatch]);\n\n return (\n \n \n
Security \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableTLS\", checked);\n }}\n label={\"TLS\"}\n description={\n \"Securing all the traffic using TLS. This is required for Encryption Configuration\"\n }\n />\n \n {enableTLS && (\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableAutoCert\", checked);\n }}\n label={\"AutoCert\"}\n description={\n \"The internode certificates will be generated and managed by MinIO Operator\"\n }\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableCustomCerts\", checked);\n }}\n label={\"Custom Certificates\"}\n description={\"Certificates used to terminated TLS at MinIO\"}\n />\n \n {enableCustomCerts && (\n \n {!enableAutoCert && (\n \n \n \n )}\n \n MinIO Certificates \n {minioCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n \n
{\n dispatch(addKeyPair());\n }}\n disabled={index !== minioCertificates.length - 1}\n >\n \n \n
\n \n {\n dispatch(deleteKeyPair(keyPair.id));\n }}\n disabled={minioCertificates.length <= 1}\n >\n \n \n
\n \n \n ))}\n \n\n \n MinIO CA Certificates \n\n {caCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToCaCertificates({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n \n \n \n
\n
{\n dispatch(addCaCertificate());\n }}\n disabled={index !== caCertificates.length - 1}\n >\n \n \n
\n
\n {\n dispatch(deleteCaCertificate(keyPair.id));\n }}\n disabled={caCertificates.length <= 1}\n >\n \n \n
\n
\n \n \n ))}\n \n \n )}\n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(Security);\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\ntype Props = {\n children: string;\n};\n\nconst SectionH1: React.FC = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default SectionH1;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nimport FileSelector from \"../../../../Common/FormComponents/FileSelector/FileSelector\";\nimport {\n addFileVaultCa,\n addFileVaultCert,\n isPageValid,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst VaultKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const vaultEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEndpoint\n );\n const vaultEngine = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEngine\n );\n const vaultNamespace = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultNamespace\n );\n const vaultPrefix = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPrefix\n );\n const vaultAppRoleEngine = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultAppRoleEngine\n );\n const vaultId = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultId\n );\n const vaultSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultSecret\n );\n const vaultRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultRetry\n );\n const vaultPing = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPing\n );\n const vaultCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.vaultCertificate\n );\n const vaultCA = useSelector(\n (state: AppState) => state.createTenant.certificates.vaultCA\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultEndpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultId,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultSecret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultPing,\n customValidation: parseInt(vaultPing) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultRetry,\n customValidation: parseInt(vaultRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n vaultEndpoint,\n vaultEngine,\n vaultId,\n vaultSecret,\n vaultPing,\n vaultRetry,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"vaultEndpoint\", e.target.value);\n cleanValidation(\"vault_endpoint\");\n }}\n label=\"Endpoint\"\n value={vaultEndpoint}\n error={validationErrors[\"vault_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultEngine\", e.target.value);\n cleanValidation(\"vault_engine\");\n }}\n label=\"Engine\"\n value={vaultEngine}\n />\n \n \n ) => {\n updateField(\"vaultNamespace\", e.target.value);\n }}\n label=\"Namespace\"\n value={vaultNamespace}\n />\n \n \n ) => {\n updateField(\"vaultPrefix\", e.target.value);\n }}\n label=\"Prefix\"\n value={vaultPrefix}\n />\n \n\n \n \n App Role \n \n ) => {\n updateField(\"vaultAppRoleEngine\", e.target.value);\n }}\n label=\"Engine\"\n value={vaultAppRoleEngine}\n />\n \n \n ) => {\n updateField(\"vaultId\", e.target.value);\n cleanValidation(\"vault_id\");\n }}\n label=\"AppRole ID\"\n value={vaultId}\n error={validationErrors[\"vault_id\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultSecret\", e.target.value);\n cleanValidation(\"vault_secret\");\n }}\n label=\"AppRole Secret\"\n value={vaultSecret}\n error={validationErrors[\"vault_secret\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultRetry\", e.target.value);\n cleanValidation(\"vault_retry\");\n }}\n label=\"Retry (Seconds)\"\n value={vaultRetry}\n error={validationErrors[\"vault_retry\"] || \"\"}\n />\n \n \n \n\n \n \n \n Mutual TLS authentication (optional)\n \n {\n dispatch(\n addFileVaultCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"vault_key\");\n }}\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={vaultCertificate.key}\n />\n {\n dispatch(\n addFileVaultCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"vault_cert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={vaultCertificate.cert}\n />\n {\n dispatch(\n addFileVaultCa({\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"vault_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={vaultCA.cert}\n />\n \n \n \n \n Status \n ) => {\n updateField(\"vaultPing\", e.target.value);\n cleanValidation(\"vault_ping\");\n }}\n label=\"Ping (Seconds)\"\n value={vaultPing}\n error={validationErrors[\"vault_ping\"] || \"\"}\n />\n \n \n \n );\n};\n\nexport default VaultKMSAdd;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst AzureKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const azureEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureEndpoint\n );\n const azureTenantID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureTenantID\n );\n const azureClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientID\n );\n const azureClientSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientSecret\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureEndpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureTenantID,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureClientID,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureClientSecret,\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"azureEndpoint\", e.target.value);\n cleanValidation(\"azure_endpoint\");\n }}\n label=\"Endpoint\"\n value={azureEndpoint}\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"azureTenantID\", e.target.value);\n cleanValidation(\"azure_tenant_id\");\n }}\n label=\"Tenant ID\"\n value={azureTenantID}\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientID\", e.target.value);\n cleanValidation(\"azure_client_id\");\n }}\n label=\"Client ID\"\n value={azureClientID}\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientSecret\", e.target.value);\n cleanValidation(\"azure_client_secret\");\n }}\n label=\"Client Secret\"\n value={azureClientSecret}\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n \n \n \n );\n};\n\nexport default AzureKMSAdd;\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, useCallback } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { updateAddField } from \"../../createTenantSlice\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst GCPKMSAdd = () => {\n const classes = useStyles();\n const dispatch = useAppDispatch();\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n return (\n \n \n ) => {\n updateField(\"gcpProjectID\", e.target.value);\n }}\n label=\"Project ID\"\n value={gcpProjectID}\n />\n \n \n ) => {\n updateField(\"gcpEndpoint\", e.target.value);\n }}\n label=\"Endpoint\"\n value={gcpEndpoint}\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"gcpClientEmail\", e.target.value);\n }}\n label=\"Client Email\"\n value={gcpClientEmail}\n />\n \n \n ) => {\n updateField(\"gcpClientID\", e.target.value);\n }}\n label=\"Client ID\"\n value={gcpClientID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKeyID\", e.target.value);\n }}\n label=\"Private Key ID\"\n value={gcpPrivateKeyID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKey\", e.target.value);\n }}\n label=\"Private Key\"\n value={gcpPrivateKey}\n />\n \n \n \n \n );\n};\n\nexport default GCPKMSAdd;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport FileSelector from \"../../../../Common/FormComponents/FileSelector/FileSelector\";\nimport {\n addFileGemaltoCa,\n isPageValid,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst GemaltoKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const gemaltoCA = useSelector(\n (state: AppState) => state.createTenant.certificates.gemaltoCA\n );\n const gemaltoEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoEndpoint\n );\n const gemaltoToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoToken\n );\n const gemaltoDomain = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoDomain\n );\n const gemaltoRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoRetry\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoEndpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoToken,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoDomain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoRetry,\n customValidation: parseInt(gemaltoRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [gemaltoEndpoint, gemaltoToken, gemaltoDomain, gemaltoRetry, dispatch]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"gemaltoEndpoint\", e.target.value);\n cleanValidation(\"gemalto_endpoint\");\n }}\n label=\"Endpoint\"\n value={gemaltoEndpoint}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"gemaltoToken\", e.target.value);\n cleanValidation(\"gemalto_token\");\n }}\n label=\"Token\"\n value={gemaltoToken}\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoDomain\", e.target.value);\n cleanValidation(\"gemalto_domain\");\n }}\n label=\"Domain\"\n value={gemaltoDomain}\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoRetry\", e.target.value);\n cleanValidation(\"gemalto_retry\");\n }}\n label=\"Retry (seconds)\"\n value={gemaltoRetry}\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n \n \n \n \n \n Custom CA Root certificate verification\n \n\n {\n dispatch(\n addFileGemaltoCa({\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"gemalto_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={gemaltoCA.cert}\n />\n \n \n \n );\n};\n\nexport default GemaltoKMSAdd;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst AWSKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const awsEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsEndpoint\n );\n const awsRegion = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsRegion\n );\n const awsKMSKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsKMSKey\n );\n const awsAccessKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsAccessKey\n );\n const awsSecretKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsSecretKey\n );\n const awsToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsToken\n );\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsEndpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsRegion,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsAccessKey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsSecretKey,\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [awsEndpoint, awsRegion, awsSecretKey, awsAccessKey, dispatch]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"awsEndpoint\", e.target.value);\n cleanValidation(\"aws_endpoint\");\n }}\n label=\"Endpoint\"\n value={awsEndpoint}\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsRegion\", e.target.value);\n cleanValidation(\"aws_region\");\n }}\n label=\"Region\"\n value={awsRegion}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsKMSKey\", e.target.value);\n }}\n label=\"KMS Key\"\n value={awsKMSKey}\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"awsAccessKey\", e.target.value);\n cleanValidation(\"aws_accessKey\");\n }}\n label=\"Access Key\"\n value={awsAccessKey}\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsSecretKey\", e.target.value);\n cleanValidation(\"aws_secretKey\");\n }}\n label=\"Secret Key\"\n value={awsSecretKey}\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsToken\", e.target.value);\n }}\n label=\"Token\"\n value={awsToken}\n />\n \n \n \n \n );\n};\n\nexport default AWSKMSAdd;\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Paper } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\n\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport {\n addFileClientCert,\n addFileServerCert,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport VaultKMSAdd from \"./Encryption/VaultKMSAdd\";\nimport AzureKMSAdd from \"./Encryption/AzureKMSAdd\";\nimport GCPKMSAdd from \"./Encryption/GCPKMSAdd\";\nimport GemaltoKMSAdd from \"./Encryption/GemaltoKMSAdd\";\nimport AWSKMSAdd from \"./Encryption/AWSKMSAdd\";\n\ninterface IEncryptionProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n encryptionTypeOptions: {\n marginBottom: 15,\n },\n mutualTlsConfig: {\n marginTop: 15,\n \"& fieldset\": {\n flex: 1,\n },\n },\n rightSpacer: {\n marginRight: 15,\n },\n responsiveContainer: {\n \"@media (max-width: 900px)\": {\n display: \"flex\",\n flexFlow: \"column\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Encryption = ({ classes }: IEncryptionProps) => {\n const dispatch = useAppDispatch();\n\n const replicas = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.replicas\n );\n const enableEncryption = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.enableEncryption\n );\n const encryptionType = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionType\n );\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey\n );\n const enableCustomCertsForKES = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.enableCustomCertsForKES\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert\n );\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS\n );\n const minioCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.minioCertificates\n );\n const serverCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.serverCertificate\n );\n const clientCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.clientCertificate\n );\n\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts\n );\n const kesSecurityContext = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.kesSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n let encryptionAvailable = false;\n if (\n enableTLS &&\n (enableAutoCert ||\n (minioCertificates &&\n minioCertificates.filter(\n (item) => item.encoded_key && item.encoded_cert\n ).length > 0))\n ) {\n encryptionAvailable = true;\n }\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (enableEncryption) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: kesSecurityContext.runAsUser,\n customValidation:\n kesSecurityContext.runAsUser === \"\" ||\n parseInt(kesSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: kesSecurityContext.runAsGroup,\n customValidation:\n kesSecurityContext.runAsGroup === \"\" ||\n parseInt(kesSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: kesSecurityContext.fsGroup,\n customValidation:\n kesSecurityContext.fsGroup === \"\" ||\n parseInt(kesSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enableCustomCerts) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_key,\n },\n {\n fieldKey: \"serverCert\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_cert,\n },\n {\n fieldKey: \"clientKey\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_key,\n },\n {\n fieldKey: \"clientCert\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_cert,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n enableEncryption,\n encryptionType,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n dispatch,\n enableAutoCert,\n enableCustomCerts,\n serverCertificate.encoded_key,\n serverCertificate.encoded_cert,\n clientCertificate.encoded_key,\n clientCertificate.encoded_cert,\n kesSecurityContext,\n replicas,\n ]);\n\n return (\n \n \n \n Encryption \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableEncryption\", checked);\n }}\n description=\"\"\n disabled={!encryptionAvailable}\n />\n \n \n \n \n \n MinIO Server-Side Encryption (SSE) protects objects as part of write\n operations, allowing clients to take advantage of server processing\n power to secure objects at the storage layer (encryption-at-rest).\n SSE also provides key functionality to regulatory and compliance\n requirements around secure locking and erasure.\n \n \n \n \n \n\n {enableEncryption && (\n \n \n {\n updateField(\"encryptionType\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && }\n {encryptionType === \"azure\" && }\n {encryptionType === \"gcp\" && }\n {encryptionType === \"aws\" && }\n {encryptionType === \"gemalto\" && }\n \n
Additional Configurations \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCertsForKES\", checked);\n }}\n label={\"Custom Certificates\"}\n disabled={!enableAutoCert}\n />\n \n {(enableCustomCertsForKES || !enableAutoCert) && (\n \n \n \n \n \n Encryption Service Certificates\n \n {\n dispatch(\n addFileServerCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n error={validationErrors[\"serverKey\"] || \"\"}\n value={serverCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileServerCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n error={validationErrors[\"serverCert\"] || \"\"}\n value={serverCertificate.cert}\n required={!enableAutoCert}\n />\n \n \n \n \n \n \n \n Mutual TLS authentication with MinIO\n \n {\n dispatch(\n addFileClientCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n error={validationErrors[\"clientKey\"] || \"\"}\n value={clientCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileClientCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n error={validationErrors[\"clientCert\"] || \"\"}\n value={clientCertificate.cert}\n required={!enableAutoCert}\n />\n \n \n \n \n )}\n \n \n ) => {\n updateField(\"replicas\", e.target.value);\n cleanValidation(\"replicas\");\n }}\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n \n \n SecurityContext for KES pods\n \n \n \n
\n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={kesSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={kesSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={kesSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(Encryption);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\n\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { LabelKeyPair } from \"../../types\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../common/api\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../Common/TolerationSelector/TolerationSelector\";\nimport { setModalErrorSnackMessage } from \"../../../../../systemSlice\";\nimport {\n addNewToleration,\n isPageValid,\n removeToleration,\n setKeyValuePairs,\n setTolerationInfo,\n updateAddField,\n} from \"../createTenantSlice\";\n\ninterface IAffinityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({ classes }: IAffinityProps) => {\n const dispatch = useAppDispatch();\n\n const podAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.podAffinity\n );\n const nodeSelectorLabels = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.nodeSelectorLabels\n );\n const withPodAntiAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.withPodAntiAffinity\n );\n const keyValuePairs = useSelector(\n (state: AppState) => state.createTenant.nodeSelectorPairs\n );\n const tolerations = useSelector(\n (state: AppState) => state.createTenant.tolerations\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {}\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"affinity\",\n field: field,\n value: value,\n })\n );\n },\n [dispatch]\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n setKeyValueMap({});\n });\n }\n }, [dispatch, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"affinity\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n dispatch(\n setTolerationInfo({\n index: index,\n tolerationValue: alterToleration,\n })\n );\n };\n\n return (\n \n \n
Pod Placement \n \n Configure how pods will be assigned to nodes\n \n \n \n \n Type
\n \n MinIO supports multiple configurations for Pod Affinity\n
\n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n \n \n {podAffinity === \"nodeSelector\" && (\n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n Labels \n {validationErrors[\"labels\"]} \n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const newLKP: LabelKeyPair = {\n key: newKey,\n value: keyValueMap[newKey][0],\n };\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = newLKP;\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n \n
{\n const arrCp = [...keyValuePairs];\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n dispatch(setKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n {keyValuePairs.length > 1 && (\n \n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i\n );\n dispatch(setKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n )}\n \n \n );\n })}\n \n \n \n )}\n \n \n Tolerations \n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n \n
{\n dispatch(addNewToleration());\n }}\n disabled={i !== tolerations.length - 1}\n >\n \n \n
\n\n \n dispatch(removeToleration(i))}\n disabled={tolerations.length <= 1}\n >\n \n \n
\n \n );\n })}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(Affinity);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\n\ninterface IImagesProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Images = ({ classes }: IImagesProps) => {\n const dispatch = useAppDispatch();\n\n const customImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customImage\n );\n const imageName = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageName\n );\n const customDockerhub = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customDockerhub\n );\n const imageRegistry = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageRegistry\n );\n const imageRegistryUsername = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryUsername\n );\n const imageRegistryPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryPassword\n );\n\n const prometheusCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusEnabled\n );\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom\n );\n const logSearchCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchEnabled\n );\n const logSearchVolumeSize = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchVolumeSize\n );\n\n const prometheusVolumeSize = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusVolumeSize\n );\n\n const logSearchSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchSelectedStorageClass\n );\n const logSearchImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchImage\n );\n const kesImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.kesImage\n );\n const logSearchPostgresImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresImage\n );\n const logSearchPostgresInitImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresInitImage\n );\n const prometheusSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSelectedStorageClass\n );\n const prometheusImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusImage\n );\n const prometheusSidecarImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSidecarImage\n );\n const prometheusInitImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusInitImage\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n if (logSearchCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n\n if (customImage) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"image\",\n required: false,\n value: imageName,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/minio:VERSION'\",\n },\n {\n fieldKey: \"logSearchImage\",\n required: false,\n value: logSearchImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/operator:VERSION'\",\n },\n {\n fieldKey: \"kesImage\",\n required: false,\n value: kesImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/kes:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresImage\",\n required: false,\n value: logSearchPostgresImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/postgres:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresInitImage\",\n required: false,\n value: logSearchPostgresInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n {\n fieldKey: \"prometheusImage\",\n required: false,\n value: prometheusImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/prometheus:VERSION'\",\n },\n {\n fieldKey: \"prometheusSidecarImage\",\n required: false,\n value: prometheusSidecarImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'project/container:VERSION'\",\n },\n {\n fieldKey: \"prometheusInitImage\",\n required: false,\n value: prometheusInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n ];\n if (customDockerhub) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"registry\",\n required: true,\n value: imageRegistry,\n },\n {\n fieldKey: \"registryUsername\",\n required: true,\n value: imageRegistryUsername,\n },\n {\n fieldKey: \"registryPassword\",\n required: true,\n value: imageRegistryPassword,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n customImage,\n imageName,\n logSearchImage,\n kesImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n dispatch,\n prometheusCustom,\n tenantCustom,\n logSearchCustom,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n
Container Images \n \n Specify the container images used by the Tenant and it's features.\n \n \n\n \n \n ) => {\n updateField(\"imageName\", e.target.value);\n cleanValidation(\"image\");\n }}\n label=\"MinIO\"\n value={imageName}\n error={validationErrors[\"image\"] || \"\"}\n placeholder=\"minio/minio:RELEASE.2022-02-26T02-54-46Z\"\n />\n \n\n \n ) => {\n updateField(\"kesImage\", e.target.value);\n cleanValidation(\"kesImage\");\n }}\n label=\"KES\"\n value={kesImage}\n error={validationErrors[\"kesImage\"] || \"\"}\n placeholder=\"minio/kes:v0.17.6\"\n />\n \n \n Log Search \n \n \n ) => {\n updateField(\"logSearchImage\", e.target.value);\n cleanValidation(\"logSearchImage\");\n }}\n label=\"API\"\n value={logSearchImage}\n error={validationErrors[\"logSearchImage\"] || \"\"}\n placeholder=\"minio/operator:v4.4.22\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresImage\", e.target.value);\n cleanValidation(\"logSearchPostgresImage\");\n }}\n label=\"PostgreSQL\"\n value={logSearchPostgresImage}\n error={validationErrors[\"logSearchPostgresImage\"] || \"\"}\n placeholder=\"library/postgres:13\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresInitImage\", e.target.value);\n cleanValidation(\"logSearchPostgresInitImage\");\n }}\n label=\"PostgreSQL Init\"\n value={logSearchPostgresInitImage}\n error={validationErrors[\"logSearchPostgresInitImage\"] || \"\"}\n placeholder=\"library/busybox:1.33.1\"\n />\n \n \n Monitoring \n \n \n ) => {\n updateField(\"prometheusImage\", e.target.value);\n cleanValidation(\"prometheusImage\");\n }}\n label=\"Prometheus\"\n value={prometheusImage}\n error={validationErrors[\"prometheusImage\"] || \"\"}\n placeholder=\"quay.io/prometheus/prometheus:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusSidecarImage\", e.target.value);\n cleanValidation(\"prometheusSidecarImage\");\n }}\n label=\"Prometheus Sidecar\"\n value={prometheusSidecarImage}\n error={validationErrors[\"prometheusSidecarImage\"] || \"\"}\n placeholder=\"library/alpine:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusInitImage\", e.target.value);\n cleanValidation(\"prometheusInitImage\");\n }}\n label=\"Prometheus Init\"\n value={prometheusInitImage}\n error={validationErrors[\"prometheusInitImage\"] || \"\"}\n placeholder=\"library/busybox:1.33.1\"\n />\n \n \n\n {customImage && (\n \n \n Custom Container Registry \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customDockerhub\", checked);\n }}\n label={\"Use a private container registry\"}\n />\n \n \n )}\n {customDockerhub && (\n \n \n ) => {\n updateField(\"imageRegistry\", e.target.value);\n }}\n label=\"Endpoint\"\n value={imageRegistry}\n error={validationErrors[\"registry\"] || \"\"}\n placeholder=\"https://index.docker.io/v1/\"\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryUsername\", e.target.value);\n }}\n label=\"Username\"\n value={imageRegistryUsername}\n error={validationErrors[\"registryUsername\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryPassword\", e.target.value);\n }}\n label=\"Password\"\n value={imageRegistryPassword}\n error={validationErrors[\"registryPassword\"] || \"\"}\n required\n />\n \n \n )}\n \n );\n};\n\nexport default withStyles(styles)(Images);\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 { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport { niceBytes } from \"../../../../../common/utils\";\n\nimport { Divider } from \"@mui/material\";\n\ninterface ISizePreviewProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n margin: 4,\n },\n table: {\n \"& .MuiTableCell-root\": {\n fontSize: 13,\n },\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst SizePreview = ({ classes }: ISizePreviewProps) => {\n const nodes = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.nodes\n );\n const memoryNode = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesMemoryRequest\n );\n const ecParity = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParity\n );\n\n const distribution = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.distribution\n );\n const ecParityCalc = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParityCalc\n );\n\n const cpuToUse = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesCPURequest\n );\n const integrationSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.integrationSelection\n );\n\n const usableInformation = ecParityCalc.storageFactors.find(\n (element) => element.erasureCode === ecParity\n );\n\n return (\n \n
Resource Allocation \n
\n
\n \n \n Number of Servers \n \n {parseInt(nodes) > 0 ? nodes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Drives per Server \n \n {distribution ? distribution.disks : \"-\"}\n \n \n \n Drive Capacity \n \n {distribution ? niceBytes(distribution.pvSize) : \"-\"}\n \n \n \n )}\n\n \n Total Volumes \n \n {distribution ? distribution.persistentVolumes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Memory per Node \n {memoryNode} Gi \n \n \n \n CPU Selection\n \n \n {cpuToUse}\n \n \n \n )}\n \n
\n {ecParityCalc.error === 0 && usableInformation && (\n
\n Erasure Code Configuration \n \n \n \n \n EC Parity \n \n {ecParity !== \"\" ? ecParity : \"-\"}\n \n \n \n Raw Capacity \n \n {niceBytes(ecParityCalc.rawCapacity)}\n \n \n \n Usable Capacity \n \n {niceBytes(usableInformation.maxCapacity)}\n \n \n \n \n Server Failures Tolerated\n \n \n {distribution\n ? Math.floor(\n usableInformation.maxFailureTolerations /\n distribution.disks\n )\n : \"-\"}\n \n \n \n
\n \n )}\n {integrationSelection.typeSelection !== \"\" &&\n integrationSelection.storageClass !== \"\" && (\n
\n Single Instance Configuration \n \n \n \n \n CPU \n \n {integrationSelection.CPU !== 0\n ? integrationSelection.CPU\n : \"-\"}\n \n \n \n Memory \n \n {integrationSelection.memory !== 0\n ? `${integrationSelection.memory} Gi`\n : \"-\"}\n \n \n \n Drives per Server \n \n {integrationSelection.drivesPerServer !== 0\n ? `${integrationSelection.drivesPerServer}`\n : \"-\"}\n \n \n \n \n Drive Size\n \n \n {integrationSelection.driveSize.driveSize}\n {integrationSelection.driveSize.sizeUnit}\n \n \n \n
\n \n )}\n
\n );\n};\n\nexport default withStyles(styles)(SizePreview);\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 { useSelector } from \"react-redux\";\nimport { DialogContentText, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n deleteDialogStyles,\n modalBasic,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"../../../../../../icons\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { closeAddNSModal } from \"../../createTenantSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { createNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...modalBasic,\n ...deleteDialogStyles,\n })\n);\n\nconst AddNamespaceModal = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace\n );\n const addNamespaceLoading = useSelector(\n (state: AppState) => state.createTenant.addNSLoading\n );\n const addNamespaceOpen = useSelector(\n (state: AppState) => state.createTenant.addNSOpen\n );\n\n return (\n }\n isLoading={addNamespaceLoading}\n onConfirm={() => {\n dispatch(createNamespaceAsync());\n }}\n onClose={() => {\n dispatch(closeAddNSModal());\n }}\n confirmationContent={\n \n {addNamespaceLoading && }\n \n Are you sure you want to add a namespace called\n \n {namespace} ?\n \n \n }\n />\n );\n};\n\nexport default AddNamespaceModal;\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, useEffect, useMemo } from \"react\";\nimport AddIcon from \"../../../../../../icons/AddIcon\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { openAddNSModal, setNamespace } from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddNamespaceModal from \"../helpers/AddNamespaceModal\";\nimport debounce from \"lodash/debounce\";\nimport { IMkEnvs } from \"./utils\";\nimport { validateNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst NamespaceSelector = ({ formToRender }: { formToRender?: IMkEnvs }) => {\n const dispatch = useAppDispatch();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace\n );\n\n const showNSCreateButton = useSelector(\n (state: AppState) => state.createTenant.showNSCreateButton\n );\n\n const namespaceError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"namespace\"]\n );\n const openAddNSConfirm = useSelector(\n (state: AppState) => state.createTenant.addNSOpen\n );\n\n const debounceNamespace = useMemo(\n () =>\n debounce(() => {\n dispatch(validateNamespaceAsync());\n }, 500),\n [dispatch]\n );\n\n useEffect(() => {\n if (namespace !== \"\") {\n debounceNamespace();\n // Cancel previous debounce calls during useEffect cleanup.\n return debounceNamespace.cancel;\n }\n }, [debounceNamespace, namespace]);\n\n const addNamespace = () => {\n dispatch(openAddNSModal());\n };\n\n return (\n \n {openAddNSConfirm && }\n ) => {\n dispatch(setNamespace(e.target.value));\n }}\n label=\"Namespace\"\n value={namespace}\n error={namespaceError || \"\"}\n overlayId={\"add-namespace\"}\n overlayIcon={showNSCreateButton ? : null}\n overlayAction={addNamespace}\n required\n />\n \n );\n};\nexport default NamespaceSelector;\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 } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport SizePreview from \"../SizePreview\";\nimport TenantSize from \"./TenantSize\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport { IMkEnvs, mkPanelConfigurations } from \"./utils\";\nimport {\n isPageValid,\n setStorageType,\n setTenantName,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { selFeatures } from \"../../../../consoleSlice\";\nimport NamespaceSelector from \"./NamespaceSelector\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizePreview: {\n position: \"fixed\",\n marginLeft: 10,\n background: \"#FFFFFF\",\n border: \"1px solid #EAEAEA\",\n padding: 2,\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst NameTenantField = () => {\n const dispatch = useAppDispatch();\n const tenantName = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.tenantName\n );\n\n const tenantNameError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"tenant-name\"]\n );\n\n return (\n ) => {\n dispatch(setTenantName(e.target.value));\n }}\n label=\"Name\"\n value={tenantName}\n required\n error={tenantNameError || \"\"}\n />\n );\n};\n\ninterface INameTenantMainScreen {\n classes: any;\n formToRender?: IMkEnvs;\n}\n\nconst NameTenantMain = ({ classes, formToRender }: INameTenantMainScreen) => {\n const dispatch = useAppDispatch();\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n const selectedStorageType = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageType\n );\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses\n );\n const features = useSelector(selFeatures);\n\n // Common\n const updateField = useCallback(\n (field: string, value: string) => {\n dispatch(\n updateAddField({ pageName: \"nameTenant\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n const isValid =\n (formToRender === IMkEnvs.default && storageClasses.length > 0) ||\n (formToRender !== IMkEnvs.default && selectedStorageType !== \"\");\n\n dispatch(isPageValid({ pageName: \"nameTenant\", valid: isValid }));\n }, [storageClasses, dispatch, selectedStorageType, formToRender]);\n\n return (\n \n \n \n \n \n \n \n
Name \n \n How would you like to name this new tenant?\n \n \n \n \n
\n \n \n \n \n {formToRender === IMkEnvs.default ? (\n \n ) => {\n updateField(\n \"selectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Storage Class\"\n value={selectedStorageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n ) : (\n \n ) => {\n dispatch(\n setStorageType({\n storageType: e.target.value as string,\n features: features,\n })\n );\n }}\n label={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorLabel`,\n \"Storage Type\"\n )}\n value={selectedStorageType}\n options={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorValues`,\n []\n )}\n />\n \n )}\n {formToRender === IMkEnvs.default ? (\n \n ) : (\n get(\n mkPanelConfigurations,\n `${formToRender}.sizingComponent`,\n null\n )\n )}\n \n \n \n \n \n \n
\n \n \n \n );\n};\n\nexport default withStyles(styles)(NameTenantMain);\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 { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport NameTenantMain from \"./NameTenantMain\";\nimport { IMkEnvs, resourcesConfigurations } from \"./utils\";\nimport { selFeatures } from \"../../../../consoleSlice\";\n\nconst TenantResources = () => {\n const features = useSelector(selFeatures);\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n if (formRender === null) {\n return null;\n }\n\n return ;\n};\n\nexport default TenantResources;\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, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n logSearchEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigLogSearch = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses\n );\n const logSearchEnabled = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchEnabled\n );\n const logSearchVolumeSize = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchVolumeSize\n );\n const logSearchSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchSelectedStorageClass\n );\n const logSearchImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchImage\n );\n const logSearchPostgresImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresImage\n );\n const logSearchPostgresInitImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresInitImage\n );\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext\n );\n const logSearchSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchSecurityContext\n );\n const logSearchPostgresSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (logSearchEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsUser\",\n required: true,\n value: logSearchSecurityContext.runAsUser,\n customValidation:\n logSearchSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_fsGroup\",\n required: true,\n value: logSearchSecurityContext.fsGroup,\n customValidation:\n logSearchSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsUser\",\n required: true,\n value: logSearchPostgresSecurityContext.runAsUser,\n customValidation:\n logSearchPostgresSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchPostgresSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_fsGroup\",\n required: true,\n value: logSearchPostgresSecurityContext.fsGroup,\n customValidation:\n logSearchPostgresSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n logSearchImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n dispatch,\n logSearchEnabled,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n tenantSecurityContext,\n logSearchSecurityContext,\n logSearchPostgresSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterLogSearch = storageClasses.filter(\n (item: any) => item.value === logSearchSelectedStorageClass\n );\n if (filterLogSearch.length === 0) {\n updateField(\"logSearchSelectedStorageClass\", \"default\");\n }\n }\n }, [\n logSearchSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n \n Audit Log \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"logSearchEnabled\", checked);\n }}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n \n \n \n \n \n Deploys a small PostgreSQL database and stores access logs of all\n calls into the tenant.\n \n \n \n \n \n {logSearchEnabled && (\n \n \n ) => {\n updateField(\n \"logSearchSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Log Search Storage Class\"\n value={logSearchSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n \n ) => {\n updateField(\"logSearchVolumeSize\", e.target.value);\n cleanValidation(\"log_search_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={logSearchVolumeSize}\n required\n error={validationErrors[\"log_search_volume_size\"] || \"\"}\n min=\"0\"\n />\n
\n \n\n \n \n SecurityContext for LogSearch\n \n\n \n \n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"logSearch_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"logSearch_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"logSearch_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n \n SecurityContext for PostgreSQL\n \n\n \n \n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchPostgresSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"postgres_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchPostgresSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"postgres_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchPostgresSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"postgres_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(ConfigLogSearch);\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, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n prometheusEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigPrometheus = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses\n );\n const prometheusEnabled = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusEnabled\n );\n const prometheusVolumeSize = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusVolumeSize\n );\n const prometheusSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSelectedStorageClass\n );\n const prometheusImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusImage\n );\n const prometheusSidecarImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSidecarImage\n );\n const prometheusInitImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusInitImage\n );\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext\n );\n const prometheusSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greater than 0`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsUser\",\n required: true,\n value: prometheusSecurityContext.runAsUser,\n customValidation:\n prometheusSecurityContext.runAsUser === \"\" ||\n parseInt(prometheusSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsGroup\",\n required: true,\n value: prometheusSecurityContext.runAsGroup,\n customValidation:\n prometheusSecurityContext.runAsGroup === \"\" ||\n parseInt(prometheusSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_fsGroup\",\n required: true,\n value: prometheusSecurityContext.fsGroup,\n customValidation:\n prometheusSecurityContext.fsGroup === \"\" ||\n parseInt(prometheusSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n dispatch,\n prometheusEnabled,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n tenantSecurityContext,\n prometheusSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterPrometheus = storageClasses.filter(\n (item: any) => item.value === prometheusSelectedStorageClass\n );\n if (filterPrometheus.length === 0) {\n updateField(\"prometheusSelectedStorageClass\", \"default\");\n }\n }\n }, [\n prometheusSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n \n Monitoring \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"prometheusEnabled\", checked);\n }}\n description=\"\"\n />\n \n \n \n \n A small Prometheus will be deployed to keep metrics about the tenant.\n \n \n \n \n \n \n {prometheusEnabled && (\n \n \n ) => {\n updateField(\n \"prometheusSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Storage Class\"\n value={prometheusSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n \n ) => {\n updateField(\"prometheusVolumeSize\", e.target.value);\n cleanValidation(\"prometheus_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={prometheusVolumeSize}\n required\n error={validationErrors[\"prometheus_volume_size\"] || \"\"}\n min=\"0\"\n />\n
\n \n \n \n SecurityContext\n \n \n \n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={prometheusSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\n \"prometheus_securityContext_runAsGroup\"\n );\n }}\n label=\"Run As Group\"\n value={prometheusSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={prometheusSecurityContext.fsGroup}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_fsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(ConfigPrometheus);\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 .\nexport const requiredPages = [\n \"nameTenant\",\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n];\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 { Button } from \"@mui/material\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { requiredPages } from \"./common\";\nimport { createTenantAsync } from \"./thunks/createTenantThunk\";\n\nconst CreateTenantButton = () => {\n const dispatch = useAppDispatch();\n\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant\n );\n\n const validPages = useSelector(\n (state: AppState) => state.createTenant.validPages\n );\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n\n const enabled =\n !addSending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v));\n\n return (\n {\n dispatch(createTenantAsync());\n }}\n disabled={!enabled}\n key={`button-AddTenant-Create`}\n >\n Create\n \n );\n};\n\nexport default CreateTenantButton;\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 CredentialsPrompt from \"../../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst NewTenantCredentials = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const showNewCredentials = useSelector(\n (state: AppState) => state.createTenant.showNewCredentials\n );\n const createdAccount = useSelector(\n (state: AppState) => state.createTenant.createdAccount\n );\n\n return (\n \n {showNewCredentials && (\n {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n }}\n entity=\"Tenant\"\n />\n )}\n \n );\n};\n\nexport default NewTenantCredentials;\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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n modalBasic,\n settingsCommon,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport {\n IWizardButton,\n IWizardElement,\n} from \"../../Common/GenericWizard/types\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport Configure from \"./Steps/Configure\";\nimport IdentityProvider from \"./Steps/IdentityProvider\";\nimport Security from \"./Steps/Security\";\nimport Encryption from \"./Steps/Encryption\";\nimport Affinity from \"./Steps/Affinity\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport Images from \"./Steps/Images\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport BackLink from \"../../../../common/BackLink\";\nimport TenantResources from \"./Steps/TenantResources/TenantResources\";\nimport ConfigLogSearch from \"./Steps/ConfigLogSearch\";\nimport ConfigPrometheus from \"./Steps/ConfigPrometheus\";\nimport {\n IMkEnvs,\n resourcesConfigurations,\n} from \"./Steps/TenantResources/utils\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { StorageIcon } from \"../../../../icons\";\nimport { selFeatures } from \"../../consoleSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport CreateTenantButton from \"./CreateTenantButton\";\nimport NewTenantCredentials from \"./NewTenantCredentials\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n pageBox: {\n border: \"1px solid #EAEAEA\",\n },\n ...modalBasic,\n ...wizardCommon,\n ...settingsCommon,\n })\n);\n\nconst AddTenant = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const features = useSelector(selFeatures);\n\n // Fields\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant\n );\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n },\n };\n\n const createButton: IWizardButton = {\n componentRender: ,\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configure\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Images\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Identity Provider\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Security\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Encryption\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Audit Log\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Monitoring\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n let filteredWizardSteps = wizardSteps;\n\n return (\n \n \n {\n dispatch(resetAddTenantForm());\n }}\n />\n }\n />\n\n \n {addSending && (\n \n \n \n )}\n \n \n \n {formRender === IMkEnvs.aws && (\n \n }\n help={\n \n Performance Optimized : Uses the gp3 EBS storage\n class class configured at 1,000Mi/s throughput and 16,000\n IOPS, however the minimum volume size for this type of EBS\n volume is 32Gi .\n \n \n Storage Optimized : Uses the sc1 EBS storage\n class, however the minimum volume size for this type of EBS\n volume is \n 16Ti to unlock their maximum throughput speed of\n 250Mi/s.\n \n }\n />\n \n )}\n \n \n );\n};\n\nexport default AddTenant;\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"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","props","xmlns","fill","viewBox","id","d","transform","clipPath","flexFlow","padding","inputWithCopy","background","inputLabel","fieldBasic","label","value","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","style","body","appendChild","click","removeChild","warningBlock","color","margin","credentialTitle","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","titleIcon","Grid","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","undefined","WarnIcon","RBIconButton","consoleExtras","itemMap","url","api","path","JSON","stringify","icon","variant","length","allCredentials","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","fileInputField","fileInputStyles","textBoxContainer","onChange","name","disabled","required","error","accept","useState","showFileSelector","setShowSelector","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","placement","HelpIcon","type","e","fileName","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","deleteDialogStyles","content","customDialogSize","snackBarCommon","children","wideLimit","noContentPadding","dispatch","useAppDispatch","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","event","reason","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","configSectionItem","tenantCustomizationFields","marginLeft","containerItem","fieldGroup","createTenantCommon","responsiveSectionItem","wrapperContainer","overlayAction","modalBasic","wizardCommon","exposeMinIO","createTenant","fields","configure","exposeConsole","setDomains","consoleDomain","minioDomains","tenantCustom","tenantSecurityContext","validationErrors","setValidationErrors","updateField","useCallback","field","updateAddField","pageName","customAccountValidation","fieldKey","runAsUser","customValidation","parseInt","customValidationMessage","runAsGroup","fsGroup","minioExtraValidations","validation","pattern","customPatternMessage","commonVal","commonFormValidation","isPageValid","valid","Object","keys","cleanValidation","fieldName","clearValidationError","Paper","paperWrapper","headerElement","h3Section","descriptionText","FormSwitchWrapper","checked","InputBoxWrapper","placeholder","domain","copyDomains","updateMinIODomain","addNewMinIODomain","Add","removeMinIODomain","RemoveIcon","multiContainer","min","runAsNonRoot","useStyles","makeStyles","adUserDnRows","buttonTray","formFieldStyles","idpSelection","identityProvider","ADURL","ADSkipTLS","ADServerInsecure","ADGroupSearchBaseDN","ADGroupSearchFilter","ADUserDNs","ADGroupDNs","ADLookupBindDN","ADLookupBindPassword","ADUserDNSearchBaseDN","ADUserDNSearchFilter","ADServerStartTLS","customIDPValidation","Fragment","formFieldRow","Typography","gutterBottom","_","setIDPADUsrAtIndex","userDN","addIDPADUsrAtIndex","removeIDPADUsrAtIndex","Delete","setIDPADGroupAtIndex","addIDPADGroupAtIndex","removeIDPADGroupAtIndex","openIDConfigurationURL","openIDClientID","openIDSecretID","openIDCallbackURL","openIDClaimName","openIDScopes","shortened","gridTemplateColumns","gridGap","accessKeys","secretKeys","i","push","setIDPUsrAtIndex","setIDPPwdAtIndex","addIDPNewKeyPair","removeIDPKeyPairAtIndex","getRandomString","Casino","protocolRadioOptions","RadioGroupSelector","currentSelection","setIDP","selectorOptions","FeatureItem","description","Box","sx","fontStyle","namespace","nameTenant","tenantName","flex","CertificateIcon","href","rel","minioCertificateRows","justifyContent","borderBottom","fileItem","minWidth","minioCertsContainer","minioCACertsRow","rowActions","enableTLS","security","enableAutoCert","enableCustomCerts","minioCertificates","certificates","caCertificates","spacing","SectionTitle","keyPair","FileSelector","encodedValue","addFileToKeyPair","key","cert","addKeyPair","deleteKeyPair","addFileToCaCertificates","addCaCertificate","deleteCaCertificate","vaultEndpoint","encryption","vaultEngine","vaultNamespace","vaultPrefix","vaultAppRoleEngine","vaultId","vaultSecret","vaultRetry","vaultPing","vaultCertificate","vaultCA","encryptionValidation","mutualTlsConfig","addFileVaultCert","addFileVaultCa","azureEndpoint","azureTenantID","azureClientID","azureClientSecret","gcpProjectID","gcpEndpoint","gcpClientEmail","gcpClientID","gcpPrivateKeyID","gcpPrivateKey","gemaltoCA","gemaltoEndpoint","gemaltoToken","gemaltoDomain","gemaltoRetry","addFileGemaltoCa","awsEndpoint","awsRegion","awsKMSKey","awsAccessKey","awsSecretKey","awsToken","encryptionTypeOptions","rightSpacer","responsiveContainer","replicas","enableEncryption","encryptionType","enableCustomCertsForKES","serverCertificate","clientCertificate","kesSecurityContext","encryptionAvailable","filter","encoded_key","encoded_cert","indicatorLabels","hrClass","addFileServerCert","addFileClientCert","affinityConfigField","affinityFieldLabel","radioField","affinityLabelKey","affinityLabelValue","affinityRow","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","loading","setLoading","keyValueMap","setKeyValueMap","keyOptions","setKeyOptions","then","res","k","catch","err","setModalErrorSnackMessage","vl","kvp","kvs","a","indexOf","join","splittedLabels","forEach","splitItem","updateToleration","alterToleration","setTolerationInfo","tolerationValue","affinityHelpText","SelectWrapper","newKey","newLKP","arrCp","setKeyValuePairs","options","v","AddIcon","tol","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","addNewToleration","removeToleration","customImage","imageName","customDockerhub","imageRegistry","imageRegistryUsername","imageRegistryPassword","prometheusCustom","prometheusEnabled","logSearchCustom","logSearchEnabled","logSearchVolumeSize","prometheusVolumeSize","logSearchSelectedStorageClass","logSearchImage","kesImage","logSearchPostgresImage","logSearchPostgresInitImage","prometheusSelectedStorageClass","prometheusImage","prometheusSidecarImage","prometheusInitImage","table","nodes","tenantSize","memoryNode","resourcesMemoryRequest","ecParity","distribution","ecParityCalc","cpuToUse","resourcesCPURequest","integrationSelection","usableInformation","storageFactors","find","erasureCode","Divider","Table","TableBody","TableRow","TableCell","scope","align","typeSelection","storageClass","disks","niceBytes","pvSize","persistentVolumes","rawCapacity","maxCapacity","Math","floor","maxFailureTolerations","CPU","memory","drivesPerServer","driveSize","sizeUnit","wrapText","wordWrap","addNamespaceLoading","addNSLoading","addNamespaceOpen","addNSOpen","ConfirmDialog","confirmText","confirmButtonProps","isOpen","isLoading","onConfirm","createNamespaceAsync","closeAddNSModal","confirmationContent","LinearProgress","DialogContentText","formToRender","showNSCreateButton","namespaceError","openAddNSConfirm","debounceNamespace","useMemo","debounce","validateNamespaceAsync","cancel","setNamespace","overlayId","overlayIcon","openAddNSModal","NameTenantField","tenantNameError","setTenantName","sizePreview","selectedStorageClass","selectedStorageType","storageClasses","features","selFeatures","isValid","IMkEnvs","md","minHeight","setStorageType","storageType","mkPanelConfigurations","TenantSize","formRender","setFormRender","setConfiguration","resourcesConfigurations","includes","logSearchEnabledFields","fieldSpaceTop","logSearchSecurityContext","logSearchPostgresSecurityContext","configureSTClasses","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","prometheusEnabledFields","prometheusSecurityContext","requiredPages","addSending","addingTenant","validPages","enabled","every","Button","createTenantAsync","navigate","useNavigate","showNewCredentials","createdAccount","CredentialsPrompt","resetAddTenantForm","pageBox","settingsCommon","cancelButton","action","createButton","componentRender","filteredWizardSteps","buttons","advancedOnly","PageHeader","BackLink","to","executeOnClick","PageLayout","GenericWizard","wizardSteps","HelpBox","errorBlock","palette","main","withBreak"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1260.add10538.chunk.js b/portal-ui/build/static/js/1260.add10538.chunk.js
new file mode 100644
index 000000000..a268ac1c2
--- /dev/null
+++ b/portal-ui/build/static/js/1260.add10538.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1260],{23804:function(e,n,t){t(72791);var r=t(11135),a=t(25787),i=t(61889),s=t(80184);n.Z=(0,a.Z)((function(e){return(0,r.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,r=e.title,a=e.help;return(0,s.jsx)("div",{className:n.root,children:(0,s.jsxs)(i.ZP,{container:!0,children:[(0,s.jsxs)(i.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,r]}),(0,s.jsx)(i.ZP,{item:!0,xs:12,className:n.helpText,children:a})]})})}))},46707:function(e,n,t){var r=t(1413),a=(t(72791),t(80184));n.Z=function(e){return(0,a.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"certificate_svg__a",children:(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 2156",fill:"#07193e",d:"M0 0h256v222.048H0z"})})}),(0,a.jsxs)("g",{"data-name":"Grupo 4763",transform:"translate(0 17)",clipPath:"url(#certificate_svg__a)",fill:"#07193e",children:[(0,a.jsx)("path",{"data-name":"Trazado 8152",d:"M240-.002H16a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h120l4.64-5.6 7.44-9.12A66.72 66.72 0 0 1 256 98.958v-82.96a16 16 0 0 0-16-16m-130.96 149.7H47.3a7.3 7.3 0 1 1 0-14.592h61.74a7.3 7.3 0 1 1 0 14.592m0-56H47.3a7.3 7.3 0 1 1 0-14.592h61.74a7.3 7.3 0 0 1 0 14.592m66.96-39.3a6.419 6.419 0 0 1-6.4 6.4H46.4a6.419 6.419 0 0 1-6.4-6.4v-1.792a6.419 6.419 0 0 1 6.4-6.4h123.2a6.419 6.419 0 0 1 6.4 6.4Z"}),(0,a.jsx)("path",{"data-name":"Trazado 8153",d:"M256 137.486a50.96 50.96 0 1 0-86.16 36.72l-15.52 18.96 7.2 28.88 29.28-35.68a50.018 50.018 0 0 0 28.4 0l29.28 35.68 7.2-28.88-15.52-18.96a50.75 50.75 0 0 0 15.84-36.72m-50.928 29.688a29.688 29.688 0 0 1-.072-59.376h.072a29.688 29.688 0 0 1 0 59.376"})]}),(0,a.jsx)("path",{"data-name":"Rect\\xE1ngulo 2157",fill:"none",d:"M0 0h256v256H0z"})]}))}},37798:function(e,n,t){t.r(n),t.d(n,{default:function(){return b}});var r=t(1413),a=t(72791),i=t(26181),s=t.n(i),o=t(11135),l=t(25787),c=t(56028),u=t(61889),d=t(77196),m=t(63466),f=t(85531),h=t(78029),g=t.n(h),x=t(38734),p=t(23814),v=t(80184),y=(0,l.Z)((function(e){return(0,o.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,r.Z)((0,r.Z)({},p.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,r=e.value,a=void 0===r?"":r,i=e.classes,s=void 0===i?{}:i;return(0,v.jsxs)("div",{className:s.container,children:[(0,v.jsxs)("div",{className:s.inputLabel,children:[t,":"]}),(0,v.jsx)("div",{className:s.inputWithCopy,children:(0,v.jsx)(d.Z,{value:a,readOnly:!0,endAdornment:(0,v.jsx)(m.Z,{position:"end",children:(0,v.jsx)(g(),{text:a,children:(0,v.jsx)(f.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,v.jsx)(x.TIy,{})})})})})})]})})),j=t(89357),Z=t(40603),C=function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+n),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},b=(0,l.Z)((function(e){return(0,o.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"}})}))((function(e){var n=e.classes,t=e.newServiceAccount,i=e.open,o=e.closeModal,l=e.entity;if(!t)return null;var d=s()(t,"console",null),m=s()(t,"idp",!1);return(0,v.jsx)(c.Z,{modalOpen:i,onClose:function(){o()},title:(0,v.jsx)("div",{className:n.promptTitle,children:(0,v.jsxs)("div",{children:["New ",l," Created"]})}),titleIcon:(0,v.jsx)(x.tVY,{}),children:(0,v.jsxs)(u.ZP,{container:!0,children:[(0,v.jsxs)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",l," has been created with the following details:",!m&&d&&(0,v.jsx)(a.Fragment,{children:(0,v.jsxs)(u.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,v.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(d)&&d.map((function(e,n){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(y,{label:"Access Key",value:e.accessKey}),(0,v.jsx)(y,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(d)&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(y,{label:"Access Key",value:d.accessKey}),(0,v.jsx)(y,{label:"Secret Key",value:d.secretKey})]})]})}),(null===d||void 0===d)&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(y,{label:"Access Key",value:t.accessKey||""}),(0,v.jsx)(y,{label:"Secret Key",value:t.secretKey||""})]}),m?(0,v.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,v.jsxs)("div",{className:n.warningBlock,children:[(0,v.jsx)(j.Z,{}),(0,v.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,v.jsx)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:!m&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Z.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:n.buttonSpacer,onClick:function(){var e={};d?e=Array.isArray(d)?d.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:d.url,accessKey:d.accessKey,secretKey:d.secretKey,api:"s3v4",path:"auto"}:e={url:t.url,accessKey:t.accessKey,secretKey:t.secretKey,api:"s3v4",path:"auto"};C("credentials.json",JSON.stringify((0,r.Z)({},e)))},icon:(0,v.jsx)(x._8t,{}),variant:"contained",color:"primary"}),Array.isArray(d)&&d.length>1&&(0,v.jsx)(Z.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:n.buttonSpacer,onClick:function(){var e={};d&&(e=d.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));C("all_credentials.json",JSON.stringify((0,r.Z)({},e)))},icon:(0,v.jsx)(x._8t,{}),variant:"contained",color:"primary"})]})})]})})}))},54639:function(e,n,t){t.d(n,{Z:function(){return j}});var r=t(29439),a=t(1413),i=t(72791),s=t(26181),o=t.n(s),l=t(61889),c=t(30829),u=t(20068),d=t(13400),m=t(99663),f=t(86711),h=t(11135),g=t(25787),x=t(23814),p=t(84570),v=t(22512),y=t(80184),j=(0,g.Z)((function(e){return(0,h.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},x.YI),x.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},x.bV),{},{inputLabel:(0,a.Z)((0,a.Z)({},x.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,a.Z)((0,a.Z)({},x.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,t=e.classes,a=e.onChange,s=e.id,h=e.name,g=e.disabled,x=void 0!==g&&g,j=e.tooltip,Z=void 0===j?"":j,C=e.required,b=e.error,_=void 0===b?"":b,S=e.accept,N=void 0===S?"":S,A=e.value,P=void 0===A?"":A,T=(0,i.useState)(!1),I=(0,r.Z)(T,2),k=I[0],w=I[1];return(0,y.jsx)(i.Fragment,{children:(0,y.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(t.fileInputField," ").concat(t.fieldBottom," ").concat(t.fieldContainer," ").concat(""!==_?t.errorInField:""),children:[""!==n&&(0,y.jsxs)(c.Z,{htmlFor:s,className:"".concat(""!==_?t.fieldLabelError:""," ").concat(t.inputLabel),children:[(0,y.jsxs)("span",{children:[n,C?"*":""]}),""!==Z&&(0,y.jsx)("div",{className:t.tooltipContainer,children:(0,y.jsx)(u.Z,{title:Z,placement:"top-start",children:(0,y.jsx)("div",{className:t.tooltip,children:(0,y.jsx)(p.Z,{})})})})]}),k||""===P?(0,y.jsxs)("div",{className:t.textBoxContainer,children:[(0,y.jsx)("input",{type:"file",name:h,onChange:function(e){var n=o()(e,"target.files[0].name","");!function(e,n){var t=e.target.files[0],r=new FileReader;r.readAsDataURL(t),r.onload=function(){var e=r.result;if(e){var t=e.toString().split("base64,");2===t.length&&n(t[1])}}}(e,(function(e){a(e,n)}))},accept:N,required:C,disabled:x,className:t.fileInputField}),""!==P&&(0,y.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(f.Z,{})}),""!==_&&(0,y.jsx)(v.Z,{errorMessage:_})]}):(0,y.jsxs)("div",{className:t.fileReselect,children:[(0,y.jsx)("div",{className:t.valueString,children:P}),(0,y.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(m.Z,{})})]})]})})}))},56028:function(e,n,t){var r=t(29439),a=t(1413),i=t(72791),s=t(60364),o=t(13400),l=t(55646),c=t(5574),u=t(65661),d=t(39157),m=t(11135),f=t(25787),h=t(23814),g=t(25469),x=t(29823),p=t(28057),v=t(87995),y=t(80184);n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},h.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,f=e.children,h=e.classes,j=e.wideLimit,Z=void 0===j||j,C=e.noContentPadding,b=e.titleIcon,_=void 0===b?null:b,S=(0,g.TL)(),N=(0,i.useState)(!1),A=(0,r.Z)(N,2),P=A[0],T=A[1],I=(0,s.v9)((function(e){return e.system.modalSnackBar}));(0,i.useEffect)((function(){S((0,v.MK)(""))}),[S]),(0,i.useEffect)((function(){if(I){if(""===I.message)return void T(!1);"error"!==I.type&&T(!0)}}),[I]);var k=Z?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return I&&(w=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(w=I.message)),(0,y.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:h},k),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:h.root,children:[(0,y.jsxs)(u.Z,{className:h.title,children:[(0,y.jsxs)("div",{className:h.titleText,children:[_," ",m]}),(0,y.jsx)("div",{className:h.closeContainer,children:(0,y.jsx)(o.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,y.jsx)(x.Z,{})})})]}),(0,y.jsx)(p.Z,{isModal:!0}),(0,y.jsx)(l.Z,{open:P,className:h.snackBarModal,onClose:function(){T(!1),S((0,v.MK)(""))},message:w,ContentProps:{className:"".concat(h.snackBar," ").concat(I&&"error"===I.type?h.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,y.jsx)(d.Z,{className:C?"":h.content,children:f})]}))}))},41260:function(e,n,t){t.r(n),t.d(n,{default:function(){return Xe}});var r=t(29439),a=t(1413),i=t(72791),s=t(26181),o=t.n(s),l=t(60364),c=t(61889),u=t(40986),d=t(11135),m=t(23814),f=t(28371),h=t(25469),g=t(93433),x=t(25787),p=t(10703),v=t(13400),y=t(84741),j=t(40968),Z=t(37516),C=t(21435),b=t(42419),_=t(51979),S=t(76773),N=t(90673),A=t(80184),P=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,marginBottom:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},wrapperContainer:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,h.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeMinIO})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeConsole})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.setDomains})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.consoleDomain})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.minioDomains})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),P=(0,i.useState)({}),T=(0,r.Z)(P,2),I=T[0],k=T[1],w=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];if(f&&(e=[].concat((0,g.Z)(e),[{fieldKey:"tenant_securityContext_runAsUser",required:!0,value:x.runAsUser,customValidation:""===x.runAsUser||parseInt(x.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"tenant_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===x.runAsGroup||parseInt(x.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"tenant_securityContext_fsGroup",required:!0,value:x.fsGroup,customValidation:""===x.fsGroup||parseInt(x.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}])),u){var n=m.map((function(e,n){return{fieldKey:"minio-domain-".concat(n.toString()),required:!1,value:e,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/,customPatternMessage:"MinIO domain is not in the form of http|https://subdomain.domain"}}));e=[].concat((0,g.Z)(e),(0,g.Z)(n),[{fieldKey:"console_domain",required:!1,value:d,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/,customPatternMessage:"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2"}])}var r=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(r).length})),k(r)}),[t,f,x,u,d,m]);var R=function(e){k((0,y.he)(I,e))};return(0,A.jsxs)(p.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)("h3",{className:n.h3Section,children:"Configure"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Basic configurations for tenant management"})]}),(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)("h3",{className:n.h3Section,children:"Services"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Whether the tenant's services should request an external IP via LoadBalancer service type."})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)(Z.Z,{value:"expose_minio",id:"expose_minio",name:"expose_minio",checked:s,onChange:function(e){var n=e.target.checked;w("exposeMinIO",n)},label:"Expose MinIO Service"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)(Z.Z,{value:"expose_console",id:"expose_console",name:"expose_console",checked:o,onChange:function(e){var n=e.target.checked;w("exposeConsole",n)},label:"Expose Console Service"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)(Z.Z,{value:"custom_domains",id:"custom_domains",name:"custom_domains",checked:u,onChange:function(e){var n=e.target.checked;w("setDomains",n)},label:"Set Custom Domains"})}),u&&(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Custom Domains for MinIO"}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:[(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(C.Z,{id:"console_domain",name:"console_domain",onChange:function(e){w("consoleDomain",e.target.value),R("tenant_securityContext_runAsUser")},label:"Console Domain",value:d,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",error:I.console_domain||""})}),(0,A.jsxs)("div",{children:[(0,A.jsx)("h4",{children:"MinIO Domains"}),(0,A.jsx)("div",{className:"".concat(n.responsiveSectionItem),children:m.map((function(e,r){return(0,A.jsxs)("div",{className:"".concat(n.containerItem," ").concat(n.wrapperContainer),children:[(0,A.jsx)(C.Z,{id:"minio-domain-".concat(r.toString()),name:"minio-domain-".concat(r.toString()),onChange:function(e){!function(e,n){var t=(0,g.Z)(m);t[n]=e,w("minioDomains",t)}(e.target.value,r)},label:"MinIO Domain ".concat(r+1),value:e,placeholder:"Eg. http://subdomain.domain",error:I["minio-domain-".concat(r.toString())]||""}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){return t((0,S.x_)())},disabled:r!==m.length-1,children:(0,A.jsx)(b.Z,{})})}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){return t((0,S.JL)(r))},disabled:m.length<=1,children:(0,A.jsx)(_.Z,{})})})]},"minio-domain-key-".concat(r.toString()))}))})]})]})]})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)(Z.Z,{value:"tenantConfig",id:"tenant_configuration",name:"tenant_configuration",checked:f,onChange:function(e){var n=e.target.checked;w("tenantCustom",n)},label:"Security Context"})}),f&&(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for MinIO"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(C.Z,{type:"number",id:"tenant_securityContext_runAsUser",name:"tenant_securityContext_runAsUser",onChange:function(e){w("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{runAsUser:e.target.value})),R("tenant_securityContext_runAsUser")},label:"Run As User",value:x.runAsUser,required:!0,error:I.tenant_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(C.Z,{type:"number",id:"tenant_securityContext_runAsGroup",name:"tenant_securityContext_runAsGroup",onChange:function(e){w("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{runAsGroup:e.target.value})),R("tenant_securityContext_runAsGroup")},label:"Run As Group",value:x.runAsGroup,required:!0,error:I.tenant_securityContext_runAsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(C.Z,{type:"number",id:"tenant_securityContext_fsGroup",name:"tenant_securityContext_fsGroup",onChange:function(e){w("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{fsGroup:e.target.value})),R("tenant_securityContext_fsGroup")},label:"FsGroup",value:x.fsGroup,required:!0,error:I.tenant_securityContext_fsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(N.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:x.fsGroupChangePolicy,onChange:function(e){w("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(Z.Z,{value:"tenantSecurityContextRunAsNonRoot",id:"tenant_securityContext_runAsNonRoot",name:"tenant_securityContext_runAsNonRoot",checked:x.runAsNonRoot,onChange:function(e){var n=e.target.checked;w("tenantSecurityContext",(0,a.Z)((0,a.Z)({},x),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})})]})})),T=t(83679),I=t(20890),k=t(20068),w=t(72455),R=t(27247),F=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({adUserDnRows:{display:"flex",marginBottom:10},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),D=function(){var e=(0,h.TL)(),n=F(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADSkipTLS})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerInsecure})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchBaseDN})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchFilter})),m=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNs})),f=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupDNs})),x=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindDN})),p=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindPassword})),_=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchBaseDN})),N=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchFilter})),P=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerStartTLS})),T=(0,i.useState)({}),w=(0,r.Z)(T,2),D=w[0],G=w[1],K=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),E=function(e){G((0,y.he)(D,e))};return(0,i.useEffect)((function(){var n=[];"AD"===t&&(n=[].concat((0,g.Z)(n),[{fieldKey:"AD_URL",required:!0,value:a},{fieldKey:"ad_lookupBindDN",required:!0,value:x}]));var r=(0,j.R)(n);e((0,S.NO)({pageName:"identityProvider",valid:0===Object.keys(r).length})),G(r)}),[x,t,a,u,d,m,f,e]),(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){K("ADURL",e.target.value),E("AD_URL")},label:"LDAP Server Address",value:a,placeholder:"ldap-server:636",error:D.AD_URL||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(Z.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:s,onChange:function(e){var n=e.target.checked;K("ADSkipTLS",n)},label:"Skip TLS Verification"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(Z.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:o,onChange:function(e){var n=e.target.checked;K("ADServerInsecure",n)},label:"Server Insecure"})}),o?(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)(I.Z,{className:n.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,A.jsx)("br",{})]}):null,(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(Z.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:P,onChange:function(e){var n=e.target.checked;K("ADServerStartTLS",n)},label:"Start TLS connection to AD/LDAP server"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){K("ADLookupBindDN",e.target.value),E("ad_lookupBindDN")},label:"Lookup Bind DN",value:x,placeholder:"cn=admin,dc=min,dc=io",error:D.ad_lookupBindDN||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){K("ADLookupBindPassword",e.target.value)},label:"Lookup Bind Password",value:p,placeholder:"admin"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){K("ADUserDNSearchBaseDN",e.target.value)},label:"User DN Search Base DN",value:_,placeholder:"dc=min,dc=io"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){K("ADUserDNSearchFilter",e.target.value)},label:"User DN Search Filter",value:N,placeholder:"(sAMAcountName=%s)"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){K("ADGroupSearchBaseDN",e.target.value)},label:"Group Search Base DN",value:u,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){K("ADGroupSearchFilter",e.target.value)},label:"Group Search Filter",value:d,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})}),(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"List of user DNs (Distinguished Names) to be Tenant Administrators"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:m.map((function(t,r){return(0,A.jsx)(i.Fragment,{children:(0,A.jsxs)("div",{className:n.adUserDnRows,children:[(0,A.jsx)(C.Z,{id:"ad-userdn-".concat(r.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(r.toString()),value:m[r],onChange:function(n){e((0,S.hK)({index:r,userDN:n.target.value})),E("ad-userdn-".concat(r.toString()))},index:r,error:D["ad-userdn-".concat(r.toString())]||""},"csv-ad-userdn-".concat(r.toString())),(0,A.jsxs)("div",{className:n.buttonTray,children:[(0,A.jsx)(k.Z,{title:"Add User","aria-label":"add",children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){e((0,S.Y$)())},children:(0,A.jsx)(b.Z,{})})}),(0,A.jsx)(k.Z,{title:"Remove","aria-label":"add",children:(0,A.jsx)(v.Z,{size:"small",style:{marginLeft:16},onClick:function(){m.length>1&&e((0,S.GU)(r))},children:(0,A.jsx)(R.Z,{})})})]})]})},"identityField-".concat(r.toString()))}))})]}),(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"List of group DNs (Distinguished Names) to be Tenant Administrators"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:f.map((function(t,r){return(0,A.jsx)(i.Fragment,{children:(0,A.jsxs)("div",{className:n.adUserDnRows,children:[(0,A.jsx)(C.Z,{id:"ad-groupdn-".concat(r.toString()),label:"",placeholder:"",name:"ad-groupdn-".concat(r.toString()),value:f[r],onChange:function(n){e((0,S.in)({index:r,userDN:n.target.value})),E("ad-groupdn-".concat(r.toString()))},index:r,error:D["ad-groupdn-".concat(r.toString())]||""},"csv-ad-groupdn-".concat(r.toString())),(0,A.jsxs)("div",{className:n.buttonTray,children:[(0,A.jsx)(k.Z,{title:"Add Group","aria-label":"add",children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){e((0,S.Fe)())},children:(0,A.jsx)(b.Z,{})})}),(0,A.jsx)(k.Z,{title:"Remove","aria-label":"add",children:(0,A.jsx)(v.Z,{size:"small",style:{marginLeft:16},onClick:function(){f.length>1&&e((0,S.Hu)(r))},children:(0,A.jsx)(R.Z,{})})})]})]})},"identityField-".concat(r.toString()))}))})]})]})},G=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),K=function(){var e=(0,h.TL)(),n=G(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDConfigurationURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDSecretID})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDCallbackURL})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClaimName})),m=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDScopes})),f=(0,i.useState)({}),x=(0,r.Z)(f,2),p=x[0],v=x[1],Z=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),b=function(e){v((0,y.he)(p,e))};return(0,i.useEffect)((function(){var n=[];"OpenID"===t&&(n=[].concat((0,g.Z)(n),[{fieldKey:"openID_CONFIGURATION_URL",required:!0,value:a},{fieldKey:"openID_clientID",required:!0,value:s},{fieldKey:"openID_secretID",required:!0,value:o},{fieldKey:"openID_claimName",required:!0,value:d}]));var r=(0,j.R)(n);e((0,S.NO)({pageName:"identityProvider",valid:0===Object.keys(r).length})),v(r)}),[t,s,o,a,d,e]),(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){Z("openIDConfigurationURL",e.target.value),b("openID_CONFIGURATION_URL")},label:"Configuration URL",value:a,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:p.openID_CONFIGURATION_URL||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){Z("openIDClientID",e.target.value),b("openID_clientID")},label:"Client ID",value:s,error:p.openID_clientID||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"openID_secretID",name:"openID_secretID",onChange:function(e){Z("openIDSecretID",e.target.value),b("openID_secretID")},label:"Secret ID",value:o,error:p.openID_secretID||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"openID_callbackURL",name:"openID_callbackURL",onChange:function(e){Z("openIDCallbackURL",e.target.value),b("openID_callbackURL")},label:"Callback URL",value:u,placeholder:"https://your-console-endpoint:9443/oauth_callback",error:p.openID_callbackURL||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){Z("openIDClaimName",e.target.value),b("openID_claimName")},label:"Claim Name",value:d,error:p.openID_claimName||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){Z("openIDScopes",e.target.value),b("openID_scopes")},label:"Scopes",value:m})})]})},E=t(22918),L=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},shortened:{gridTemplateColumns:"auto auto 50px 50px",display:"grid",gridGap:15,marginBottom:10,"& input":{fontWeight:400}}},m.QV),m.DF),m.oO),m.AK))})),O=function(){var e=(0,h.TL)(),n=L(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.accessKeys})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.secretKeys})),o=(0,i.useState)({}),c=(0,r.Z)(o,2),u=c[0],d=c[1],m=function(e){d((0,y.he)(u,e))};return(0,i.useEffect)((function(){var n=[];if("Built-in"===t){n=(0,g.Z)(n);for(var r=0;r"})),n=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.tenantName||""}));return(0,A.jsx)(B.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:(0,A.jsxs)(B.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,A.jsx)(W,{icon:(0,A.jsx)(H.Z,{}),description:"TLS Certificates Warning"}),(0,A.jsxs)(B.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:["Automatic certificate generation is not enabled.",(0,A.jsx)("br",{}),(0,A.jsx)("br",{}),"If you wish to continue only with ",(0,A.jsx)("b",{children:"custom certificates"})," make sure they are valid for the following internode hostnames, i.e.:",(0,A.jsx)("br",{}),(0,A.jsx)("br",{}),(0,A.jsxs)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:["minio.",e,(0,A.jsx)("br",{}),"minio.",e,".svc",(0,A.jsx)("br",{}),"minio.",e,".svc.",(0,A.jsx)("br",{}),"*.",n,"-hl.",e,".svc.",(0,A.jsx)("br",{}),"*.",e,".svc."]}),(0,A.jsx)("br",{}),"Replace ",(0,A.jsx)("em",{children:""}),","," ",(0,A.jsx)("em",{children:""})," and",(0,A.jsx)("em",{children:""})," with the actual values for your MinIO tenant.",(0,A.jsx)("br",{}),(0,A.jsx)("br",{}),"You can learn more at our"," ",(0,A.jsx)("a",{href:"https://docs.min.io/minio/k8s/security/security.html?ref=op#id5",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})]})})},Q=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({minioCertificateRows:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1}},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},minioCertsContainer:{marginBottom:15},minioCACertsRow:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1,"& div label":{minWidth:50}}},rowActions:{display:"flex",justifyContent:"flex-end","@media (max-width: 900px)":{flex:1}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,h.TL)(),r=(0,l.v9)((function(e){return e.createTenant.fields.security.enableTLS})),a=(0,l.v9)((function(e){return e.createTenant.fields.security.enableAutoCert})),s=(0,l.v9)((function(e){return e.createTenant.fields.security.enableCustomCerts})),o=(0,l.v9)((function(e){return e.createTenant.certificates.minioCertificates})),u=(0,l.v9)((function(e){return e.createTenant.certificates.caCertificates})),d=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"security",field:e,value:n}))}),[t]);return(0,i.useEffect)((function(){t(r?a||s?(0,S.NO)({pageName:"security",valid:!0}):(0,S.NO)({pageName:"security",valid:!1}):(0,S.NO)({pageName:"security",valid:!0}))}),[r,a,s,t]),(0,A.jsxs)(p.Z,{className:n.paperWrapper,children:[(0,A.jsx)("div",{className:n.headerElement,children:(0,A.jsx)("h3",{className:n.h3Section,children:"Security"})}),(0,A.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(Z.Z,{value:"enableTLS",id:"enableTLS",name:"enableTLS",checked:r,onChange:function(e){var n=e.target.checked;d("enableTLS",n)},label:"TLS",description:"Securing all the traffic using TLS. This is required for Encryption Configuration"})}),r&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(Z.Z,{value:"enableAutoCert",id:"enableAutoCert",name:"enableAutoCert",checked:a,onChange:function(e){var n=e.target.checked;d("enableAutoCert",n)},label:"AutoCert",description:"The internode certificates will be generated and managed by MinIO Operator"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(Z.Z,{value:"enableCustomCerts",id:"enableCustomCerts",name:"enableCustomCerts",checked:s,onChange:function(e){var n=e.target.checked;d("enableCustomCerts",n)},label:"Custom Certificates",description:"Certificates used to terminated TLS at MinIO"})}),s&&(0,A.jsxs)(i.Fragment,{children:[!a&&(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)($,{})}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCertsContainer,children:[(0,A.jsx)(V.Z,{children:"MinIO Certificates"}),o.map((function(e,r){return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCertificateRows,children:[(0,A.jsxs)(c.ZP,{item:!0,xs:10,className:n.fileItem,children:[(0,A.jsx)(q.Z,{onChange:function(n,r){t((0,S.aN)({id:e.id,key:"cert",fileName:r,value:n}))},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert}),(0,A.jsx)(q.Z,{onChange:function(n,r){t((0,S.aN)({id:e.id,key:"key",fileName:r,value:n}))},accept:".key,.pem",id:"tlsKey",name:"tlsKey",label:"Key",value:e.key})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.Mg)())},disabled:r!==o.length-1,children:(0,A.jsx)(b.Z,{})})}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.XX)(e.id))},disabled:o.length<=1,children:(0,A.jsx)(_.Z,{})})})]})]},"minio-certs-".concat(e.id))}))]}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCertsContainer,children:[(0,A.jsx)(V.Z,{children:"MinIO CA Certificates"}),u.map((function(e,r){return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:n.minioCACertsRow,children:[(0,A.jsx)(c.ZP,{item:!0,xs:6,children:(0,A.jsx)(q.Z,{onChange:function(n,r){t((0,S.Eq)({id:e.id,key:"cert",fileName:r,value:n}))},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert})}),(0,A.jsx)(c.ZP,{item:!0,xs:6,children:(0,A.jsxs)("div",{className:n.rowActions,children:[(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.fK)())},disabled:r!==u.length-1,children:(0,A.jsx)(b.Z,{})})}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.IG)(e.id))},disabled:u.length<=1,children:(0,A.jsx)(_.Z,{})})})]})})]},"minio-CA-certs-".concat(e.id))}))]})]})]})]})]})})),Y=function(e){var n=e.children;return(0,A.jsx)("h1",{style:{margin:0,marginBottom:".8rem",fontSize:"1.3rem"},children:n})},J=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),X=function(){var e=(0,h.TL)(),n=J(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultEngine})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultNamespace})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultPrefix})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultAppRoleEngine})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultId})),m=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultSecret})),f=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultRetry})),x=(0,l.v9)((function(e){return e.createTenant.fields.encryption.vaultPing})),p=(0,l.v9)((function(e){return e.createTenant.certificates.vaultCertificate})),v=(0,l.v9)((function(e){return e.createTenant.certificates.vaultCA})),Z=(0,i.useState)({}),b=(0,r.Z)(Z,2),_=b[0],N=b[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,g.Z)(n),[{fieldKey:"vault_endpoint",required:!0,value:t},{fieldKey:"vault_id",required:!0,value:d},{fieldKey:"vault_secret",required:!0,value:m},{fieldKey:"vault_ping",required:!1,value:x,customValidation:parseInt(x)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:f,customValidation:parseInt(f)<0,customValidationMessage:"Value needs to be 0 or greater"}]);var r=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(r).length})),N(r)}),[t,a,d,m,x,f,e]);var P=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),T=function(e){N((0,y.he)(_,e))};return(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){P("vaultEndpoint",e.target.value),T("vault_endpoint")},label:"Endpoint",value:t,error:_.vault_endpoint||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){P("vaultEngine",e.target.value),T("vault_engine")},label:"Engine",value:a})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){P("vaultNamespace",e.target.value)},label:"Namespace",value:s})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){P("vaultPrefix",e.target.value)},label:"Prefix",value:o})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"App Role"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){P("vaultAppRoleEngine",e.target.value)},label:"Engine",value:u})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"vault_id",name:"vault_id",onChange:function(e){P("vaultId",e.target.value),T("vault_id")},label:"AppRole ID",value:d,error:_.vault_id||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"vault_secret",name:"vault_secret",onChange:function(e){P("vaultSecret",e.target.value),T("vault_secret")},label:"AppRole Secret",value:m,error:_.vault_secret||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){P("vaultRetry",e.target.value),T("vault_retry")},label:"Retry (Seconds)",value:f,error:_.vault_retry||""})})]})}),(0,A.jsx)(c.ZP,{container:!0,className:n.mutualTlsConfig,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Mutual TLS authentication (optional)"}),(0,A.jsx)(q.Z,{onChange:function(n,t){e((0,S.cl)({key:"key",fileName:t,value:n})),T("vault_key")},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:p.key}),(0,A.jsx)(q.Z,{onChange:function(n,t){e((0,S.cl)({key:"cert",fileName:t,value:n})),T("vault_cert")},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:p.cert}),(0,A.jsx)(q.Z,{onChange:function(n,t){e((0,S.fk)({fileName:t,value:n})),T("vault_ca")},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:v.cert})]})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,style:{marginTop:15},children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Status"}),(0,A.jsx)(C.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){P("vaultPing",e.target.value),T("vault_ping")},label:"Ping (Seconds)",value:x,error:_.vault_ping||""})]})})]})},ee=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),ne=function(){var e=(0,h.TL)(),n=ee(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureTenantID})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.azureClientSecret})),u=(0,i.useState)({}),d=(0,r.Z)(u,2),m=d[0],f=d[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,g.Z)(n),[{fieldKey:"azure_endpoint",required:!0,value:t},{fieldKey:"azure_tenant_id",required:!0,value:a},{fieldKey:"azure_client_id",required:!0,value:s},{fieldKey:"azure_client_secret",required:!0,value:o}]);var r=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(r).length})),f(r)}),[t,a,s,o,e]);var x=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),p=function(e){f((0,y.he)(m,e))};return(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){x("azureEndpoint",e.target.value),p("azure_endpoint")},label:"Endpoint",value:t,error:m.azure_endpoint||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){x("azureTenantID",e.target.value),p("azure_tenant_id")},label:"Tenant ID",value:a,error:m.azure_tenant_id||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){x("azureClientID",e.target.value),p("azure_client_id")},label:"Client ID",value:s,error:m.azure_client_id||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){x("azureClientSecret",e.target.value),p("azure_client_secret")},label:"Client Secret",value:o,error:m.azure_client_secret||""})})]})})]})},te=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),re=function(){var e=te(),n=(0,h.TL)(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpProjectID})),r=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientEmail})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKeyID})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKey})),d=(0,i.useCallback)((function(e,t){n((0,S.HM)({pageName:"encryption",field:e,value:t}))}),[n]);return(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){d("gcpProjectID",e.target.value)},label:"Project ID",value:t})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){d("gcpEndpoint",e.target.value)},label:"Endpoint",value:r})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:e.fieldGroup,children:[(0,A.jsx)("legend",{className:e.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){d("gcpClientEmail",e.target.value)},label:"Client Email",value:a})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){d("gcpClientID",e.target.value)},label:"Client ID",value:s})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){d("gcpPrivateKeyID",e.target.value)},label:"Private Key ID",value:o})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:e.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){d("gcpPrivateKey",e.target.value)},label:"Private Key",value:u})})]})})]})},ae=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),ie=function(){var e=(0,h.TL)(),n=ae(),t=(0,l.v9)((function(e){return e.createTenant.certificates.gemaltoCA})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoEndpoint})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoToken})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoDomain})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gemaltoRetry})),d=(0,i.useState)({}),m=(0,r.Z)(d,2),f=m[0],x=m[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,g.Z)(n),[{fieldKey:"gemalto_endpoint",required:!0,value:a},{fieldKey:"gemalto_token",required:!0,value:s},{fieldKey:"gemalto_domain",required:!0,value:o},{fieldKey:"gemalto_retry",required:!1,value:u,customValidation:parseInt(u)<0,customValidationMessage:"Value needs to be 0 or greater"}]);var t=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(t).length})),x(t)}),[a,s,o,u,e]);var p=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),v=function(e){x((0,y.he)(f,e))};return(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){p("gemaltoEndpoint",e.target.value),v("gemalto_endpoint")},label:"Endpoint",value:a,error:f.gemalto_endpoint||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){p("gemaltoToken",e.target.value),v("gemalto_token")},label:"Token",value:s,error:f.gemalto_token||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){p("gemaltoDomain",e.target.value),v("gemalto_domain")},label:"Domain",value:o,error:f.gemalto_domain||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){p("gemaltoRetry",e.target.value),v("gemalto_retry")},label:"Retry (seconds)",value:u,error:f.gemalto_retry||""})})]})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Custom CA Root certificate verification"}),(0,A.jsx)(q.Z,{onChange:function(n,t){e((0,S.MX)({fileName:t,value:n})),v("gemalto_ca")},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:t.cert})]})})]})},se=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.QV),m.DF),m.oO),m.AK))})),oe=function(){var e=(0,h.TL)(),n=se(),t=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsEndpoint})),a=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsRegion})),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsKMSKey})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsAccessKey})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsSecretKey})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.awsToken})),m=(0,i.useState)({}),f=(0,r.Z)(m,2),x=f[0],p=f[1];(0,i.useEffect)((function(){var n=[];n=[].concat((0,g.Z)(n),[{fieldKey:"aws_endpoint",required:!0,value:t},{fieldKey:"aws_region",required:!0,value:a},{fieldKey:"aws_accessKey",required:!0,value:o},{fieldKey:"aws_secretKey",required:!0,value:u}]);var r=(0,j.R)(n);e((0,S.NO)({pageName:"encryption",valid:0===Object.keys(r).length})),p(r)}),[t,a,u,o,e]);var v=(0,i.useCallback)((function(n,t){e((0,S.HM)({pageName:"encryption",field:n,value:t}))}),[e]),Z=function(e){p((0,y.he)(x,e))};return(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){v("awsEndpoint",e.target.value),Z("aws_endpoint")},label:"Endpoint",value:t,error:x.aws_endpoint||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"aws_region",name:"aws_region",onChange:function(e){v("awsRegion",e.target.value),Z("aws_region")},label:"Region",value:a,error:x.aws_region||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){v("awsKMSKey",e.target.value)},label:"KMS Key",value:s})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){v("awsAccessKey",e.target.value),Z("aws_accessKey")},label:"Access Key",value:o,error:x.aws_accessKey||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){v("awsSecretKey",e.target.value),Z("aws_secretKey")},label:"Secret Key",value:u,error:x.aws_secretKey||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"aws_token",name:"aws_token",onChange:function(e){v("awsToken",e.target.value)},label:"Token",value:d})})]})})]})},le=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({encryptionTypeOptions:{marginBottom:15},mutualTlsConfig:{marginTop:15,"& fieldset":{flex:1}},rightSpacer:{marginRight:15},responsiveContainer:{"@media (max-width: 900px)":{display:"flex",flexFlow:"column"}}},m.QV),m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,h.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.replicas})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableEncryption})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.encryptionType})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpProjectID})),m=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpEndpoint})),f=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientEmail})),x=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientID})),v=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKeyID})),b=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKey})),_=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableCustomCertsForKES})),P=(0,l.v9)((function(e){return e.createTenant.fields.security.enableAutoCert})),I=(0,l.v9)((function(e){return e.createTenant.fields.security.enableTLS})),k=(0,l.v9)((function(e){return e.createTenant.certificates.minioCertificates})),w=(0,l.v9)((function(e){return e.createTenant.certificates.serverCertificate})),R=(0,l.v9)((function(e){return e.createTenant.certificates.clientCertificate})),F=(0,l.v9)((function(e){return e.createTenant.fields.security.enableCustomCerts})),D=(0,l.v9)((function(e){return e.createTenant.fields.encryption.kesSecurityContext})),G=(0,i.useState)({}),K=(0,r.Z)(G,2),E=K[0],L=K[1],O=!1;I&&(P||k&&k.filter((function(e){return e.encoded_key&&e.encoded_cert})).length>0)&&(O=!0);var z=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"encryption",field:e,value:n}))}),[t]),M=function(e){L((0,y.he)(E,e))};return(0,i.useEffect)((function(){var e=[];o&&(e=[].concat((0,g.Z)(e),[{fieldKey:"replicas",required:!0,value:s,customValidation:parseInt(s)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:D.runAsUser,customValidation:""===D.runAsUser||parseInt(D.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:D.runAsGroup,customValidation:""===D.runAsGroup||parseInt(D.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:D.fsGroup,customValidation:""===D.fsGroup||parseInt(D.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),F&&(e=[].concat((0,g.Z)(e),[{fieldKey:"serverKey",required:!P,value:w.encoded_key},{fieldKey:"serverCert",required:!P,value:w.encoded_cert},{fieldKey:"clientKey",required:!P,value:R.encoded_key},{fieldKey:"clientCert",required:!P,value:R.encoded_cert}])));var n=(0,j.R)(e);t((0,S.NO)({pageName:"encryption",valid:0===Object.keys(n).length})),L(n)}),[o,u,d,m,f,x,v,b,t,P,F,w.encoded_key,w.encoded_cert,R.encoded_key,R.encoded_cert,D,s]),(0,A.jsxs)(p.Z,{className:n.paperWrapper,children:[(0,A.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,A.jsx)(c.ZP,{item:!0,xs:!0,children:(0,A.jsx)(Y,{children:"Encryption"})}),(0,A.jsx)(c.ZP,{item:!0,xs:4,justifyContent:"end",textAlign:"right",children:(0,A.jsx)(Z.Z,{label:"",indicatorLabels:["Enabled","Disabled"],checked:o,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(e){var n=e.target.checked;z("enableEncryption",n)},description:"",disabled:!O})})]}),(0,A.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("span",{className:n.descriptionText,children:"MinIO Server-Side Encryption (SSE) protects objects as part of write operations, allowing clients to take advantage of server processing power to secure objects at the storage layer (encryption-at-rest). SSE also provides key functionality to regulatory and compliance requirements around secure locking and erasure."})}),(0,A.jsx)(c.ZP,{xs:12,children:(0,A.jsx)("hr",{className:n.hrClass})}),o&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.encryptionTypeOptions,children:(0,A.jsx)(T.Z,{currentSelection:u,id:"encryptionType",name:"encryptionType",label:"Encryption Options",onChange:function(e){z("encryptionType",e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===u&&(0,A.jsx)(X,{}),"azure"===u&&(0,A.jsx)(ne,{}),"gcp"===u&&(0,A.jsx)(re,{}),"aws"===u&&(0,A.jsx)(oe,{}),"gemalto"===u&&(0,A.jsx)(ie,{}),(0,A.jsx)("div",{className:n.headerElement,children:(0,A.jsx)("h4",{className:n.h3Section,children:"Additional Configurations"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(Z.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:_||!P,onChange:function(e){var n=e.target.checked;z("enableCustomCertsForKES",n)},label:"Custom Certificates",disabled:!P})}),(_||!P)&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{container:!0,children:(0,A.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Encryption Service Certificates"}),(0,A.jsx)(q.Z,{onChange:function(e,n){t((0,S.$1)({key:"key",fileName:n,value:e})),M("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",error:E.serverKey||"",value:w.key,required:!P}),(0,A.jsx)(q.Z,{onChange:function(e,n){t((0,S.$1)({key:"cert",fileName:n,value:e})),M("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",error:E.serverCert||"",value:w.cert,required:!P})]})})}),(0,A.jsx)(c.ZP,{container:!0,style:{marginBottom:15},children:(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Mutual TLS authentication with MinIO"}),(0,A.jsx)(q.Z,{onChange:function(e,n){t((0,S.BI)({key:"key",fileName:n,value:e})),M("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",error:E.clientKey||"",value:R.key,required:!P}),(0,A.jsx)(q.Z,{onChange:function(e,n){t((0,S.BI)({key:"cert",fileName:n,value:e})),M("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",error:E.clientCert||"",value:R.cert,required:!P})]})})})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,classes:n.formFieldRow,children:(0,A.jsx)(C.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){z("replicas",e.target.value),M("replicas")},label:"Replicas",value:s,required:!0,error:E.replicas||""})}),(0,A.jsxs)("fieldset",{className:n.fieldGroup,style:{marginTop:15},children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for KES pods"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.kesSecurityContext,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveContainer),children:[(0,A.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,A.jsx)(C.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){z("kesSecurityContext",(0,a.Z)((0,a.Z)({},D),{},{runAsUser:e.target.value})),M("kes_securityContext_runAsUser")},label:"Run As User",value:D.runAsUser,required:!0,error:E.kes_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,A.jsx)(C.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){z("kesSecurityContext",(0,a.Z)((0,a.Z)({},D),{},{runAsGroup:e.target.value})),M("kes_securityContext_runAsGroup")},label:"Run As Group",value:D.runAsGroup,required:!0,error:E.kes_securityContext_runAsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.kesSecurityContext,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveContainer),children:[(0,A.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,A.jsx)(C.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){z("kesSecurityContext",(0,a.Z)((0,a.Z)({},D),{},{fsGroup:e.target.value})),M("kes_securityContext_fsGroup")},label:"FsGroup",value:D.fsGroup,required:!0,error:E.kes_securityContext_fsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,A.jsx)(N.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:D.fsGroupChangePolicy,onChange:function(e){z("kesSecurityContext",(0,a.Z)((0,a.Z)({},D),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(Z.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:D.runAsNonRoot,onChange:function(e){var n=e.target.checked;z("kesSecurityContext",(0,a.Z)((0,a.Z)({},D),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})]})]})})),ce=t(4942),ue=t(81207),de=t(47919),me=t(45660),fe=t(87995),he=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},affinityRow:{marginBottom:10,display:"flex"}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,h.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.affinity.podAffinity})),o=(0,l.v9)((function(e){return e.createTenant.fields.affinity.nodeSelectorLabels})),u=(0,l.v9)((function(e){return e.createTenant.fields.affinity.withPodAntiAffinity})),d=(0,l.v9)((function(e){return e.createTenant.nodeSelectorPairs})),m=(0,l.v9)((function(e){return e.createTenant.tolerations})),f=(0,i.useState)({}),x=(0,r.Z)(f,2),y=x[0],b=x[1],P=(0,i.useState)(!0),I=(0,r.Z)(P,2),k=I[0],w=I[1],R=(0,i.useState)({}),F=(0,r.Z)(R,2),D=F[0],G=F[1],K=(0,i.useState)([]),E=(0,r.Z)(K,2),L=E[0],O=E[1],z=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"affinity",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){k&&ue.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){w(!1),G(e);var n=[];for(var t in e)n.push({label:t,value:t});O(n)})).catch((function(e){w(!1),t((0,fe.zb)(e)),G({})}))}),[t,k]),(0,i.useEffect)((function(){if(d){var e=d.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,n,t){return t.indexOf(e)===n})).join("&");z("nodeSelectorLabels",e)}}),[d,z]),(0,i.useEffect)((function(){var e=[];if("nodeSelector"===s){var n=!0,r=o.split("&");1===r.length&&""===r[0]&&(n=!1),r.forEach((function(e,t){var a=e.split("=");2!==a.length&&(n=!1),t+1!==r.length&&(""!==a[0]&&""!==a[1]||(n=!1))})),e=[].concat((0,g.Z)(e),[{fieldKey:"labels",required:!0,value:o,customValidation:!n,customValidationMessage:"You need to add at least one label key-pair"}])}var a=(0,j.R)(e);t((0,S.NO)({pageName:"affinity",valid:0===Object.keys(a).length})),b(a)}),[t,s,o]);var M=function(e,n,r){var i=(0,a.Z)((0,a.Z)({},m[e]),{},(0,ce.Z)({},n,r));t((0,S.iU)({index:e,tolerationValue:i}))};return(0,A.jsxs)(p.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)("h3",{className:n.h3Section,children:"Pod Placement"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,A.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,A.jsx)("div",{className:n.label,children:"Type"}),(0,A.jsx)("div",{className:"".concat(n.descriptionText," ").concat(n.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,A.jsx)(c.ZP,{item:!0,className:n.radioField,children:(0,A.jsx)(T.Z,{currentSelection:s,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){z("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===s&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(Z.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:u,onChange:function(e){var n=e.target.checked;z("withPodAntiAffinity",n)},label:"With Pod Anti-Affinity"})}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)("h3",{children:"Labels"}),(0,A.jsx)("span",{className:n.error,children:y.labels}),(0,A.jsx)(c.ZP,{container:!0,children:d&&d.map((function(e,r){return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,A.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelKey,children:[L.length>0&&(0,A.jsx)(N.Z,{onChange:function(e){var n=e.target.value,a={key:n,value:D[n][0]},i=(0,g.Z)(d);i[r]=a,t((0,S.i$)(i))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:L}),0===L.length&&(0,A.jsx)(C.Z,{id:"nodeselector-key-".concat(r.toString()),label:"",name:"nodeselector-".concat(r.toString()),value:e.key,onChange:function(e){var n=(0,g.Z)(d);n[r]={key:n[r].key,value:e.target.value},t((0,S.i$)(n))},index:r,placeholder:"Key"})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelValue,children:[L.length>0&&(0,A.jsx)(N.Z,{onChange:function(e){var n=(0,g.Z)(d);n[r]={key:n[r].key,value:e.target.value},t((0,S.i$)(n))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:D[e.key]?D[e.key].map((function(e){return{label:e,value:e}})):[]}),0===L.length&&(0,A.jsx)(C.Z,{id:"nodeselector-value-".concat(r.toString()),label:"",name:"nodeselector-".concat(r.toString()),value:e.value,onChange:function(e){var n=(0,g.Z)(d);n[r]={key:n[r].key,value:e.target.value},t((0,S.i$)(n))},index:r,placeholder:"value"})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){var e=(0,g.Z)(d);L.length>0?e.push({key:L[0].value,value:D[L[0].value][0]}):e.push({key:"",value:""}),t((0,S.i$)(e))},children:(0,A.jsx)(de.Z,{})})}),d.length>1&&(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){var e=d.filter((function(e,n){return n!==r}));t((0,S.i$)(e))},children:(0,A.jsx)(_.Z,{})})})]})]},"affinity-keyVal-".concat(r.toString()))}))})]})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,A.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,A.jsx)("h3",{children:"Tolerations"}),(0,A.jsx)("span",{className:n.error,children:y.tolerations}),(0,A.jsx)(c.ZP,{container:!0,children:m&&m.map((function(e,r){var a;return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,A.jsx)(me.Z,{effect:e.effect,onEffectChange:function(e){M(r,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){M(r,"key",e)},operator:e.operator,onOperatorChange:function(e){M(r,"operator",e)},value:e.value,onValueChange:function(e){M(r,"value",e)},tolerationSeconds:(null===(a=e.tolerationSeconds)||void 0===a?void 0:a.seconds)||0,onSecondsChange:function(e){M(r,"tolerationSeconds",{seconds:e})},index:r}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){t((0,S.ly)())},disabled:r!==m.length-1,children:(0,A.jsx)(de.Z,{})})}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(v.Z,{size:"small",onClick:function(){return t((0,S.JX)(r))},disabled:m.length<=1,children:(0,A.jsx)(_.Z,{})})})]},"affinity-keyVal-".concat(r.toString()))}))})]})})]})})),ge=t(32291),xe=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,h.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.configure.customImage})),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageName})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.customDockerhub})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistry})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryUsername})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryPassword})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusEnabled})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),v=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchEnabled})),b=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchVolumeSize})),_=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusVolumeSize})),N=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchSelectedStorageClass})),P=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchImage})),T=(0,l.v9)((function(e){return e.createTenant.fields.configure.kesImage})),I=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresImage})),k=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresInitImage})),w=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSelectedStorageClass})),R=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusImage})),F=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSidecarImage})),D=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusInitImage})),G=(0,i.useState)({}),K=(0,r.Z)(G,2),E=K[0],L=K[1],O=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];f&&(e=[].concat((0,g.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:w,customValidation:""===w,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:_,customValidation:""===_||parseInt(_)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),v&&(e=[].concat((0,g.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:N,customValidation:""===N,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:b,customValidation:""===b||parseInt(b)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),a&&(e=[].concat((0,g.Z)(e),[{fieldKey:"image",required:!1,value:s,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/minio:VERSION'"},{fieldKey:"logSearchImage",required:!1,value:P,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/operator:VERSION'"},{fieldKey:"kesImage",required:!1,value:T,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/kes:VERSION'"},{fieldKey:"logSearchPostgresImage",required:!1,value:I,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/postgres:VERSION'"},{fieldKey:"logSearchPostgresInitImage",required:!1,value:k,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"},{fieldKey:"prometheusImage",required:!1,value:R,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/prometheus:VERSION'"},{fieldKey:"prometheusSidecarImage",required:!1,value:F,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'project/container:VERSION'"},{fieldKey:"prometheusInitImage",required:!1,value:D,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"}]),o&&(e=[].concat((0,g.Z)(e),[{fieldKey:"registry",required:!0,value:u},{fieldKey:"registryUsername",required:!0,value:d},{fieldKey:"registryPassword",required:!0,value:m}])));var n=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(n).length})),L(n)}),[a,s,P,T,I,k,R,F,D,o,u,d,m,t,f,x,v,w,_,N,b]);var z=function(e){L((0,y.he)(E,e))};return(0,A.jsxs)(p.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)("h3",{className:n.h3Section,children:"Container Images"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Specify the container images used by the Tenant and it's features."})]}),(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"image",name:"image",onChange:function(e){O("imageName",e.target.value),z("image")},label:"MinIO",value:s,error:E.image||"",placeholder:"minio/minio:RELEASE.2022-02-26T02-54-46Z"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"kesImage",name:"kesImage",onChange:function(e){O("kesImage",e.target.value),z("kesImage")},label:"KES",value:T,error:E.kesImage||"",placeholder:"minio/kes:v0.17.6"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)("h4",{children:"Log Search"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"logSearchImage",name:"logSearchImage",onChange:function(e){O("logSearchImage",e.target.value),z("logSearchImage")},label:"API",value:P,error:E.logSearchImage||"",placeholder:"minio/operator:v4.4.22"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"logSearchPostgresImage",name:"logSearchPostgresImage",onChange:function(e){O("logSearchPostgresImage",e.target.value),z("logSearchPostgresImage")},label:"PostgreSQL",value:I,error:E.logSearchPostgresImage||"",placeholder:"library/postgres:13"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"logSearchPostgresInitImage",name:"logSearchPostgresInitImage",onChange:function(e){O("logSearchPostgresInitImage",e.target.value),z("logSearchPostgresInitImage")},label:"PostgreSQL Init",value:k,error:E.logSearchPostgresInitImage||"",placeholder:"library/busybox:1.33.1"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)("h4",{children:"Monitoring"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"prometheusImage",name:"prometheusImage",onChange:function(e){O("prometheusImage",e.target.value),z("prometheusImage")},label:"Prometheus",value:R,error:E.prometheusImage||"",placeholder:"quay.io/prometheus/prometheus:latest"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"prometheusSidecarImage",name:"prometheusSidecarImage",onChange:function(e){O("prometheusSidecarImage",e.target.value),z("prometheusSidecarImage")},label:"Prometheus Sidecar",value:F,error:E.prometheusSidecarImage||"",placeholder:"library/alpine:latest"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"prometheusInitImage",name:"prometheusInitImage",onChange:function(e){O("prometheusInitImage",e.target.value),z("prometheusInitImage")},label:"Prometheus Init",value:D,error:E.prometheusInitImage||"",placeholder:"library/busybox:1.33.1"})})]}),a&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)("h4",{children:"Custom Container Registry"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(Z.Z,{value:"custom_docker_hub",id:"custom_docker_hub",name:"custom_docker_hub",checked:o,onChange:function(e){var n=e.target.checked;O("customDockerhub",n)},label:"Use a private container registry"})})]}),o&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"registry",name:"registry",onChange:function(e){O("imageRegistry",e.target.value)},label:"Endpoint",value:u,error:E.registry||"",placeholder:"https://index.docker.io/v1/",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"registryUsername",name:"registryUsername",onChange:function(e){O("imageRegistryUsername",e.target.value)},label:"Username",value:d,error:E.registryUsername||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(C.Z,{id:"registryPassword",name:"registryPassword",onChange:function(e){O("imageRegistryPassword",e.target.value)},label:"Password",value:m,error:E.registryPassword||"",required:!0})})]})]})})),pe=t(74794),ve=t(84669),ye=t(79836),je=t(53382),Ze=t(53994),Ce=t(35855),be=t(45248),_e=t(94721),Se=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({root:{margin:4},table:{"& .MuiTableCell-root":{fontSize:13}}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.nodes})),r=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesMemoryRequest})),a=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParity})),s=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.distribution})),o=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParityCalc})),c=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesCPURequest})),u=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.integrationSelection})),d=o.storageFactors.find((function(e){return e.erasureCode===a}));return(0,A.jsxs)("div",{className:n.root,children:[(0,A.jsx)("h4",{children:"Resource Allocation"}),(0,A.jsx)(_e.Z,{}),(0,A.jsx)(ye.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,A.jsxs)(je.Z,{children:[(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Number of Servers"}),(0,A.jsx)(Ze.Z,{align:"right",children:parseInt(t)>0?t:"-"})]}),""===u.typeSelection&&""===u.storageClass&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Drives per Server"}),(0,A.jsx)(Ze.Z,{align:"right",children:s?s.disks:"-"})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Drive Capacity"}),(0,A.jsx)(Ze.Z,{align:"right",children:s?(0,be.ae)(s.pvSize):"-"})]})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Total Volumes"}),(0,A.jsx)(Ze.Z,{align:"right",children:s?s.persistentVolumes:"-"})]}),""===u.typeSelection&&""===u.storageClass&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Memory per Node"}),(0,A.jsxs)(Ze.Z,{align:"right",children:[r," Gi"]})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{style:{borderBottom:0},scope:"row",children:"CPU Selection"}),(0,A.jsx)(Ze.Z,{style:{borderBottom:0},align:"right",children:c})]})]})]})}),0===o.error&&d&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)("h4",{children:"Erasure Code Configuration"}),(0,A.jsx)(_e.Z,{}),(0,A.jsx)(ye.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,A.jsxs)(je.Z,{children:[(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"EC Parity"}),(0,A.jsx)(Ze.Z,{align:"right",children:""!==a?a:"-"})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Raw Capacity"}),(0,A.jsx)(Ze.Z,{align:"right",children:(0,be.ae)(o.rawCapacity)})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Usable Capacity"}),(0,A.jsx)(Ze.Z,{align:"right",children:(0,be.ae)(d.maxCapacity)})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{style:{borderBottom:0},scope:"row",children:"Server Failures Tolerated"}),(0,A.jsx)(Ze.Z,{style:{borderBottom:0},align:"right",children:s?Math.floor(d.maxFailureTolerations/s.disks):"-"})]})]})})]}),""!==u.typeSelection&&""!==u.storageClass&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)("h4",{children:"Single Instance Configuration"}),(0,A.jsx)(_e.Z,{}),(0,A.jsx)(ye.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,A.jsxs)(je.Z,{children:[(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"CPU"}),(0,A.jsx)(Ze.Z,{align:"right",children:0!==u.CPU?u.CPU:"-"})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Memory"}),(0,A.jsx)(Ze.Z,{align:"right",children:0!==u.memory?"".concat(u.memory," Gi"):"-"})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{scope:"row",children:"Drives per Server"}),(0,A.jsx)(Ze.Z,{align:"right",children:0!==u.drivesPerServer?"".concat(u.drivesPerServer):"-"})]}),(0,A.jsxs)(Ce.Z,{children:[(0,A.jsx)(Ze.Z,{style:{borderBottom:0},scope:"row",children:"Drive Size"}),(0,A.jsxs)(Ze.Z,{style:{borderBottom:0},align:"right",children:[u.driveSize.driveSize,u.driveSize.sizeUnit]})]})]})})]})]})})),Ne=t(19720),Ae=t(45884),Pe=t(46078),Te=t(51691),Ie=t(2148),ke=t(38734),we=t(98222),Re=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},m.oO),m.Qw))})),Fe=function(){var e=(0,h.TL)(),n=Re(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),r=(0,l.v9)((function(e){return e.createTenant.addNSLoading})),a=(0,l.v9)((function(e){return e.createTenant.addNSOpen}));return(0,A.jsx)(Ie.Z,{title:"New namespace",confirmText:"Create",confirmButtonProps:{color:"primary",variant:"contained"},isOpen:a,titleIcon:(0,A.jsx)(ke.EjK,{}),isLoading:r,onConfirm:function(){e((0,we.QD)())},onClose:function(){e((0,S.pb)())},confirmationContent:(0,A.jsxs)(i.Fragment,{children:[r&&(0,A.jsx)(u.Z,{}),(0,A.jsxs)(Te.Z,{children:["Are you sure you want to add a namespace called",(0,A.jsx)("br",{}),(0,A.jsx)("b",{className:n.wrapText,children:t}),"?"]})]})})},De=t(48573),Ge=t.n(De),Ke=function(e){e.formToRender;var n=(0,h.TL)(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),r=(0,l.v9)((function(e){return e.createTenant.showNSCreateButton})),a=(0,l.v9)((function(e){return e.createTenant.validationErrors.namespace})),s=(0,l.v9)((function(e){return e.createTenant.addNSOpen})),o=(0,i.useMemo)((function(){return Ge()((function(){n((0,we.IO)())}),500)}),[n]);(0,i.useEffect)((function(){if(""!==t)return o(),o.cancel}),[o,t]);return(0,A.jsxs)(i.Fragment,{children:[s&&(0,A.jsx)(Fe,{}),(0,A.jsx)(C.Z,{id:"namespace",name:"namespace",onChange:function(e){n((0,S.Zx)(e.target.value))},label:"Namespace",value:t,error:a||"",overlayId:"add-namespace",overlayIcon:r?(0,A.jsx)(de.Z,{}):null,overlayAction:function(){n((0,S.Oj)())},required:!0})]})},Ee=function(){var e=(0,h.TL)(),n=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.tenantName})),t=(0,l.v9)((function(e){return e.createTenant.validationErrors["tenant-name"]}));return(0,A.jsx)(C.Z,{id:"tenant-name",name:"tenant-name",onChange:function(n){e((0,S.V7)(n.target.value))},label:"Name",value:n,required:!0,error:t||""})},Le=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({sizePreview:{position:"fixed",marginLeft:10,background:"#FFFFFF",border:"1px solid #EAEAEA",padding:2}},m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=e.formToRender,r=(0,h.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),s=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageType})),u=(0,l.v9)((function(e){return e.createTenant.storageClasses})),d=(0,l.v9)(Pe.$4),m=(0,i.useCallback)((function(e,n){r((0,S.HM)({pageName:"nameTenant",field:e,value:n}))}),[r]);return(0,i.useEffect)((function(){var e=t===Ae.cy.default&&u.length>0||t!==Ae.cy.default&&""!==s;r((0,S.NO)({pageName:"nameTenant",valid:e}))}),[u,r,s,t]),(0,A.jsx)(i.Fragment,{children:(0,A.jsxs)(c.ZP,{container:!0,children:[(0,A.jsx)(c.ZP,{item:!0,xs:8,md:9,children:(0,A.jsx)(p.Z,{className:n.paperWrapper,sx:{minHeight:550},children:(0,A.jsxs)(c.ZP,{container:!0,children:[(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)("h3",{className:n.h3Section,children:"Name"}),(0,A.jsx)("span",{className:n.descriptionText,children:"How would you like to name this new tenant?"})]}),(0,A.jsx)("div",{className:n.formFieldRow,children:(0,A.jsx)(Ee,{})})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(Ke,{formToRender:t})}),t===Ae.cy.default?(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(N.Z,{id:"storage_class",name:"storage_class",onChange:function(e){m("selectedStorageClass",e.target.value)},label:"Storage Class",value:a,options:u,disabled:u.length<1})}):(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(N.Z,{id:"storage_type",name:"storage_type",onChange:function(e){r((0,S.Qy)({storageType:e.target.value,features:d}))},label:o()(Ae.Hd,"".concat(t,".variantSelectorLabel"),"Storage Type"),value:s,options:o()(Ae.Hd,"".concat(t,".variantSelectorValues"),[])})}),t===Ae.cy.default?(0,A.jsx)(Ne.Z,{}):o()(Ae.Hd,"".concat(t,".sizingComponent"),null)]})})}),(0,A.jsx)(c.ZP,{item:!0,xs:4,md:3,children:(0,A.jsx)("div",{className:n.sizePreview,children:(0,A.jsx)(Se,{})})})]})})})),Oe=function(){var e=(0,l.v9)(Pe.$4),n=(0,i.useState)(null),t=(0,r.Z)(n,2),a=t[0],s=t[1];return(0,i.useEffect)((function(){var n=Ae.cy.default;e&&0!==e.length&&Object.keys(Ae.I8).forEach((function(t){e.includes(t)&&(n=o()(Ae.I8,t,Ae.cy.default))}));s(n)}),[e]),null===a?null:(0,A.jsx)(Le,{formToRender:a})},ze=t(56578),Me=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},logSearchEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"},fieldSpaceTop:{marginTop:15}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,h.TL)(),s=(0,l.v9)((function(e){return e.createTenant.storageClasses})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchEnabled})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchVolumeSize})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchSelectedStorageClass})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchImage})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresImage})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresInitImage})),v=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),b=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),_=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchSecurityContext})),P=(0,l.v9)((function(e){return e.createTenant.fields.configure.logSearchPostgresSecurityContext})),T=(0,i.useState)({}),I=(0,r.Z)(T,2),k=I[0],w=I[1],R=[{label:"Default",value:"default"}].concat((0,g.Z)(s)),F=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];o&&(e=[].concat((0,g.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:d,customValidation:""===d,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:u,customValidation:""===u||parseInt(u)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"},{fieldKey:"logSearch_securityContext_runAsUser",required:!0,value:_.runAsUser,customValidation:""===_.runAsUser||parseInt(_.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_runAsGroup",required:!0,value:_.runAsGroup,customValidation:""===_.runAsGroup||parseInt(_.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_fsGroup",required:!0,value:_.fsGroup,customValidation:""===_.fsGroup||parseInt(_.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsUser",required:!0,value:P.runAsUser,customValidation:""===P.runAsUser||parseInt(P.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsGroup",required:!0,value:_.runAsGroup,customValidation:""===P.runAsGroup||parseInt(P.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_fsGroup",required:!0,value:P.fsGroup,customValidation:""===P.fsGroup||parseInt(P.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var n=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(n).length})),w(n)}),[m,f,x,t,o,d,u,b,_,P]),(0,i.useEffect)((function(){s.length>0&&(0===s.filter((function(e){return e.value===d})).length&&F("logSearchSelectedStorageClass","default"))}),[d,v,s,F]);var D=function(e){w((0,y.he)(k,e))};return(0,A.jsxs)(p.Z,{className:n.paperWrapper,children:[(0,A.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,A.jsx)(c.ZP,{item:!0,xs:!0,children:(0,A.jsx)(Y,{children:"Audit Log"})}),(0,A.jsx)(c.ZP,{item:!0,xs:4,children:(0,A.jsx)(Z.Z,{value:"enableLogging",id:"enableLogging",name:"enableLogging",checked:o,onChange:function(e){var n=e.target.checked;F("logSearchEnabled",n)},indicatorLabels:["Enabled","Disabled"]})})]}),(0,A.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("span",{className:n.descriptionText,children:"Deploys a small PostgreSQL database and stores access logs of all calls into the tenant."})}),(0,A.jsx)(c.ZP,{xs:12,children:(0,A.jsx)("hr",{className:n.hrClass})}),o&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(N.Z,{id:"log_search_storage_class",name:"log_search_storage_class",onChange:function(e){F("logSearchSelectedStorageClass",e.target.value)},label:"Log Search Storage Class",value:d,options:R,disabled:R.length<1})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(C.Z,{type:"number",id:"log_search_volume_size",name:"log_search_volume_size",onChange:function(e){F("logSearchVolumeSize",e.target.value),D("log_search_volume_size")},label:"Storage Size",overlayObject:(0,A.jsx)(ze.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:u,required:!0,error:k.log_search_volume_size||"",min:"0"})})}),(0,A.jsxs)("fieldset",{className:"".concat(n.fieldGroup," ").concat(n.fieldSpaceTop),children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for LogSearch"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"logSearch_securityContext_runAsUser",name:"logSearch_securityContext_runAsUser",onChange:function(e){F("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsUser:e.target.value})),D("logSearch_securityContext_runAsUser")},label:"Run As User",value:_.runAsUser,required:!0,error:k.logSearch_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"logSearch_securityContext_runAsGroup",name:"logSearch_securityContext_runAsGroup",onChange:function(e){F("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsGroup:e.target.value})),D("logSearch_securityContext_runAsGroup")},label:"Run As Group",value:_.runAsGroup,required:!0,error:k.logSearch_securityContext_runAsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"logSearch_securityContext_fsGroup",name:"logSearch_securityContext_fsGroup",onChange:function(e){F("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{fsGroup:e.target.value})),D("logSearch_securityContext_fsGroup")},label:"FsGroup",value:_.fsGroup,required:!0,error:k.logSearch_securityContext_fsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(N.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:_.fsGroupChangePolicy,onChange:function(e){F("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(Z.Z,{value:"logSearchSecurityContextRunAsNonRoot",id:"logSearch_securityContext_runAsNonRoot",name:"logSearch_securityContext_runAsNonRoot",checked:_.runAsNonRoot,onChange:function(e){var n=e.target.checked;F("logSearchSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]}),(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for PostgreSQL"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"postgres_securityContext_runAsUser",name:"postgres_securityContext_runAsUser",onChange:function(e){F("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsUser:e.target.value})),D("postgres_securityContext_runAsUser")},label:"Run As User",value:P.runAsUser,required:!0,error:k.postgres_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"postgres_securityContext_runAsGroup",name:"postgres_securityContext_runAsGroup",onChange:function(e){F("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsGroup:e.target.value})),D("postgres_securityContext_runAsGroup")},label:"Run As Group",value:P.runAsGroup,required:!0,error:k.postgres_securityContext_runAsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"postgres_securityContext_fsGroup",name:"postgres_securityContext_fsGroup",onChange:function(e){F("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{fsGroup:e.target.value})),D("postgres_securityContext_fsGroup")},label:"FsGroup",value:P.fsGroup,required:!0,error:k.postgres_securityContext_fsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(N.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:P.fsGroupChangePolicy,onChange:function(e){F("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(Z.Z,{value:"postgresSecurityContextRunAsNonRoot",id:"postgres_securityContext_runAsNonRoot",name:"postgres_securityContext_runAsNonRoot",checked:P.runAsNonRoot,onChange:function(e){var n=e.target.checked;F("logSearchPostgresSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})]})})),Ue=(0,x.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},fieldSpaceTop:{marginTop:15},prometheusEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,h.TL)(),s=(0,l.v9)((function(e){return e.createTenant.storageClasses})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusEnabled})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusVolumeSize})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSelectedStorageClass})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusImage})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSidecarImage})),x=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusInitImage})),v=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),b=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),_=(0,l.v9)((function(e){return e.createTenant.fields.configure.prometheusSecurityContext})),P=(0,i.useState)({}),T=(0,r.Z)(P,2),I=T[0],k=T[1],w=[{label:"Default",value:"default"}].concat((0,g.Z)(s)),R=(0,i.useCallback)((function(e,n){t((0,S.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];o&&(e=[].concat((0,g.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:d,customValidation:""===d,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:u,customValidation:""===u||parseInt(u)<=0,customValidationMessage:"Volume size must be present and be greater than 0"},{fieldKey:"prometheus_securityContext_runAsUser",required:!0,value:_.runAsUser,customValidation:""===_.runAsUser||parseInt(_.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_runAsGroup",required:!0,value:_.runAsGroup,customValidation:""===_.runAsGroup||parseInt(_.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_fsGroup",required:!0,value:_.fsGroup,customValidation:""===_.fsGroup||parseInt(_.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var n=(0,j.R)(e);t((0,S.NO)({pageName:"configure",valid:0===Object.keys(n).length})),k(n)}),[m,f,x,t,o,d,u,b,_]),(0,i.useEffect)((function(){s.length>0&&(0===s.filter((function(e){return e.value===d})).length&&R("prometheusSelectedStorageClass","default"))}),[d,v,s,R]);var F=function(e){k((0,y.he)(I,e))};return(0,A.jsxs)(p.Z,{className:n.paperWrapper,children:[(0,A.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,A.jsx)(c.ZP,{item:!0,xs:!0,children:(0,A.jsx)(Y,{children:"Monitoring"})}),(0,A.jsx)(c.ZP,{item:!0,xs:4,children:(0,A.jsx)(Z.Z,{indicatorLabels:["Enabled","Disabled"],checked:o,value:"monitoring_status",id:"monitoring-status",name:"monitoring-status",onChange:function(e){var n=e.target.checked;R("prometheusEnabled",n)},description:""})})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("span",{className:n.descriptionText,children:"A small Prometheus will be deployed to keep metrics about the tenant."})}),(0,A.jsx)(c.ZP,{xs:12,children:(0,A.jsx)("hr",{className:n.hrClass})}),(0,A.jsx)(c.ZP,{container:!0,spacing:1,children:o&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(N.Z,{id:"prometheus_storage_class",name:"prometheus_storage_class",onChange:function(e){R("prometheusSelectedStorageClass",e.target.value)},label:"Storage Class",value:d,options:w,disabled:w.length<1})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(C.Z,{type:"number",id:"prometheus_volume_size",name:"prometheus_volume_size",onChange:function(e){R("prometheusVolumeSize",e.target.value),F("prometheus_volume_size")},label:"Storage Size",overlayObject:(0,A.jsx)(ze.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:u,required:!0,error:I.prometheus_volume_size||"",min:"0"})})}),(0,A.jsxs)("fieldset",{className:"".concat(n.fieldGroup," ").concat(n.fieldSpaceTop),children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"SecurityContext"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"prometheus_securityContext_runAsUser",name:"prometheus_securityContext_runAsUser",onChange:function(e){R("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsUser:e.target.value})),F("prometheus_securityContext_runAsUser")},label:"Run As User",value:_.runAsUser,required:!0,error:I.prometheus_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"prometheus_securityContext_runAsGroup",name:"prometheus_securityContext_runAsGroup",onChange:function(e){R("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsGroup:e.target.value})),F("prometheus_securityContext_runAsGroup")},label:"Run As Group",value:_.runAsGroup,required:!0,error:I.prometheus_securityContext_runAsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(C.Z,{type:"number",id:"prometheus_securityContext_fsGroup",name:"prometheus_securityContext_fsGroup",onChange:function(e){R("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{fsGroup:e.target.value})),F("prometheus_securityContext_fsGroup")},label:"FsGroup",value:_.fsGroup,required:!0,error:I.prometheus_securityContext_fsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:n.configSectionItem,children:(0,A.jsx)(N.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:_.fsGroupChangePolicy,onChange:function(e){R("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)("div",{className:"".concat(n.multiContainer," ").concat(n.fieldSpaceTop),children:(0,A.jsx)(Z.Z,{value:"prometheusSecurityContextRunAsNonRoot",id:"prometheus_securityContext_runAsNonRoot",name:"prometheus_securityContext_runAsNonRoot",checked:_.runAsNonRoot,onChange:function(e){var n=e.target.checked;R("prometheusSecurityContext",(0,a.Z)((0,a.Z)({},_),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})})]})})),qe=t(23804),Ve=t(36151),Be=["nameTenant","tenantSize","configure","affinity","identityProvider","security","encryption"],He=t(84218),We=function(){var e=(0,h.TL)(),n=(0,l.v9)((function(e){return e.createTenant.addingTenant})),t=(0,l.v9)((function(e){return e.createTenant.validPages})),r=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),a=!n&&""!==r&&Be.every((function(e){return t.includes(e)}));return(0,A.jsx)(Ve.Z,{id:"wizard-button-Create",variant:"contained",color:"primary",size:"small",onClick:function(){e((0,He.e)())},disabled:!a,children:"Create"},"button-AddTenant-Create")},$e=t(37798),Qe=t(16871),Ye=function(){var e=(0,h.TL)(),n=(0,Qe.s0)(),t=(0,l.v9)((function(e){return e.createTenant.showNewCredentials})),r=(0,l.v9)((function(e){return e.createTenant.createdAccount}));return(0,A.jsx)(i.Fragment,{children:t&&(0,A.jsx)($e.default,{newServiceAccount:r,open:t,closeModal:function(){e((0,S.dS)()),n("/tenants")},entity:"Tenant"})})},Je=(0,w.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({pageBox:{border:"1px solid #EAEAEA"}},m.oO),m.AK),m.Je))})),Xe=function(){var e=(0,h.TL)(),n=(0,Qe.s0)(),t=Je(),a=(0,l.v9)(Pe.$4),s=(0,l.v9)((function(e){return e.createTenant.addingTenant})),d=(0,i.useState)(null),m=(0,r.Z)(d,2),g=m[0],x=m[1];(0,i.useEffect)((function(){var e=Ae.cy.default;a&&0!==a.length&&Object.keys(Ae.I8).forEach((function(n){a.includes(n)&&(e=o()(Ae.I8,n,Ae.cy.default))}));x(e)}),[a]);var p={label:"Cancel",type:"other",enabled:!0,action:function(){e((0,S.dS)()),n("/tenants")}},v={componentRender:(0,A.jsx)(We,{},"create-tenant")},y=[{label:"Setup",componentRender:(0,A.jsx)(Oe,{}),buttons:[p,v]},{label:"Configure",advancedOnly:!0,componentRender:(0,A.jsx)(P,{}),buttons:[p,v]},{label:"Images",advancedOnly:!0,componentRender:(0,A.jsx)(xe,{}),buttons:[p,v]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,A.jsx)(he,{}),buttons:[p,v]},{label:"Identity Provider",advancedOnly:!0,componentRender:(0,A.jsx)(U,{}),buttons:[p,v]},{label:"Security",advancedOnly:!0,componentRender:(0,A.jsx)(Q,{}),buttons:[p,v]},{label:"Encryption",advancedOnly:!0,componentRender:(0,A.jsx)(le,{}),buttons:[p,v]},{label:"Audit Log",advancedOnly:!0,componentRender:(0,A.jsx)(Me,{}),buttons:[p,v]},{label:"Monitoring",advancedOnly:!0,componentRender:(0,A.jsx)(Ue,{}),buttons:[p,v]}];return(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)(Ye,{}),(0,A.jsx)(ge.Z,{label:(0,A.jsx)(ve.Z,{to:"/tenants",label:"Tenants",executeOnClick:function(){e((0,S.dS)())}})}),(0,A.jsxs)(pe.Z,{children:[s&&(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(u.Z,{})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.pageBox,children:(0,A.jsx)(f.Z,{wizardSteps:y})}),g===Ae.cy.aws&&(0,A.jsx)(c.ZP,{item:!0,xs:12,style:{marginTop:16},children:(0,A.jsx)(qe.Z,{title:"EBS Volume Configuration.",iconComponent:(0,A.jsx)(ke.idV,{}),help:(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)("b",{children:"Performance Optimized"}),": Uses the ",(0,A.jsx)("i",{children:"gp3"})," EBS storage class class configured at 1,000Mi/s throughput and 16,000 IOPS, however the minimum volume size for this type of EBS volume is ",(0,A.jsx)("b",{children:"32Gi"}),".",(0,A.jsx)("br",{}),(0,A.jsx)("br",{}),(0,A.jsx)("b",{children:"Storage Optimized"}),": Uses the ",(0,A.jsx)("i",{children:"sc1"})," EBS storage class, however the minimum volume size for this type of EBS volume is \xa0",(0,A.jsx)("b",{children:"16Ti"})," to unlock their maximum throughput speed of 250Mi/s."]})})})]})]})}},68456:function(e,n,t){t.d(n,{QT:function(){return l},YH:function(){return c},mo:function(){return o}});var r=t(61889),a=t(98021),i=t(38734),s=t(80184),o=function(){return(0,s.jsxs)(r.ZP,{container:!0,columnGap:1,children:[(0,s.jsx)(r.ZP,{children:(0,s.jsx)(i.gyG,{width:"16px",height:"16px"})}),(0,s.jsx)(r.ZP,{item:!0,children:"Open ID"})]})},l=function(){return(0,s.jsxs)(r.ZP,{container:!0,columnGap:1,children:[(0,s.jsx)(r.ZP,{children:(0,s.jsx)(a.Z,{width:"16px",height:"16px"})}),(0,s.jsx)(r.ZP,{item:!0,children:"LDAP / Active Directory"})]})},c=function(){return(0,s.jsxs)(r.ZP,{container:!0,columnGap:1,children:[(0,s.jsx)(r.ZP,{children:(0,s.jsx)(i.oyc,{width:"16px",height:"16px"})}),(0,s.jsx)(r.ZP,{item:!0,children:"Built-in"})]})}},22512:function(e,n,t){var r=t(72791),a=t(20890),i=t(11135),s=t(25787),o=t(80184);n.Z=(0,s.Z)((function(e){var n;return(0,i.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,i=e.withBreak,s=void 0===i||i;return(0,o.jsxs)(r.Fragment,{children:[s&&(0,o.jsx)("br",{}),(0,o.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))}}]);
+//# sourceMappingURL=1260.add10538.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1260.add10538.chunk.js.map b/portal-ui/build/static/js/1260.add10538.chunk.js.map
new file mode 100644
index 000000000..231f30ced
--- /dev/null
+++ b/portal-ui/build/static/js/1260.add10538.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1260.add10538.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","icons/CertificateIcon.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tenants/AddTenant/Steps/Configure.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPActiveDirectory.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPOpenID.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPBuiltIn.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider.tsx","screens/Console/Tenants/HelpBox/TLSHelpBox.tsx","screens/Console/Tenants/AddTenant/Steps/Security.tsx","screens/Console/Common/SectionH1.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/VaultKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AzureKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GCPKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GemaltoKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AWSKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption.tsx","screens/Console/Tenants/AddTenant/Steps/Affinity.tsx","screens/Console/Tenants/AddTenant/Steps/Images.tsx","screens/Console/Tenants/AddTenant/Steps/SizePreview.tsx","screens/Console/Tenants/AddTenant/Steps/helpers/AddNamespaceModal.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NamespaceSelector.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NameTenantMain.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantResources.tsx","screens/Console/Tenants/AddTenant/Steps/ConfigLogSearch.tsx","screens/Console/Tenants/AddTenant/Steps/ConfigPrometheus.tsx","screens/Console/Tenants/AddTenant/common.ts","screens/Console/Tenants/AddTenant/CreateTenantButton.tsx","screens/Console/Tenants/AddTenant/NewTenantCredentials.tsx","screens/Console/Tenants/AddTenant/AddTenant.tsx","screens/Console/Tenants/LogoComponents.tsx","screens/shared/ErrorBlock.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) 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 * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst CertificateIcon = (props: SVGProps) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport default CertificateIcon;\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 { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n \n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\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 get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n \n
New {entity} Created
\n
\n }\n titleIcon={ }\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n \n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n >\n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n >\n )}\n \n \n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n >\n )}\n {idp ? (\n \n Please Login via the configured external identity provider.\n
\n ) : (\n \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n >\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\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, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
\n ) : (\n \n
{value}
\n
{\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(FileSelector);\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\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\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 .\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) 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, { useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport {\n addNewMinIODomain,\n isPageValid,\n removeMinIODomain,\n updateAddField,\n} from \"../createTenantSlice\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n marginBottom: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n wrapperContainer: {\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 ...modalBasic,\n ...wizardCommon,\n });\n\nconst Configure = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const exposeMinIO = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeMinIO\n );\n const exposeConsole = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeConsole\n );\n const setDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.setDomains\n );\n const consoleDomain = useSelector(\n (state: AppState) => state.createTenant.fields.configure.consoleDomain\n );\n const minioDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.minioDomains\n );\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (tenantCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"tenant_securityContext_runAsUser\",\n required: true,\n value: tenantSecurityContext.runAsUser,\n customValidation:\n tenantSecurityContext.runAsUser === \"\" ||\n parseInt(tenantSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_runAsGroup\",\n required: true,\n value: tenantSecurityContext.runAsGroup,\n customValidation:\n tenantSecurityContext.runAsGroup === \"\" ||\n parseInt(tenantSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_fsGroup\",\n required: true,\n value: tenantSecurityContext.fsGroup,\n customValidation:\n tenantSecurityContext.fsGroup === \"\" ||\n parseInt(tenantSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n if (setDomains) {\n const minioExtraValidations = minioDomains.map((validation, index) => {\n return {\n fieldKey: `minio-domain-${index.toString()}`,\n required: false,\n value: validation,\n pattern: /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$/,\n customPatternMessage:\n \"MinIO domain is not in the form of http|https://subdomain.domain\",\n };\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n ...minioExtraValidations,\n {\n fieldKey: \"console_domain\",\n required: false,\n value: consoleDomain,\n pattern:\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-./]*)?$/,\n customPatternMessage:\n \"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n dispatch,\n tenantCustom,\n tenantSecurityContext,\n setDomains,\n consoleDomain,\n minioDomains,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const copyDomains = [...minioDomains];\n copyDomains[index] = value;\n\n updateField(\"minioDomains\", copyDomains);\n };\n\n return (\n \n \n
Configure \n \n Basic configurations for tenant management\n \n \n \n
Services \n \n Whether the tenant's services should request an external IP via\n LoadBalancer service type.\n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeMinIO\", checked);\n }}\n label={\"Expose MinIO Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeConsole\", checked);\n }}\n label={\"Expose Console Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"setDomains\", checked);\n }}\n label={\"Set Custom Domains\"}\n />\n \n {setDomains && (\n \n \n \n Custom Domains for MinIO\n \n \n \n ) => {\n updateField(\"consoleDomain\", e.target.value);\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n error={validationErrors[\"console_domain\"] || \"\"}\n />\n
\n \n
MinIO Domains \n
\n {minioDomains.map((domain, index) => {\n return (\n
\n
\n ) => {\n updateMinIODomain(e.target.value, index);\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n error={\n validationErrors[\n `minio-domain-${index.toString()}`\n ] || \"\"\n }\n />\n \n
dispatch(addNewMinIODomain())}\n disabled={index !== minioDomains.length - 1}\n >\n \n \n
\n\n \n dispatch(removeMinIODomain(index))}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n \n );\n })}\n
\n
\n \n \n \n )}\n\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"tenantCustom\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {tenantCustom && (\n \n \n \n SecurityContext for MinIO\n \n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={tenantSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={tenantSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={tenantSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n
\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n )}\n \n );\n};\n\nexport default withStyles(styles)(Configure);\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 { Grid, IconButton, Tooltip, Typography } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n addIDPADUsrAtIndex,\n isPageValid,\n removeIDPADUsrAtIndex,\n setIDPADUsrAtIndex,\n updateAddField,\n addIDPADGroupAtIndex,\n removeIDPADGroupAtIndex,\n setIDPADGroupAtIndex,\n} from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { clearValidationError } from \"../../../utils\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n adUserDnRows: {\n display: \"flex\",\n marginBottom: 10,\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IDPActiveDirectory = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n const ADURL = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADURL\n );\n const ADSkipTLS = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADSkipTLS\n );\n const ADServerInsecure = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerInsecure\n );\n const ADGroupSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchBaseDN\n );\n const ADGroupSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchFilter\n );\n const ADUserDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADUserDNs\n );\n const ADGroupDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADGroupDNs\n );\n const ADLookupBindDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindDN\n );\n const ADLookupBindPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindPassword\n );\n const ADUserDNSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchBaseDN\n );\n const ADUserDNSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchFilter\n );\n const ADServerStartTLS = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerStartTLS\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"AD\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n ADLookupBindDN,\n idpSelection,\n ADURL,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n ADGroupDNs,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"ADURL\", e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADSkipTLS\", checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerInsecure\", checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be unencrypted\n \n \n \n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerStartTLS\", checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n updateField(\"ADLookupBindDN\", e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"ADLookupBindPassword\", e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchBaseDN\", e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchFilter\", e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchBaseDN\", e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchFilter\", e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n \n \n List of user DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADUserDNs.map((_, index) => {\n return (\n \n \n
) => {\n dispatch(\n setIDPADUsrAtIndex({\n index: index,\n userDN: e.target.value,\n })\n );\n cleanValidation(`ad-userdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={\n validationErrors[`ad-userdn-${index.toString()}`] || \"\"\n }\n />\n \n
\n {\n dispatch(addIDPADUsrAtIndex());\n }}\n >\n \n \n \n
\n {\n if (ADUserDNs.length > 1) {\n dispatch(removeIDPADUsrAtIndex(index));\n }\n }}\n >\n \n \n \n
\n \n \n );\n })}\n \n \n \n \n List of group DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADGroupDNs.map((_, index) => {\n return (\n \n \n
) => {\n dispatch(\n setIDPADGroupAtIndex({\n index: index,\n userDN: e.target.value,\n })\n );\n cleanValidation(`ad-groupdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-groupdn-${index.toString()}`}\n error={\n validationErrors[`ad-groupdn-${index.toString()}`] || \"\"\n }\n />\n \n
\n {\n dispatch(addIDPADGroupAtIndex());\n }}\n >\n \n \n \n
\n {\n if (ADGroupDNs.length > 1) {\n dispatch(removeIDPADGroupAtIndex(index));\n }\n }}\n >\n \n \n \n
\n \n \n );\n })}\n \n \n \n );\n};\n\nexport default IDPActiveDirectory;\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 { Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IDPOpenID = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n const openIDConfigurationURL = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDConfigurationURL\n );\n const openIDClientID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClientID\n );\n const openIDSecretID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDSecretID\n );\n const openIDCallbackURL = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDCallbackURL\n );\n const openIDClaimName = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClaimName\n );\n const openIDScopes = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.openIDScopes\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"OpenID\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: true,\n value: openIDClaimName,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n idpSelection,\n openIDClientID,\n openIDSecretID,\n openIDConfigurationURL,\n openIDClaimName,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"openIDConfigurationURL\", e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClientID\", e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDSecretID\", e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDCallbackURL\", e.target.value);\n cleanValidation(\"openID_callbackURL\");\n }}\n label=\"Callback URL\"\n value={openIDCallbackURL}\n placeholder=\"https://your-console-endpoint:9443/oauth_callback\"\n error={validationErrors[\"openID_callbackURL\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"openIDClaimName\", e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n error={validationErrors[\"openID_claimName\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDScopes\", e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n );\n};\n\nexport default IDPOpenID;\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, useEffect, useState } from \"react\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n addIDPNewKeyPair,\n isPageValid,\n removeIDPKeyPairAtIndex,\n setIDPPwdAtIndex,\n setIDPUsrAtIndex,\n} from \"../../createTenantSlice\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../../icons/RemoveIcon\";\nimport { clearValidationError, getRandomString } from \"../../../utils\";\nimport CasinoIcon from \"@mui/icons-material/Casino\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n shortened: {\n gridTemplateColumns: \"auto auto 50px 50px\",\n display: \"grid\",\n gridGap: 15,\n marginBottom: 10,\n \"& input\": {\n fontWeight: 400,\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IDPBuiltIn = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n const accessKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.accessKeys\n );\n const secretKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.secretKeys\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"Built-in\") {\n customIDPValidation = [...customIDPValidation];\n for (var i = 0; i < accessKeys.length; i++) {\n customIDPValidation.push({\n fieldKey: `accesskey-${i.toString()}`,\n required: true,\n value: accessKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n customIDPValidation.push({\n fieldKey: `secretkey-${i.toString()}`,\n required: true,\n value: secretKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n }\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [idpSelection, accessKeys, secretKeys, dispatch]);\n\n return (\n \n Add additional users\n {accessKeys.map((_, index) => {\n return (\n \n \n
) => {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: e.target.value,\n })\n );\n cleanValidation(`accesskey-${index.toString()}`);\n }}\n index={index}\n key={`csv-accesskey-${index.toString()}`}\n error={validationErrors[`accesskey-${index.toString()}`] || \"\"}\n />\n ) => {\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: e.target.value,\n })\n );\n cleanValidation(`secretkey-${index.toString()}`);\n }}\n index={index}\n key={`csv-secretkey-${index.toString()}`}\n error={validationErrors[`secretkey-${index.toString()}`] || \"\"}\n />\n \n
\n
{\n dispatch(addIDPNewKeyPair());\n }}\n disabled={index !== accessKeys.length - 1}\n >\n \n \n
\n
\n {\n dispatch(removeIDPKeyPairAtIndex(index));\n }}\n disabled={accessKeys.length <= 1}\n >\n \n \n
\n
\n \n {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: getRandomString(16),\n })\n );\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: getRandomString(16),\n })\n );\n }}\n size={\"small\"}\n >\n \n \n
\n \n
\n \n \n );\n })}\n \n );\n};\n\nexport default IDPBuiltIn;\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 { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { setIDP } from \"../createTenantSlice\";\nimport IDPActiveDirectory from \"./IdentityProvider/IDPActiveDirectory\";\nimport IDPOpenID from \"./IdentityProvider/IDPOpenID\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport IDPBuiltIn from \"./IdentityProvider/IDPBuiltIn\";\nimport {\n OIDCLogoElement,\n LDAPLogoElement,\n BuiltInLogoElement,\n} from \"../../LogoComponents\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n protocolRadioOptions: {\n display: \"flex\",\n flexFlow: \"column\",\n marginBottom: 10,\n\n \"& label\": {\n fontSize: 16,\n fontWeight: 600,\n },\n \"& div\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"top\",\n },\n },\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst IdentityProvider = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.idpSelection\n );\n\n return (\n \n \n
Identity Provider \n \n Access to the tenant can be controlled via an external Identity\n Manager.\n \n \n \n {\n dispatch(setIDP(e.target.value));\n }}\n selectorOptions={[\n { label: , value: \"Built-in\" },\n { label: , value: \"OpenID\" },\n { label: , value: \"AD\" },\n ]}\n />\n \n {idpSelection === \"Built-in\" && }\n {idpSelection === \"OpenID\" && }\n {idpSelection === \"AD\" && }\n \n );\n};\n\nexport default IdentityProvider;\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 { useSelector } from \"react-redux\";\nimport { Box } from \"@mui/material\";\nimport CertificateIcon from \"../../../../icons/CertificateIcon\";\nimport { AppState } from \"../../../../store\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n
\n \n );\n};\nconst TLSHelpBox = () => {\n const namespace = useSelector((state: AppState) => {\n return state.createTenant.fields.nameTenant.namespace || \"\";\n });\n\n const tenantName = useSelector((state: AppState) => {\n return state.createTenant.fields.nameTenant.tenantName || \"\";\n });\n\n return (\n \n \n }\n description={`TLS Certificates Warning`}\n />\n \n Automatic certificate generation is not enabled.\n \n \n If you wish to continue only with custom certificates make sure\n they are valid for the following internode hostnames, i.e.:\n \n \n \n minio.{namespace}\n \n minio.{namespace}.svc\n \n minio.{namespace}.svc.<cluster domain>\n \n *.{tenantName}-hl.{namespace}.svc.<cluster domain>\n \n *.{namespace}.svc.<cluster domain>\n
\n \n Replace <tenant-name> ,{\" \"}\n <namespace> and\n <cluster domain> with the actual values for your\n MinIO tenant.\n \n \n You can learn more at our{\" \"}\n \n documentation\n \n .\n \n \n \n );\n};\n\nexport default TLSHelpBox;\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 } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport SectionTitle from \"../../../Common/SectionTitle\";\nimport {\n addCaCertificate,\n addFileToCaCertificates,\n addFileToKeyPair,\n addKeyPair,\n deleteCaCertificate,\n deleteKeyPair,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport TLSHelpBox from \"../../HelpBox/TLSHelpBox\";\n\ninterface ISecurityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n minioCertificateRows: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n minioCertsContainer: {\n marginBottom: 15,\n },\n minioCACertsRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Security = ({ classes }: ISecurityProps) => {\n const dispatch = useAppDispatch();\n\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert\n );\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts\n );\n const minioCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.minioCertificates\n );\n const caCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.caCertificates\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"security\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n\n useEffect(() => {\n if (!enableTLS) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableAutoCert) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableCustomCerts) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n dispatch(isPageValid({ pageName: \"security\", valid: false }));\n }, [enableTLS, enableAutoCert, enableCustomCerts, dispatch]);\n\n return (\n \n \n
Security \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableTLS\", checked);\n }}\n label={\"TLS\"}\n description={\n \"Securing all the traffic using TLS. This is required for Encryption Configuration\"\n }\n />\n \n {enableTLS && (\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableAutoCert\", checked);\n }}\n label={\"AutoCert\"}\n description={\n \"The internode certificates will be generated and managed by MinIO Operator\"\n }\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableCustomCerts\", checked);\n }}\n label={\"Custom Certificates\"}\n description={\"Certificates used to terminated TLS at MinIO\"}\n />\n \n {enableCustomCerts && (\n \n {!enableAutoCert && (\n \n \n \n )}\n \n MinIO Certificates \n {minioCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n \n
{\n dispatch(addKeyPair());\n }}\n disabled={index !== minioCertificates.length - 1}\n >\n \n \n
\n \n {\n dispatch(deleteKeyPair(keyPair.id));\n }}\n disabled={minioCertificates.length <= 1}\n >\n \n \n
\n \n \n ))}\n \n\n \n MinIO CA Certificates \n\n {caCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToCaCertificates({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n \n \n \n
\n
{\n dispatch(addCaCertificate());\n }}\n disabled={index !== caCertificates.length - 1}\n >\n \n \n
\n
\n {\n dispatch(deleteCaCertificate(keyPair.id));\n }}\n disabled={caCertificates.length <= 1}\n >\n \n \n
\n
\n \n \n ))}\n \n \n )}\n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(Security);\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\ntype Props = {\n children: string;\n};\n\nconst SectionH1: React.FC = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default SectionH1;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nimport FileSelector from \"../../../../Common/FormComponents/FileSelector/FileSelector\";\nimport {\n addFileVaultCa,\n addFileVaultCert,\n isPageValid,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst VaultKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const vaultEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEndpoint\n );\n const vaultEngine = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEngine\n );\n const vaultNamespace = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultNamespace\n );\n const vaultPrefix = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPrefix\n );\n const vaultAppRoleEngine = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultAppRoleEngine\n );\n const vaultId = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultId\n );\n const vaultSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultSecret\n );\n const vaultRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultRetry\n );\n const vaultPing = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPing\n );\n const vaultCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.vaultCertificate\n );\n const vaultCA = useSelector(\n (state: AppState) => state.createTenant.certificates.vaultCA\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultEndpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultId,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultSecret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultPing,\n customValidation: parseInt(vaultPing) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultRetry,\n customValidation: parseInt(vaultRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n vaultEndpoint,\n vaultEngine,\n vaultId,\n vaultSecret,\n vaultPing,\n vaultRetry,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"vaultEndpoint\", e.target.value);\n cleanValidation(\"vault_endpoint\");\n }}\n label=\"Endpoint\"\n value={vaultEndpoint}\n error={validationErrors[\"vault_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultEngine\", e.target.value);\n cleanValidation(\"vault_engine\");\n }}\n label=\"Engine\"\n value={vaultEngine}\n />\n \n \n ) => {\n updateField(\"vaultNamespace\", e.target.value);\n }}\n label=\"Namespace\"\n value={vaultNamespace}\n />\n \n \n ) => {\n updateField(\"vaultPrefix\", e.target.value);\n }}\n label=\"Prefix\"\n value={vaultPrefix}\n />\n \n\n \n \n App Role \n \n ) => {\n updateField(\"vaultAppRoleEngine\", e.target.value);\n }}\n label=\"Engine\"\n value={vaultAppRoleEngine}\n />\n \n \n ) => {\n updateField(\"vaultId\", e.target.value);\n cleanValidation(\"vault_id\");\n }}\n label=\"AppRole ID\"\n value={vaultId}\n error={validationErrors[\"vault_id\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultSecret\", e.target.value);\n cleanValidation(\"vault_secret\");\n }}\n label=\"AppRole Secret\"\n value={vaultSecret}\n error={validationErrors[\"vault_secret\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultRetry\", e.target.value);\n cleanValidation(\"vault_retry\");\n }}\n label=\"Retry (Seconds)\"\n value={vaultRetry}\n error={validationErrors[\"vault_retry\"] || \"\"}\n />\n \n \n \n\n \n \n \n Mutual TLS authentication (optional)\n \n {\n dispatch(\n addFileVaultCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"vault_key\");\n }}\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={vaultCertificate.key}\n />\n {\n dispatch(\n addFileVaultCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"vault_cert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={vaultCertificate.cert}\n />\n {\n dispatch(\n addFileVaultCa({\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"vault_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={vaultCA.cert}\n />\n \n \n \n \n Status \n ) => {\n updateField(\"vaultPing\", e.target.value);\n cleanValidation(\"vault_ping\");\n }}\n label=\"Ping (Seconds)\"\n value={vaultPing}\n error={validationErrors[\"vault_ping\"] || \"\"}\n />\n \n \n \n );\n};\n\nexport default VaultKMSAdd;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst AzureKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const azureEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureEndpoint\n );\n const azureTenantID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureTenantID\n );\n const azureClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientID\n );\n const azureClientSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientSecret\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureEndpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureTenantID,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureClientID,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureClientSecret,\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"azureEndpoint\", e.target.value);\n cleanValidation(\"azure_endpoint\");\n }}\n label=\"Endpoint\"\n value={azureEndpoint}\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"azureTenantID\", e.target.value);\n cleanValidation(\"azure_tenant_id\");\n }}\n label=\"Tenant ID\"\n value={azureTenantID}\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientID\", e.target.value);\n cleanValidation(\"azure_client_id\");\n }}\n label=\"Client ID\"\n value={azureClientID}\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientSecret\", e.target.value);\n cleanValidation(\"azure_client_secret\");\n }}\n label=\"Client Secret\"\n value={azureClientSecret}\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n \n \n \n );\n};\n\nexport default AzureKMSAdd;\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, useCallback } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { updateAddField } from \"../../createTenantSlice\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst GCPKMSAdd = () => {\n const classes = useStyles();\n const dispatch = useAppDispatch();\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n return (\n \n \n ) => {\n updateField(\"gcpProjectID\", e.target.value);\n }}\n label=\"Project ID\"\n value={gcpProjectID}\n />\n \n \n ) => {\n updateField(\"gcpEndpoint\", e.target.value);\n }}\n label=\"Endpoint\"\n value={gcpEndpoint}\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"gcpClientEmail\", e.target.value);\n }}\n label=\"Client Email\"\n value={gcpClientEmail}\n />\n \n \n ) => {\n updateField(\"gcpClientID\", e.target.value);\n }}\n label=\"Client ID\"\n value={gcpClientID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKeyID\", e.target.value);\n }}\n label=\"Private Key ID\"\n value={gcpPrivateKeyID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKey\", e.target.value);\n }}\n label=\"Private Key\"\n value={gcpPrivateKey}\n />\n \n \n \n \n );\n};\n\nexport default GCPKMSAdd;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport FileSelector from \"../../../../Common/FormComponents/FileSelector/FileSelector\";\nimport {\n addFileGemaltoCa,\n isPageValid,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst GemaltoKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const gemaltoCA = useSelector(\n (state: AppState) => state.createTenant.certificates.gemaltoCA\n );\n const gemaltoEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoEndpoint\n );\n const gemaltoToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoToken\n );\n const gemaltoDomain = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoDomain\n );\n const gemaltoRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoRetry\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoEndpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoToken,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoDomain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoRetry,\n customValidation: parseInt(gemaltoRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [gemaltoEndpoint, gemaltoToken, gemaltoDomain, gemaltoRetry, dispatch]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"gemaltoEndpoint\", e.target.value);\n cleanValidation(\"gemalto_endpoint\");\n }}\n label=\"Endpoint\"\n value={gemaltoEndpoint}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"gemaltoToken\", e.target.value);\n cleanValidation(\"gemalto_token\");\n }}\n label=\"Token\"\n value={gemaltoToken}\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoDomain\", e.target.value);\n cleanValidation(\"gemalto_domain\");\n }}\n label=\"Domain\"\n value={gemaltoDomain}\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoRetry\", e.target.value);\n cleanValidation(\"gemalto_retry\");\n }}\n label=\"Retry (seconds)\"\n value={gemaltoRetry}\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n \n \n \n \n \n Custom CA Root certificate verification\n \n\n {\n dispatch(\n addFileGemaltoCa({\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"gemalto_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={gemaltoCA.cert}\n />\n \n \n \n );\n};\n\nexport default GemaltoKMSAdd;\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, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n })\n);\n\nconst AWSKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const awsEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsEndpoint\n );\n const awsRegion = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsRegion\n );\n const awsKMSKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsKMSKey\n );\n const awsAccessKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsAccessKey\n );\n const awsSecretKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsSecretKey\n );\n const awsToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsToken\n );\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsEndpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsRegion,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsAccessKey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsSecretKey,\n },\n ];\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [awsEndpoint, awsRegion, awsSecretKey, awsAccessKey, dispatch]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"awsEndpoint\", e.target.value);\n cleanValidation(\"aws_endpoint\");\n }}\n label=\"Endpoint\"\n value={awsEndpoint}\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsRegion\", e.target.value);\n cleanValidation(\"aws_region\");\n }}\n label=\"Region\"\n value={awsRegion}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsKMSKey\", e.target.value);\n }}\n label=\"KMS Key\"\n value={awsKMSKey}\n />\n \n \n \n Credentials \n \n ) => {\n updateField(\"awsAccessKey\", e.target.value);\n cleanValidation(\"aws_accessKey\");\n }}\n label=\"Access Key\"\n value={awsAccessKey}\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsSecretKey\", e.target.value);\n cleanValidation(\"aws_secretKey\");\n }}\n label=\"Secret Key\"\n value={awsSecretKey}\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsToken\", e.target.value);\n }}\n label=\"Token\"\n value={awsToken}\n />\n \n \n \n \n );\n};\n\nexport default AWSKMSAdd;\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\n\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport {\n addFileClientCert,\n addFileServerCert,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport VaultKMSAdd from \"./Encryption/VaultKMSAdd\";\nimport AzureKMSAdd from \"./Encryption/AzureKMSAdd\";\nimport GCPKMSAdd from \"./Encryption/GCPKMSAdd\";\nimport GemaltoKMSAdd from \"./Encryption/GemaltoKMSAdd\";\nimport AWSKMSAdd from \"./Encryption/AWSKMSAdd\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\n\ninterface IEncryptionProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n encryptionTypeOptions: {\n marginBottom: 15,\n },\n mutualTlsConfig: {\n marginTop: 15,\n \"& fieldset\": {\n flex: 1,\n },\n },\n rightSpacer: {\n marginRight: 15,\n },\n responsiveContainer: {\n \"@media (max-width: 900px)\": {\n display: \"flex\",\n flexFlow: \"column\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Encryption = ({ classes }: IEncryptionProps) => {\n const dispatch = useAppDispatch();\n\n const replicas = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.replicas\n );\n const enableEncryption = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.enableEncryption\n );\n const encryptionType = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionType\n );\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey\n );\n const enableCustomCertsForKES = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.enableCustomCertsForKES\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert\n );\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS\n );\n const minioCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.minioCertificates\n );\n const serverCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.serverCertificate\n );\n const clientCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.clientCertificate\n );\n\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts\n );\n const kesSecurityContext = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.kesSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n let encryptionAvailable = false;\n if (\n enableTLS &&\n (enableAutoCert ||\n (minioCertificates &&\n minioCertificates.filter(\n (item) => item.encoded_key && item.encoded_cert\n ).length > 0))\n ) {\n encryptionAvailable = true;\n }\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (enableEncryption) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: kesSecurityContext.runAsUser,\n customValidation:\n kesSecurityContext.runAsUser === \"\" ||\n parseInt(kesSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: kesSecurityContext.runAsGroup,\n customValidation:\n kesSecurityContext.runAsGroup === \"\" ||\n parseInt(kesSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: kesSecurityContext.fsGroup,\n customValidation:\n kesSecurityContext.fsGroup === \"\" ||\n parseInt(kesSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enableCustomCerts) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_key,\n },\n {\n fieldKey: \"serverCert\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_cert,\n },\n {\n fieldKey: \"clientKey\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_key,\n },\n {\n fieldKey: \"clientCert\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_cert,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n enableEncryption,\n encryptionType,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n dispatch,\n enableAutoCert,\n enableCustomCerts,\n serverCertificate.encoded_key,\n serverCertificate.encoded_cert,\n clientCertificate.encoded_key,\n clientCertificate.encoded_cert,\n kesSecurityContext,\n replicas,\n ]);\n\n return (\n \n \n \n Encryption \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableEncryption\", checked);\n }}\n description=\"\"\n disabled={!encryptionAvailable}\n />\n \n \n \n \n \n MinIO Server-Side Encryption (SSE) protects objects as part of write\n operations, allowing clients to take advantage of server processing\n power to secure objects at the storage layer (encryption-at-rest).\n SSE also provides key functionality to regulatory and compliance\n requirements around secure locking and erasure.\n \n \n \n \n \n\n {enableEncryption && (\n \n \n {\n updateField(\"encryptionType\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && }\n {encryptionType === \"azure\" && }\n {encryptionType === \"gcp\" && }\n {encryptionType === \"aws\" && }\n {encryptionType === \"gemalto\" && }\n \n
Additional Configurations \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCertsForKES\", checked);\n }}\n label={\"Custom Certificates\"}\n disabled={!enableAutoCert}\n />\n \n {(enableCustomCertsForKES || !enableAutoCert) && (\n \n \n \n \n \n Encryption Service Certificates\n \n {\n dispatch(\n addFileServerCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n error={validationErrors[\"serverKey\"] || \"\"}\n value={serverCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileServerCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n error={validationErrors[\"serverCert\"] || \"\"}\n value={serverCertificate.cert}\n required={!enableAutoCert}\n />\n \n \n \n \n \n \n \n Mutual TLS authentication with MinIO\n \n {\n dispatch(\n addFileClientCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n error={validationErrors[\"clientKey\"] || \"\"}\n value={clientCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileClientCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n })\n );\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n error={validationErrors[\"clientCert\"] || \"\"}\n value={clientCertificate.cert}\n required={!enableAutoCert}\n />\n \n \n \n \n )}\n \n \n ) => {\n updateField(\"replicas\", e.target.value);\n cleanValidation(\"replicas\");\n }}\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n \n \n SecurityContext for KES pods\n \n \n \n
\n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={kesSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={kesSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n
\n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={kesSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(Encryption);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\n\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { LabelKeyPair } from \"../../types\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../common/api\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../Common/TolerationSelector/TolerationSelector\";\nimport { setModalErrorSnackMessage } from \"../../../../../systemSlice\";\nimport {\n addNewToleration,\n isPageValid,\n removeToleration,\n setKeyValuePairs,\n setTolerationInfo,\n updateAddField,\n} from \"../createTenantSlice\";\n\ninterface IAffinityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({ classes }: IAffinityProps) => {\n const dispatch = useAppDispatch();\n\n const podAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.podAffinity\n );\n const nodeSelectorLabels = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.nodeSelectorLabels\n );\n const withPodAntiAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.withPodAntiAffinity\n );\n const keyValuePairs = useSelector(\n (state: AppState) => state.createTenant.nodeSelectorPairs\n );\n const tolerations = useSelector(\n (state: AppState) => state.createTenant.tolerations\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {}\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"affinity\",\n field: field,\n value: value,\n })\n );\n },\n [dispatch]\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n setKeyValueMap({});\n });\n }\n }, [dispatch, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"affinity\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n dispatch(\n setTolerationInfo({\n index: index,\n tolerationValue: alterToleration,\n })\n );\n };\n\n return (\n \n \n
Pod Placement \n \n Configure how pods will be assigned to nodes\n \n \n \n \n Type
\n \n MinIO supports multiple configurations for Pod Affinity\n
\n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n \n \n {podAffinity === \"nodeSelector\" && (\n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n Labels \n {validationErrors[\"labels\"]} \n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const newLKP: LabelKeyPair = {\n key: newKey,\n value: keyValueMap[newKey][0],\n };\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = newLKP;\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n \n
{\n const arrCp = [...keyValuePairs];\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n dispatch(setKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n {keyValuePairs.length > 1 && (\n \n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i\n );\n dispatch(setKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n )}\n \n \n );\n })}\n \n \n \n )}\n \n \n Tolerations \n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n \n
{\n dispatch(addNewToleration());\n }}\n disabled={i !== tolerations.length - 1}\n >\n \n \n
\n\n \n dispatch(removeToleration(i))}\n disabled={tolerations.length <= 1}\n >\n \n \n
\n \n );\n })}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(Affinity);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\n\ninterface IImagesProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Images = ({ classes }: IImagesProps) => {\n const dispatch = useAppDispatch();\n\n const customImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customImage\n );\n const imageName = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageName\n );\n const customDockerhub = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customDockerhub\n );\n const imageRegistry = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageRegistry\n );\n const imageRegistryUsername = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryUsername\n );\n const imageRegistryPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryPassword\n );\n\n const prometheusCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusEnabled\n );\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom\n );\n const logSearchCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchEnabled\n );\n const logSearchVolumeSize = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchVolumeSize\n );\n\n const prometheusVolumeSize = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusVolumeSize\n );\n\n const logSearchSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchSelectedStorageClass\n );\n const logSearchImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchImage\n );\n const kesImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.kesImage\n );\n const logSearchPostgresImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresImage\n );\n const logSearchPostgresInitImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresInitImage\n );\n const prometheusSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSelectedStorageClass\n );\n const prometheusImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusImage\n );\n const prometheusSidecarImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSidecarImage\n );\n const prometheusInitImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusInitImage\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n if (logSearchCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n\n if (customImage) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"image\",\n required: false,\n value: imageName,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/minio:VERSION'\",\n },\n {\n fieldKey: \"logSearchImage\",\n required: false,\n value: logSearchImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/operator:VERSION'\",\n },\n {\n fieldKey: \"kesImage\",\n required: false,\n value: kesImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/kes:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresImage\",\n required: false,\n value: logSearchPostgresImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/postgres:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresInitImage\",\n required: false,\n value: logSearchPostgresInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n {\n fieldKey: \"prometheusImage\",\n required: false,\n value: prometheusImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/prometheus:VERSION'\",\n },\n {\n fieldKey: \"prometheusSidecarImage\",\n required: false,\n value: prometheusSidecarImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'project/container:VERSION'\",\n },\n {\n fieldKey: \"prometheusInitImage\",\n required: false,\n value: prometheusInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n ];\n if (customDockerhub) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"registry\",\n required: true,\n value: imageRegistry,\n },\n {\n fieldKey: \"registryUsername\",\n required: true,\n value: imageRegistryUsername,\n },\n {\n fieldKey: \"registryPassword\",\n required: true,\n value: imageRegistryPassword,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n customImage,\n imageName,\n logSearchImage,\n kesImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n dispatch,\n prometheusCustom,\n tenantCustom,\n logSearchCustom,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n
Container Images \n \n Specify the container images used by the Tenant and it's features.\n \n \n\n \n \n ) => {\n updateField(\"imageName\", e.target.value);\n cleanValidation(\"image\");\n }}\n label=\"MinIO\"\n value={imageName}\n error={validationErrors[\"image\"] || \"\"}\n placeholder=\"minio/minio:RELEASE.2022-02-26T02-54-46Z\"\n />\n \n\n \n ) => {\n updateField(\"kesImage\", e.target.value);\n cleanValidation(\"kesImage\");\n }}\n label=\"KES\"\n value={kesImage}\n error={validationErrors[\"kesImage\"] || \"\"}\n placeholder=\"minio/kes:v0.17.6\"\n />\n \n \n Log Search \n \n \n ) => {\n updateField(\"logSearchImage\", e.target.value);\n cleanValidation(\"logSearchImage\");\n }}\n label=\"API\"\n value={logSearchImage}\n error={validationErrors[\"logSearchImage\"] || \"\"}\n placeholder=\"minio/operator:v4.4.22\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresImage\", e.target.value);\n cleanValidation(\"logSearchPostgresImage\");\n }}\n label=\"PostgreSQL\"\n value={logSearchPostgresImage}\n error={validationErrors[\"logSearchPostgresImage\"] || \"\"}\n placeholder=\"library/postgres:13\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresInitImage\", e.target.value);\n cleanValidation(\"logSearchPostgresInitImage\");\n }}\n label=\"PostgreSQL Init\"\n value={logSearchPostgresInitImage}\n error={validationErrors[\"logSearchPostgresInitImage\"] || \"\"}\n placeholder=\"library/busybox:1.33.1\"\n />\n \n \n Monitoring \n \n \n ) => {\n updateField(\"prometheusImage\", e.target.value);\n cleanValidation(\"prometheusImage\");\n }}\n label=\"Prometheus\"\n value={prometheusImage}\n error={validationErrors[\"prometheusImage\"] || \"\"}\n placeholder=\"quay.io/prometheus/prometheus:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusSidecarImage\", e.target.value);\n cleanValidation(\"prometheusSidecarImage\");\n }}\n label=\"Prometheus Sidecar\"\n value={prometheusSidecarImage}\n error={validationErrors[\"prometheusSidecarImage\"] || \"\"}\n placeholder=\"library/alpine:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusInitImage\", e.target.value);\n cleanValidation(\"prometheusInitImage\");\n }}\n label=\"Prometheus Init\"\n value={prometheusInitImage}\n error={validationErrors[\"prometheusInitImage\"] || \"\"}\n placeholder=\"library/busybox:1.33.1\"\n />\n \n \n\n {customImage && (\n \n \n Custom Container Registry \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customDockerhub\", checked);\n }}\n label={\"Use a private container registry\"}\n />\n \n \n )}\n {customDockerhub && (\n \n \n ) => {\n updateField(\"imageRegistry\", e.target.value);\n }}\n label=\"Endpoint\"\n value={imageRegistry}\n error={validationErrors[\"registry\"] || \"\"}\n placeholder=\"https://index.docker.io/v1/\"\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryUsername\", e.target.value);\n }}\n label=\"Username\"\n value={imageRegistryUsername}\n error={validationErrors[\"registryUsername\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryPassword\", e.target.value);\n }}\n label=\"Password\"\n value={imageRegistryPassword}\n error={validationErrors[\"registryPassword\"] || \"\"}\n required\n />\n \n \n )}\n \n );\n};\n\nexport default withStyles(styles)(Images);\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 { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport { niceBytes } from \"../../../../../common/utils\";\n\nimport { Divider } from \"@mui/material\";\n\ninterface ISizePreviewProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n margin: 4,\n },\n table: {\n \"& .MuiTableCell-root\": {\n fontSize: 13,\n },\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst SizePreview = ({ classes }: ISizePreviewProps) => {\n const nodes = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.nodes\n );\n const memoryNode = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesMemoryRequest\n );\n const ecParity = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParity\n );\n\n const distribution = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.distribution\n );\n const ecParityCalc = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParityCalc\n );\n\n const cpuToUse = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesCPURequest\n );\n const integrationSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.integrationSelection\n );\n\n const usableInformation = ecParityCalc.storageFactors.find(\n (element) => element.erasureCode === ecParity\n );\n\n return (\n \n
Resource Allocation \n
\n
\n \n \n Number of Servers \n \n {parseInt(nodes) > 0 ? nodes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Drives per Server \n \n {distribution ? distribution.disks : \"-\"}\n \n \n \n Drive Capacity \n \n {distribution ? niceBytes(distribution.pvSize) : \"-\"}\n \n \n \n )}\n\n \n Total Volumes \n \n {distribution ? distribution.persistentVolumes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Memory per Node \n {memoryNode} Gi \n \n \n \n CPU Selection\n \n \n {cpuToUse}\n \n \n \n )}\n \n
\n {ecParityCalc.error === 0 && usableInformation && (\n
\n Erasure Code Configuration \n \n \n \n \n EC Parity \n \n {ecParity !== \"\" ? ecParity : \"-\"}\n \n \n \n Raw Capacity \n \n {niceBytes(ecParityCalc.rawCapacity)}\n \n \n \n Usable Capacity \n \n {niceBytes(usableInformation.maxCapacity)}\n \n \n \n \n Server Failures Tolerated\n \n \n {distribution\n ? Math.floor(\n usableInformation.maxFailureTolerations /\n distribution.disks\n )\n : \"-\"}\n \n \n \n
\n \n )}\n {integrationSelection.typeSelection !== \"\" &&\n integrationSelection.storageClass !== \"\" && (\n
\n Single Instance Configuration \n \n \n \n \n CPU \n \n {integrationSelection.CPU !== 0\n ? integrationSelection.CPU\n : \"-\"}\n \n \n \n Memory \n \n {integrationSelection.memory !== 0\n ? `${integrationSelection.memory} Gi`\n : \"-\"}\n \n \n \n Drives per Server \n \n {integrationSelection.drivesPerServer !== 0\n ? `${integrationSelection.drivesPerServer}`\n : \"-\"}\n \n \n \n \n Drive Size\n \n \n {integrationSelection.driveSize.driveSize}\n {integrationSelection.driveSize.sizeUnit}\n \n \n \n
\n \n )}\n
\n );\n};\n\nexport default withStyles(styles)(SizePreview);\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 { useSelector } from \"react-redux\";\nimport { DialogContentText, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n deleteDialogStyles,\n modalBasic,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"../../../../../../icons\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { closeAddNSModal } from \"../../createTenantSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { createNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...modalBasic,\n ...deleteDialogStyles,\n })\n);\n\nconst AddNamespaceModal = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace\n );\n const addNamespaceLoading = useSelector(\n (state: AppState) => state.createTenant.addNSLoading\n );\n const addNamespaceOpen = useSelector(\n (state: AppState) => state.createTenant.addNSOpen\n );\n\n return (\n }\n isLoading={addNamespaceLoading}\n onConfirm={() => {\n dispatch(createNamespaceAsync());\n }}\n onClose={() => {\n dispatch(closeAddNSModal());\n }}\n confirmationContent={\n \n {addNamespaceLoading && }\n \n Are you sure you want to add a namespace called\n \n {namespace} ?\n \n \n }\n />\n );\n};\n\nexport default AddNamespaceModal;\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, useEffect, useMemo } from \"react\";\nimport AddIcon from \"../../../../../../icons/AddIcon\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { openAddNSModal, setNamespace } from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddNamespaceModal from \"../helpers/AddNamespaceModal\";\nimport debounce from \"lodash/debounce\";\nimport { IMkEnvs } from \"./utils\";\nimport { validateNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst NamespaceSelector = ({ formToRender }: { formToRender?: IMkEnvs }) => {\n const dispatch = useAppDispatch();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace\n );\n\n const showNSCreateButton = useSelector(\n (state: AppState) => state.createTenant.showNSCreateButton\n );\n\n const namespaceError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"namespace\"]\n );\n const openAddNSConfirm = useSelector(\n (state: AppState) => state.createTenant.addNSOpen\n );\n\n const debounceNamespace = useMemo(\n () =>\n debounce(() => {\n dispatch(validateNamespaceAsync());\n }, 500),\n [dispatch]\n );\n\n useEffect(() => {\n if (namespace !== \"\") {\n debounceNamespace();\n // Cancel previous debounce calls during useEffect cleanup.\n return debounceNamespace.cancel;\n }\n }, [debounceNamespace, namespace]);\n\n const addNamespace = () => {\n dispatch(openAddNSModal());\n };\n\n return (\n \n {openAddNSConfirm && }\n ) => {\n dispatch(setNamespace(e.target.value));\n }}\n label=\"Namespace\"\n value={namespace}\n error={namespaceError || \"\"}\n overlayId={\"add-namespace\"}\n overlayIcon={showNSCreateButton ? : null}\n overlayAction={addNamespace}\n required\n />\n \n );\n};\nexport default NamespaceSelector;\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 } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport SizePreview from \"../SizePreview\";\nimport TenantSize from \"./TenantSize\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport { IMkEnvs, mkPanelConfigurations } from \"./utils\";\nimport {\n isPageValid,\n setStorageType,\n setTenantName,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { selFeatures } from \"../../../../consoleSlice\";\nimport NamespaceSelector from \"./NamespaceSelector\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizePreview: {\n position: \"fixed\",\n marginLeft: 10,\n background: \"#FFFFFF\",\n border: \"1px solid #EAEAEA\",\n padding: 2,\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst NameTenantField = () => {\n const dispatch = useAppDispatch();\n const tenantName = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.tenantName\n );\n\n const tenantNameError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"tenant-name\"]\n );\n\n return (\n ) => {\n dispatch(setTenantName(e.target.value));\n }}\n label=\"Name\"\n value={tenantName}\n required\n error={tenantNameError || \"\"}\n />\n );\n};\n\ninterface INameTenantMainScreen {\n classes: any;\n formToRender?: IMkEnvs;\n}\n\nconst NameTenantMain = ({ classes, formToRender }: INameTenantMainScreen) => {\n const dispatch = useAppDispatch();\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n const selectedStorageType = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageType\n );\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses\n );\n const features = useSelector(selFeatures);\n\n // Common\n const updateField = useCallback(\n (field: string, value: string) => {\n dispatch(\n updateAddField({ pageName: \"nameTenant\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n const isValid =\n (formToRender === IMkEnvs.default && storageClasses.length > 0) ||\n (formToRender !== IMkEnvs.default && selectedStorageType !== \"\");\n\n dispatch(isPageValid({ pageName: \"nameTenant\", valid: isValid }));\n }, [storageClasses, dispatch, selectedStorageType, formToRender]);\n\n return (\n \n \n \n \n \n \n \n
Name \n \n How would you like to name this new tenant?\n \n \n \n \n
\n \n \n \n \n {formToRender === IMkEnvs.default ? (\n \n ) => {\n updateField(\n \"selectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Storage Class\"\n value={selectedStorageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n ) : (\n \n ) => {\n dispatch(\n setStorageType({\n storageType: e.target.value as string,\n features: features,\n })\n );\n }}\n label={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorLabel`,\n \"Storage Type\"\n )}\n value={selectedStorageType}\n options={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorValues`,\n []\n )}\n />\n \n )}\n {formToRender === IMkEnvs.default ? (\n \n ) : (\n get(\n mkPanelConfigurations,\n `${formToRender}.sizingComponent`,\n null\n )\n )}\n \n \n \n \n \n \n
\n \n \n \n );\n};\n\nexport default withStyles(styles)(NameTenantMain);\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 { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport NameTenantMain from \"./NameTenantMain\";\nimport { IMkEnvs, resourcesConfigurations } from \"./utils\";\nimport { selFeatures } from \"../../../../consoleSlice\";\n\nconst TenantResources = () => {\n const features = useSelector(selFeatures);\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n if (formRender === null) {\n return null;\n }\n\n return ;\n};\n\nexport default TenantResources;\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, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n logSearchEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigLogSearch = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses\n );\n const logSearchEnabled = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchEnabled\n );\n const logSearchVolumeSize = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchVolumeSize\n );\n const logSearchSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchSelectedStorageClass\n );\n const logSearchImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.logSearchImage\n );\n const logSearchPostgresImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresImage\n );\n const logSearchPostgresInitImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresInitImage\n );\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext\n );\n const logSearchSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchSecurityContext\n );\n const logSearchPostgresSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.logSearchPostgresSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (logSearchEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsUser\",\n required: true,\n value: logSearchSecurityContext.runAsUser,\n customValidation:\n logSearchSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_fsGroup\",\n required: true,\n value: logSearchSecurityContext.fsGroup,\n customValidation:\n logSearchSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsUser\",\n required: true,\n value: logSearchPostgresSecurityContext.runAsUser,\n customValidation:\n logSearchPostgresSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchPostgresSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_fsGroup\",\n required: true,\n value: logSearchPostgresSecurityContext.fsGroup,\n customValidation:\n logSearchPostgresSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n logSearchImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n dispatch,\n logSearchEnabled,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n tenantSecurityContext,\n logSearchSecurityContext,\n logSearchPostgresSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterLogSearch = storageClasses.filter(\n (item: any) => item.value === logSearchSelectedStorageClass\n );\n if (filterLogSearch.length === 0) {\n updateField(\"logSearchSelectedStorageClass\", \"default\");\n }\n }\n }, [\n logSearchSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n \n Audit Log \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"logSearchEnabled\", checked);\n }}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n \n \n \n \n \n Deploys a small PostgreSQL database and stores access logs of all\n calls into the tenant.\n \n \n \n \n \n {logSearchEnabled && (\n \n \n ) => {\n updateField(\n \"logSearchSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Log Search Storage Class\"\n value={logSearchSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n \n ) => {\n updateField(\"logSearchVolumeSize\", e.target.value);\n cleanValidation(\"log_search_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={logSearchVolumeSize}\n required\n error={validationErrors[\"log_search_volume_size\"] || \"\"}\n min=\"0\"\n />\n
\n \n\n \n \n SecurityContext for LogSearch\n \n\n \n \n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"logSearch_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"logSearch_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"logSearch_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n \n SecurityContext for PostgreSQL\n \n\n \n \n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchPostgresSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"postgres_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchPostgresSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"postgres_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchPostgresSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"postgres_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(ConfigLogSearch);\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, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n prometheusEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigPrometheus = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses\n );\n const prometheusEnabled = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusEnabled\n );\n const prometheusVolumeSize = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusVolumeSize\n );\n const prometheusSelectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSelectedStorageClass\n );\n const prometheusImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusImage\n );\n const prometheusSidecarImage = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSidecarImage\n );\n const prometheusInitImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.prometheusInitImage\n );\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext\n );\n const prometheusSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.prometheusSecurityContext\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value })\n );\n },\n [dispatch]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greater than 0`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsUser\",\n required: true,\n value: prometheusSecurityContext.runAsUser,\n customValidation:\n prometheusSecurityContext.runAsUser === \"\" ||\n parseInt(prometheusSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsGroup\",\n required: true,\n value: prometheusSecurityContext.runAsGroup,\n customValidation:\n prometheusSecurityContext.runAsGroup === \"\" ||\n parseInt(prometheusSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_fsGroup\",\n required: true,\n value: prometheusSecurityContext.fsGroup,\n customValidation:\n prometheusSecurityContext.fsGroup === \"\" ||\n parseInt(prometheusSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n })\n );\n\n setValidationErrors(commonVal);\n }, [\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n dispatch,\n prometheusEnabled,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n tenantSecurityContext,\n prometheusSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterPrometheus = storageClasses.filter(\n (item: any) => item.value === prometheusSelectedStorageClass\n );\n if (filterPrometheus.length === 0) {\n updateField(\"prometheusSelectedStorageClass\", \"default\");\n }\n }\n }, [\n prometheusSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n \n Monitoring \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"prometheusEnabled\", checked);\n }}\n description=\"\"\n />\n \n \n \n \n A small Prometheus will be deployed to keep metrics about the tenant.\n \n \n \n \n \n \n {prometheusEnabled && (\n \n \n ) => {\n updateField(\n \"prometheusSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Storage Class\"\n value={prometheusSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n \n ) => {\n updateField(\"prometheusVolumeSize\", e.target.value);\n cleanValidation(\"prometheus_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={prometheusVolumeSize}\n required\n error={validationErrors[\"prometheus_volume_size\"] || \"\"}\n min=\"0\"\n />\n
\n \n \n \n SecurityContext\n \n \n \n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={prometheusSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\n \"prometheus_securityContext_runAsGroup\"\n );\n }}\n label=\"Run As Group\"\n value={prometheusSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n \n \n \n \n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={prometheusSecurityContext.fsGroup}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_fsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n
\n
\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(ConfigPrometheus);\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 .\nexport const requiredPages = [\n \"nameTenant\",\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n];\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 { Button } from \"@mui/material\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { requiredPages } from \"./common\";\nimport { createTenantAsync } from \"./thunks/createTenantThunk\";\n\nconst CreateTenantButton = () => {\n const dispatch = useAppDispatch();\n\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant\n );\n\n const validPages = useSelector(\n (state: AppState) => state.createTenant.validPages\n );\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass\n );\n\n const enabled =\n !addSending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v));\n\n return (\n {\n dispatch(createTenantAsync());\n }}\n disabled={!enabled}\n key={`button-AddTenant-Create`}\n >\n Create\n \n );\n};\n\nexport default CreateTenantButton;\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 CredentialsPrompt from \"../../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst NewTenantCredentials = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const showNewCredentials = useSelector(\n (state: AppState) => state.createTenant.showNewCredentials\n );\n const createdAccount = useSelector(\n (state: AppState) => state.createTenant.createdAccount\n );\n\n return (\n \n {showNewCredentials && (\n {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n }}\n entity=\"Tenant\"\n />\n )}\n \n );\n};\n\nexport default NewTenantCredentials;\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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n modalBasic,\n settingsCommon,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport {\n IWizardButton,\n IWizardElement,\n} from \"../../Common/GenericWizard/types\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport Configure from \"./Steps/Configure\";\nimport IdentityProvider from \"./Steps/IdentityProvider\";\nimport Security from \"./Steps/Security\";\nimport Encryption from \"./Steps/Encryption\";\nimport Affinity from \"./Steps/Affinity\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport Images from \"./Steps/Images\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport BackLink from \"../../../../common/BackLink\";\nimport TenantResources from \"./Steps/TenantResources/TenantResources\";\nimport ConfigLogSearch from \"./Steps/ConfigLogSearch\";\nimport ConfigPrometheus from \"./Steps/ConfigPrometheus\";\nimport {\n IMkEnvs,\n resourcesConfigurations,\n} from \"./Steps/TenantResources/utils\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { StorageIcon } from \"../../../../icons\";\nimport { selFeatures } from \"../../consoleSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport CreateTenantButton from \"./CreateTenantButton\";\nimport NewTenantCredentials from \"./NewTenantCredentials\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n pageBox: {\n border: \"1px solid #EAEAEA\",\n },\n ...modalBasic,\n ...wizardCommon,\n ...settingsCommon,\n })\n);\n\nconst AddTenant = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const features = useSelector(selFeatures);\n\n // Fields\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant\n );\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n },\n };\n\n const createButton: IWizardButton = {\n componentRender: ,\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configure\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Images\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Identity Provider\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Security\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Encryption\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Audit Log\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Monitoring\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n let filteredWizardSteps = wizardSteps;\n\n return (\n \n \n {\n dispatch(resetAddTenantForm());\n }}\n />\n }\n />\n\n \n {addSending && (\n \n \n \n )}\n \n \n \n {formRender === IMkEnvs.aws && (\n \n }\n help={\n \n Performance Optimized : Uses the gp3 EBS storage\n class class configured at 1,000Mi/s throughput and 16,000\n IOPS, however the minimum volume size for this type of EBS\n volume is 32Gi .\n \n \n Storage Optimized : Uses the sc1 EBS storage\n class, however the minimum volume size for this type of EBS\n volume is \n 16Ti to unlock their maximum throughput speed of\n 250Mi/s.\n \n }\n />\n \n )}\n \n \n );\n};\n\nexport default AddTenant;\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 { Grid } from \"@mui/material\";\nimport LDAPIcon from \"../../../icons/LDAPIcon\";\nimport { OIDCIcon } from \"../../../icons\";\nimport { UsersIcon } from \"../../../icons\";\n\nexport const OIDCLogoElement = () => {\n return (\n \n \n \n \n Open ID \n \n );\n};\n\nexport const LDAPLogoElement = () => {\n return (\n \n \n \n \n LDAP / Active Directory \n \n );\n};\n\nexport const BuiltInLogoElement = () => {\n return (\n \n \n \n \n Built-in \n \n );\n};\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"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","props","xmlns","fill","viewBox","id","d","transform","clipPath","flexFlow","padding","inputWithCopy","background","inputLabel","fieldBasic","label","value","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","style","body","appendChild","click","removeChild","warningBlock","color","margin","credentialTitle","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","titleIcon","Grid","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","undefined","WarnIcon","RBIconButton","consoleExtras","itemMap","url","api","path","JSON","stringify","icon","variant","length","allCredentials","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","fileInputField","fileInputStyles","textBoxContainer","onChange","name","disabled","required","error","accept","useState","showFileSelector","setShowSelector","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","placement","HelpIcon","type","e","fileName","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","deleteDialogStyles","content","customDialogSize","snackBarCommon","children","wideLimit","noContentPadding","dispatch","useAppDispatch","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","event","reason","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","configSectionItem","tenantCustomizationFields","marginLeft","containerItem","fieldGroup","createTenantCommon","responsiveSectionItem","wrapperContainer","overlayAction","modalBasic","wizardCommon","exposeMinIO","createTenant","fields","configure","exposeConsole","setDomains","consoleDomain","minioDomains","tenantCustom","tenantSecurityContext","validationErrors","setValidationErrors","updateField","useCallback","field","updateAddField","pageName","customAccountValidation","fieldKey","runAsUser","customValidation","parseInt","customValidationMessage","runAsGroup","fsGroup","minioExtraValidations","validation","pattern","customPatternMessage","commonVal","commonFormValidation","isPageValid","valid","Object","keys","cleanValidation","fieldName","clearValidationError","Paper","paperWrapper","headerElement","h3Section","descriptionText","FormSwitchWrapper","checked","InputBoxWrapper","placeholder","domain","copyDomains","updateMinIODomain","addNewMinIODomain","Add","removeMinIODomain","RemoveIcon","multiContainer","min","SelectWrapper","fsGroupChangePolicy","options","runAsNonRoot","useStyles","makeStyles","adUserDnRows","buttonTray","formFieldStyles","idpSelection","identityProvider","ADURL","ADSkipTLS","ADServerInsecure","ADGroupSearchBaseDN","ADGroupSearchFilter","ADUserDNs","ADGroupDNs","ADLookupBindDN","ADLookupBindPassword","ADUserDNSearchBaseDN","ADUserDNSearchFilter","ADServerStartTLS","customIDPValidation","Fragment","formFieldRow","Typography","gutterBottom","_","setIDPADUsrAtIndex","userDN","addIDPADUsrAtIndex","removeIDPADUsrAtIndex","Delete","setIDPADGroupAtIndex","addIDPADGroupAtIndex","removeIDPADGroupAtIndex","openIDConfigurationURL","openIDClientID","openIDSecretID","openIDCallbackURL","openIDClaimName","openIDScopes","shortened","gridTemplateColumns","gridGap","accessKeys","secretKeys","i","push","setIDPUsrAtIndex","setIDPPwdAtIndex","addIDPNewKeyPair","removeIDPKeyPairAtIndex","getRandomString","Casino","protocolRadioOptions","RadioGroupSelector","currentSelection","setIDP","selectorOptions","FeatureItem","description","Box","sx","fontStyle","namespace","nameTenant","tenantName","flex","CertificateIcon","href","rel","minioCertificateRows","justifyContent","borderBottom","fileItem","minWidth","minioCertsContainer","minioCACertsRow","rowActions","enableTLS","security","enableAutoCert","enableCustomCerts","minioCertificates","certificates","caCertificates","spacing","SectionTitle","keyPair","FileSelector","encodedValue","addFileToKeyPair","key","cert","addKeyPair","deleteKeyPair","addFileToCaCertificates","addCaCertificate","deleteCaCertificate","vaultEndpoint","encryption","vaultEngine","vaultNamespace","vaultPrefix","vaultAppRoleEngine","vaultId","vaultSecret","vaultRetry","vaultPing","vaultCertificate","vaultCA","encryptionValidation","mutualTlsConfig","addFileVaultCert","addFileVaultCa","azureEndpoint","azureTenantID","azureClientID","azureClientSecret","gcpProjectID","gcpEndpoint","gcpClientEmail","gcpClientID","gcpPrivateKeyID","gcpPrivateKey","gemaltoCA","gemaltoEndpoint","gemaltoToken","gemaltoDomain","gemaltoRetry","addFileGemaltoCa","awsEndpoint","awsRegion","awsKMSKey","awsAccessKey","awsSecretKey","awsToken","encryptionTypeOptions","rightSpacer","responsiveContainer","replicas","enableEncryption","encryptionType","enableCustomCertsForKES","serverCertificate","clientCertificate","kesSecurityContext","encryptionAvailable","filter","encoded_key","encoded_cert","indicatorLabels","hrClass","addFileServerCert","addFileClientCert","affinityConfigField","affinityFieldLabel","radioField","affinityLabelKey","affinityLabelValue","affinityRow","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","loading","setLoading","keyValueMap","setKeyValueMap","keyOptions","setKeyOptions","then","res","k","catch","err","setModalErrorSnackMessage","vl","kvp","kvs","a","indexOf","join","splittedLabels","forEach","splitItem","updateToleration","alterToleration","setTolerationInfo","tolerationValue","affinityHelpText","newKey","newLKP","arrCp","setKeyValuePairs","v","AddIcon","tol","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","addNewToleration","removeToleration","customImage","imageName","customDockerhub","imageRegistry","imageRegistryUsername","imageRegistryPassword","prometheusCustom","prometheusEnabled","logSearchCustom","logSearchEnabled","logSearchVolumeSize","prometheusVolumeSize","logSearchSelectedStorageClass","logSearchImage","kesImage","logSearchPostgresImage","logSearchPostgresInitImage","prometheusSelectedStorageClass","prometheusImage","prometheusSidecarImage","prometheusInitImage","table","nodes","tenantSize","memoryNode","resourcesMemoryRequest","ecParity","distribution","ecParityCalc","cpuToUse","resourcesCPURequest","integrationSelection","usableInformation","storageFactors","find","erasureCode","Divider","Table","TableBody","TableRow","TableCell","scope","align","typeSelection","storageClass","disks","niceBytes","pvSize","persistentVolumes","rawCapacity","maxCapacity","Math","floor","maxFailureTolerations","CPU","memory","drivesPerServer","driveSize","sizeUnit","wrapText","wordWrap","addNamespaceLoading","addNSLoading","addNamespaceOpen","addNSOpen","ConfirmDialog","confirmText","confirmButtonProps","isOpen","isLoading","onConfirm","createNamespaceAsync","closeAddNSModal","confirmationContent","LinearProgress","DialogContentText","formToRender","showNSCreateButton","namespaceError","openAddNSConfirm","debounceNamespace","useMemo","debounce","validateNamespaceAsync","cancel","setNamespace","overlayId","overlayIcon","openAddNSModal","NameTenantField","tenantNameError","setTenantName","sizePreview","selectedStorageClass","selectedStorageType","storageClasses","features","selFeatures","isValid","IMkEnvs","md","minHeight","setStorageType","storageType","mkPanelConfigurations","TenantSize","formRender","setFormRender","setConfiguration","resourcesConfigurations","includes","logSearchEnabledFields","fieldSpaceTop","logSearchSecurityContext","logSearchPostgresSecurityContext","configureSTClasses","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","prometheusEnabledFields","prometheusSecurityContext","requiredPages","addSending","addingTenant","validPages","enabled","every","Button","createTenantAsync","navigate","useNavigate","showNewCredentials","createdAccount","CredentialsPrompt","resetAddTenantForm","pageBox","settingsCommon","cancelButton","action","createButton","componentRender","filteredWizardSteps","buttons","advancedOnly","PageHeader","BackLink","to","executeOnClick","PageLayout","GenericWizard","wizardSteps","HelpBox","OIDCLogoElement","columnGap","LDAPLogoElement","BuiltInLogoElement","errorBlock","palette","main","withBreak"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1268.cb6b69cf.chunk.js b/portal-ui/build/static/js/1268.6b4f91d2.chunk.js
similarity index 96%
rename from portal-ui/build/static/js/1268.cb6b69cf.chunk.js
rename to portal-ui/build/static/js/1268.6b4f91d2.chunk.js
index 2e55fba53..53c3a7325 100644
--- a/portal-ui/build/static/js/1268.cb6b69cf.chunk.js
+++ b/portal-ui/build/static/js/1268.6b4f91d2.chunk.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1268],{92217:function(e,n,t){var o=t(1413),r=t(72791),i=t(61889),a=t(30829),c=t(20068),s=t(64554),l=t(11135),u=t(25787),d=t(84570),f=t(23814),p=t(15900),m=t(40603),x=t(78029),h=t.n(x),Z=t(85457),j=t(80184);n.Z=(0,u.Z)((function(e){return(0,l.Z)((0,o.Z)({},f.YI))}))((function(e){var n=e.value,t=e.label,o=void 0===t?"":t,l=e.tooltip,u=void 0===l?"":l,f=e.mode,x=void 0===f?"json":f,y=e.classes,b=e.onBeforeChange,v=(e.readOnly,e.editorHeight),g=void 0===v?"250px":v;return(0,j.jsxs)(r.Fragment,{children:[(0,j.jsx)(i.ZP,{item:!0,xs:12,children:(0,j.jsxs)(a.Z,{className:y.inputLabel,children:[(0,j.jsx)("span",{children:o}),""!==u&&(0,j.jsx)("div",{className:y.tooltipContainer,children:(0,j.jsx)(c.Z,{title:u,placement:"top-start",children:(0,j.jsx)("div",{className:y.tooltip,children:(0,j.jsx)(d.Z,{})})})})]})}),(0,j.jsx)(i.ZP,{item:!0,xs:12,style:{maxHeight:g,overflow:"auto"},children:(0,j.jsx)(Z.Z,{value:n,language:x,onChange:function(e){b(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,j.jsx)(i.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,j.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,j.jsx)(h(),{text:n,children:(0,j.jsx)(m.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,j.jsx)(p.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},82859:function(e,n,t){t.r(n);var o=t(29439),r=t(1413),i=t(72791),a=t(60364),c=t(16871),s=t(61889),l=t(40986),u=t(36151),d=t(11135),f=t(25787),p=t(81207),m=t(23814),x=t(92217),h=t(87995),Z=t(81551),j=t(82295),y=t(50896),b=t(80184);n.default=(0,f.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)({errorState:{color:"#b53b4b",fontSize:14,fontWeight:"bold"},codeMirrorContainer:{marginBottom:20,paddingLeft:15,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},m.ID),m.YI))}))((function(e){var n=e.classes,t=(0,Z.TL)(),r=(0,c.s0)(),d=(0,a.v9)((function(e){return e.tenants.currentTenant})),f=(0,a.v9)((function(e){return e.tenants.currentNamespace})),m=(0,i.useState)(!1),v=(0,o.Z)(m,2),g=v[0],C=v[1],S=(0,i.useState)(!1),P=(0,o.Z)(S,2),w=P[0],k=P[1],T=(0,i.useState)(""),O=(0,o.Z)(T,2),_=O[0],L=O[1],M=(0,i.useState)(""),E=(0,o.Z)(M,2),F=E[0],I=E[1];(0,i.useEffect)((function(){p.Z.invoke("GET","/api/v1/namespaces/".concat(f,"/tenants/").concat(d,"/yaml")).then((function(e){k(!1),L(e.yaml)})).catch((function(e){k(!1),t((0,h.zb)(e))}))}),[d,f,t]),(0,i.useEffect)((function(){}),[]);var N=""!==_.trim();return(0,b.jsxs)(i.Fragment,{children:[g||w&&(0,b.jsx)(s.ZP,{item:!0,xs:12,children:(0,b.jsx)(l.Z,{})}),""!==F&&(0,b.jsx)("div",{className:n.errorState,children:F}),!w&&(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),g||(C(!0),I(""),p.Z.invoke("PUT","/api/v1/namespaces/".concat(f,"/tenants/").concat(d,"/yaml"),{yaml:_}).then((function(e){C(!1),t((0,j.v)()),I(""),r("/namespaces/".concat(f,"/tenants/").concat(d,"/summary"))})).catch((function(e){C(!1),I(e.errorMessage)})))},children:(0,b.jsxs)(s.ZP,{container:!0,children:[(0,b.jsx)(s.ZP,{item:!0,xs:12,children:(0,b.jsx)(y.Z,{children:"Tenant Specification"})}),(0,b.jsx)(s.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,b.jsx)(x.Z,{value:_,mode:"yaml",onBeforeChange:function(e,n,t){L(t)},editorHeight:"550px"})}),(0,b.jsxs)(s.ZP,{item:!0,xs:12,style:{textAlign:"right",paddingTop:16},children:[(0,b.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",disabled:g,onClick:function(){r("/namespaces/".concat(f,"/tenants/").concat(d,"/summary"))},children:"Cancel"}),(0,b.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:g||!N,style:{marginLeft:8},children:"Save"})]})]})})]})}))},61120:function(e,n,t){function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}t.d(n,{Z:function(){return o}})},60136:function(e,n,t){t.d(n,{Z:function(){return r}});var o=t(89611);function r(e,n){if("function"!==typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&(0,o.Z)(e,n)}},82963:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(71002),r=t(97326);function i(e,n){if(n&&("object"===(0,o.Z)(n)||"function"===typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}}}]);
-//# sourceMappingURL=1268.cb6b69cf.chunk.js.map
\ No newline at end of file
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1268],{92217:function(e,n,t){var o=t(1413),r=t(72791),i=t(61889),a=t(30829),c=t(20068),s=t(64554),l=t(11135),u=t(25787),d=t(84570),f=t(23814),p=t(38734),m=t(40603),x=t(78029),h=t.n(x),Z=t(85457),j=t(80184);n.Z=(0,u.Z)((function(e){return(0,l.Z)((0,o.Z)({},f.YI))}))((function(e){var n=e.value,t=e.label,o=void 0===t?"":t,l=e.tooltip,u=void 0===l?"":l,f=e.mode,x=void 0===f?"json":f,y=e.classes,b=e.onBeforeChange,v=(e.readOnly,e.editorHeight),g=void 0===v?"250px":v;return(0,j.jsxs)(r.Fragment,{children:[(0,j.jsx)(i.ZP,{item:!0,xs:12,children:(0,j.jsxs)(a.Z,{className:y.inputLabel,children:[(0,j.jsx)("span",{children:o}),""!==u&&(0,j.jsx)("div",{className:y.tooltipContainer,children:(0,j.jsx)(c.Z,{title:u,placement:"top-start",children:(0,j.jsx)("div",{className:y.tooltip,children:(0,j.jsx)(d.Z,{})})})})]})}),(0,j.jsx)(i.ZP,{item:!0,xs:12,style:{maxHeight:g,overflow:"auto"},children:(0,j.jsx)(Z.Z,{value:n,language:x,onChange:function(e){b(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,j.jsx)(i.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,j.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,j.jsx)(h(),{text:n,children:(0,j.jsx)(m.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,j.jsx)(p.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},82859:function(e,n,t){t.r(n);var o=t(29439),r=t(1413),i=t(72791),a=t(60364),c=t(16871),s=t(61889),l=t(40986),u=t(36151),d=t(11135),f=t(25787),p=t(81207),m=t(23814),x=t(92217),h=t(87995),Z=t(25469),j=t(82295),y=t(50896),b=t(80184);n.default=(0,f.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)({errorState:{color:"#b53b4b",fontSize:14,fontWeight:"bold"},codeMirrorContainer:{marginBottom:20,paddingLeft:15,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},m.ID),m.YI))}))((function(e){var n=e.classes,t=(0,Z.TL)(),r=(0,c.s0)(),d=(0,a.v9)((function(e){return e.tenants.currentTenant})),f=(0,a.v9)((function(e){return e.tenants.currentNamespace})),m=(0,i.useState)(!1),v=(0,o.Z)(m,2),g=v[0],C=v[1],S=(0,i.useState)(!1),P=(0,o.Z)(S,2),w=P[0],k=P[1],T=(0,i.useState)(""),O=(0,o.Z)(T,2),_=O[0],L=O[1],M=(0,i.useState)(""),E=(0,o.Z)(M,2),F=E[0],I=E[1];(0,i.useEffect)((function(){p.Z.invoke("GET","/api/v1/namespaces/".concat(f,"/tenants/").concat(d,"/yaml")).then((function(e){k(!1),L(e.yaml)})).catch((function(e){k(!1),t((0,h.zb)(e))}))}),[d,f,t]),(0,i.useEffect)((function(){}),[]);var N=""!==_.trim();return(0,b.jsxs)(i.Fragment,{children:[g||w&&(0,b.jsx)(s.ZP,{item:!0,xs:12,children:(0,b.jsx)(l.Z,{})}),""!==F&&(0,b.jsx)("div",{className:n.errorState,children:F}),!w&&(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),g||(C(!0),I(""),p.Z.invoke("PUT","/api/v1/namespaces/".concat(f,"/tenants/").concat(d,"/yaml"),{yaml:_}).then((function(e){C(!1),t((0,j.v)()),I(""),r("/namespaces/".concat(f,"/tenants/").concat(d,"/summary"))})).catch((function(e){C(!1),I(e.errorMessage)})))},children:(0,b.jsxs)(s.ZP,{container:!0,children:[(0,b.jsx)(s.ZP,{item:!0,xs:12,children:(0,b.jsx)(y.Z,{children:"Tenant Specification"})}),(0,b.jsx)(s.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,b.jsx)(x.Z,{value:_,mode:"yaml",onBeforeChange:function(e,n,t){L(t)},editorHeight:"550px"})}),(0,b.jsxs)(s.ZP,{item:!0,xs:12,style:{textAlign:"right",paddingTop:16},children:[(0,b.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",disabled:g,onClick:function(){r("/namespaces/".concat(f,"/tenants/").concat(d,"/summary"))},children:"Cancel"}),(0,b.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:g||!N,style:{marginLeft:8},children:"Save"})]})]})})]})}))},61120:function(e,n,t){function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}t.d(n,{Z:function(){return o}})},60136:function(e,n,t){t.d(n,{Z:function(){return r}});var o=t(89611);function r(e,n){if("function"!==typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&(0,o.Z)(e,n)}},82963:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(71002),r=t(97326);function i(e,n){if(n&&("object"===(0,o.Z)(n)||"function"===typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}}}]);
+//# sourceMappingURL=1268.6b4f91d2.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1268.cb6b69cf.chunk.js.map b/portal-ui/build/static/js/1268.6b4f91d2.chunk.js.map
similarity index 99%
rename from portal-ui/build/static/js/1268.cb6b69cf.chunk.js.map
rename to portal-ui/build/static/js/1268.6b4f91d2.chunk.js.map
index fba647b6a..df002ebd8 100644
--- a/portal-ui/build/static/js/1268.cb6b69cf.chunk.js.map
+++ b/portal-ui/build/static/js/1268.6b4f91d2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/1268.cb6b69cf.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Tenants/TenantDetails/TenantYAML.tsx","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\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 } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\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 { useNavigate } from \"react-router-dom\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../common/api\";\nimport {\n fieldBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorState: {\n color: \"#b53b4b\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n paddingLeft: 15,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface ITenantYAML {\n yaml: string;\n}\n\ninterface ITenantYAMLProps {\n classes: any;\n}\n\nconst TenantYAML = ({ classes }: ITenantYAMLProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const tenant = useSelector((state: AppState) => state.tenants.currentTenant);\n const namespace = useSelector(\n (state: AppState) => state.tenants.currentNamespace\n );\n\n const [addLoading, setAddLoading] = useState(false);\n const [loading, setLoading] = useState(false);\n const [tenantYaml, setTenantYaml] = useState(\"\");\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const updateTenant = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n setErrorMessage(\"\");\n api\n .invoke(\"PUT\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`, {\n yaml: tenantYaml,\n })\n .then((res) => {\n setAddLoading(false);\n dispatch(getTenantAsync());\n setErrorMessage(\"\");\n navigate(`/namespaces/${namespace}/tenants/${tenant}/summary`);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorMessage(err.errorMessage);\n });\n };\n\n useEffect(() => {\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`)\n .then((res: ITenantYAML) => {\n setLoading(false);\n setTenantYaml(res.yaml);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [tenant, namespace, dispatch]);\n\n useEffect(() => {}, []);\n\n const validSave = tenantYaml.trim() !== \"\";\n\n return (\n \n {addLoading ||\n (loading && (\n \n \n \n ))}\n {errorMessage !== \"\" && (\n {errorMessage}
\n )}\n\n {!loading && (\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(TenantYAML);\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","id","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","errorState","fontWeight","codeMirrorContainer","marginBottom","paddingLeft","modalStyleUtils","dispatch","useAppDispatch","navigate","useNavigate","tenant","useSelector","state","tenants","currentTenant","namespace","currentNamespace","useState","addLoading","setAddLoading","loading","setLoading","tenantYaml","setTenantYaml","errorMessage","setErrorMessage","useEffect","api","then","res","yaml","catch","err","setModalErrorSnackMessage","validSave","trim","Fragment","noValidate","autoComplete","onSubmit","e","preventDefault","getTenantAsync","container","border","editor","data","textAlign","paddingTop","type","disabled","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/1268.6b4f91d2.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Tenants/TenantDetails/TenantYAML.tsx","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\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 } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\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 { useNavigate } from \"react-router-dom\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../common/api\";\nimport {\n fieldBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorState: {\n color: \"#b53b4b\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n paddingLeft: 15,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface ITenantYAML {\n yaml: string;\n}\n\ninterface ITenantYAMLProps {\n classes: any;\n}\n\nconst TenantYAML = ({ classes }: ITenantYAMLProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const tenant = useSelector((state: AppState) => state.tenants.currentTenant);\n const namespace = useSelector(\n (state: AppState) => state.tenants.currentNamespace\n );\n\n const [addLoading, setAddLoading] = useState(false);\n const [loading, setLoading] = useState(false);\n const [tenantYaml, setTenantYaml] = useState(\"\");\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const updateTenant = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n setErrorMessage(\"\");\n api\n .invoke(\"PUT\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`, {\n yaml: tenantYaml,\n })\n .then((res) => {\n setAddLoading(false);\n dispatch(getTenantAsync());\n setErrorMessage(\"\");\n navigate(`/namespaces/${namespace}/tenants/${tenant}/summary`);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorMessage(err.errorMessage);\n });\n };\n\n useEffect(() => {\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`)\n .then((res: ITenantYAML) => {\n setLoading(false);\n setTenantYaml(res.yaml);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [tenant, namespace, dispatch]);\n\n useEffect(() => {}, []);\n\n const validSave = tenantYaml.trim() !== \"\";\n\n return (\n \n {addLoading ||\n (loading && (\n \n \n \n ))}\n {errorMessage !== \"\" && (\n {errorMessage}
\n )}\n\n {!loading && (\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(TenantYAML);\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","id","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","errorState","fontWeight","codeMirrorContainer","marginBottom","paddingLeft","modalStyleUtils","dispatch","useAppDispatch","navigate","useNavigate","tenant","useSelector","state","tenants","currentTenant","namespace","currentNamespace","useState","addLoading","setAddLoading","loading","setLoading","tenantYaml","setTenantYaml","errorMessage","setErrorMessage","useEffect","api","then","res","yaml","catch","err","setModalErrorSnackMessage","validSave","trim","Fragment","noValidate","autoComplete","onSubmit","e","preventDefault","getTenantAsync","container","border","editor","data","textAlign","paddingTop","type","disabled","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1367.79a7a1e1.chunk.js b/portal-ui/build/static/js/1367.a94951c1.chunk.js
similarity index 98%
rename from portal-ui/build/static/js/1367.79a7a1e1.chunk.js
rename to portal-ui/build/static/js/1367.a94951c1.chunk.js
index 543e5ffb4..2e63607e2 100644
--- a/portal-ui/build/static/js/1367.79a7a1e1.chunk.js
+++ b/portal-ui/build/static/js/1367.a94951c1.chunk.js
@@ -1,2 +1,2 @@
-(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1367,2691],{92217:function(e,n,t){"use strict";var i=t(1413),r=t(72791),o=t(61889),a=t(30829),c=t(20068),s=t(64554),l=t(11135),d=t(25787),u=t(84570),p=t(23814),h=t(15900),f=t(40603),x=t(78029),m=t.n(x),v=t(85457),Z=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var n=e.value,t=e.label,i=void 0===t?"":t,l=e.tooltip,d=void 0===l?"":l,p=e.mode,x=void 0===p?"json":p,j=e.classes,b=e.onBeforeChange,g=(e.readOnly,e.editorHeight),C=void 0===g?"250px":g;return(0,Z.jsxs)(r.Fragment,{children:[(0,Z.jsx)(o.ZP,{item:!0,xs:12,children:(0,Z.jsxs)(a.Z,{className:j.inputLabel,children:[(0,Z.jsx)("span",{children:i}),""!==d&&(0,Z.jsx)("div",{className:j.tooltipContainer,children:(0,Z.jsx)(c.Z,{title:d,placement:"top-start",children:(0,Z.jsx)("div",{className:j.tooltip,children:(0,Z.jsx)(u.Z,{})})})})]})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:C,overflow:"auto"},children:(0,Z.jsx)(v.Z,{value:n,language:x,onChange:function(e){b(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,Z.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,Z.jsx)(m(),{text:n,children:(0,Z.jsx)(f.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,Z.jsx)(h.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},59114:function(e,n,t){"use strict";var i=t(4942),r=t(1413),o=(t(72791),t(63466)),a=t(74900),c=t(27391),s=t(25787),l=t(11135),d=t(23814),u=t(80184);n.Z=(0,s.Z)((function(e){return(0,l.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,r=e.classes,s=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,p=e.overrideClass,h=e.value,f=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:r.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(c.Z,{placeholder:t,className:p||r.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){s(e.target.value)},variant:"standard",value:h})}))},50276:function(e,n,t){"use strict";var i=t(1413),r=t(29439),o=t(72791),a=t(64554),c=t(43896),s=t(83449),l=t(47283),d=t(82851),u=t(25787),p=t(13967),h=t(11135),f=t(95193),x=t(80184),m={minHeight:60};n.Z=(0,u.Z)((function(e){return(0,h.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,u=e.selectedTab,h=void 0===u?"0":u,v=e.routes,Z=e.isRouteTabs,j=o.useState(h),b=(0,r.Z)(j,2),g=b[0],C=b[1],y=(0,p.Z)(),E=(0,f.Z)(y.breakpoints.down("md")),P=[],S=[];return n?(n.forEach((function(e){P.push(e.tabConfig),S.push(e.content)})),(0,x.jsx)(s.ZP,{value:"".concat(g),children:(0,x.jsxs)(a.Z,{className:t.tabsContainer,children:[(0,x.jsx)(a.Z,{className:t.tabsHeaderContainer,children:(0,x.jsx)(l.Z,{onChange:function(e,n){C(n)},orientation:E?"horizontal":"vertical",variant:E?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:P.map((function(e,n){return e?(0,x.jsx)(c.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:m},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,x.jsxs)(a.Z,{className:t.tabContentContainer,children:[Z?null:S.map((function(e,n){return(0,x.jsx)(d.Z,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),Z?(0,x.jsx)("div",{className:t.tabPanel,children:v}):null]})]})})):null}))},879:function(e,n,t){"use strict";t.d(n,{D_:function(){return a},Et:function(){return r},GJ:function(){return o},yh:function(){return i}});var i={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},r=function(e,n){return e<=n/2?i.RED:2!==n&&e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0},o=function(e){switch(e){case"offline":return i.RED;case"online":return i.GREEN;default:return i.YELLOW}},a=function(e,n){return e<=n/2?i.RED:e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0}},1191:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return W}});var i=t(29439),r=t(1413),o=t(72791),a=t(60364),c=t(16871),s=t(11135),l=t(25787),d=t(23814),u=t(10703),p=t(61889),h=t(36151),f=t(40986),x=t(92983),m=t(81207),v=t(32291),Z=t(92217),j=t(63466),b=t(27391),g=t(14917),C=t(64244),y=t(28789),E=t(74900),P=t(54599),S=t(74794),w=t(50276),N=t(84669),M=t(56087),T=t(38442),F=t(75578),R=t(40603),A=t(64554),I=t(59114),L=t(15900),k=t(879),O=t(80184),D={display:"grid",gridTemplateColumns:"60px 1fr",gap:"15px"},_=function(e){var n=e.search,t=void 0===n?"":n,i=e.children,r=void 0===i?"":i,o=new RegExp("(".concat(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}(t),")"),"i"),a=String(r).split(o);return t?a.map((function(e,n){return o.test(e)?(0,O.jsx)("mark",{children:e},n):e})):r},z=(0,l.Z)((function(e){return(0,s.Z)({searchField:(0,r.Z)((0,r.Z)({},d.qg.searchField),{},{maxWidth:380})})}))((function(e){var n=e.policyStatements,t=e.classes,r=void 0===t?{}:t,a=(0,o.useState)(""),c=(0,i.Z)(a,2),s=c[0],l=c[1];return(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsxs)(A.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},alignItems:"center",justifyContent:"space-between",gap:"15px"},children:[(0,O.jsx)(A.Z,{children:"Statements"}),(0,O.jsx)(I.Z,{placeholder:"Search",onChange:l,overrideClass:r.searchField,value:s})]})}),(0,O.jsx)(p.ZP,{item:!0,xs:12,sx:{"& .policy-row":{borderBottom:"1px solid #eaeaea"},"& .policy-row:first-child":{borderTop:"1px solid #eaeaea"},"& .policy-row:last-child":{borderBottom:"0px"},paddingTop:"15px","& mark":{color:"#000000",fontWeight:500}},children:n.map((function(e,n){var t=e.Effect,i="Allow"===t;return(0,O.jsxs)(A.Z,{className:"policy-row",sx:{display:"grid",gridTemplateColumns:"1fr",gap:"15px",fontSize:"14px",padding:"10px 0 10px 0","& .label":{fontWeight:600}},children:[(0,O.jsxs)(A.Z,{sx:D,children:[(0,O.jsx)(A.Z,{className:"label",children:"Effect:"}),(0,O.jsxs)(A.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{marginRight:"5px",fill:i?k.yh.GREEN:k.yh.RED,height:"14px",width:"14px"}},children:[i?(0,O.jsx)(L.E31,{}):(0,O.jsx)(L.dRf,{}),t]})]}),(0,O.jsxs)(A.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"15px"},children:[(0,O.jsxs)(A.Z,{sx:D,children:[(0,O.jsx)(A.Z,{className:"label",children:"Actions:"}),(0,O.jsx)(A.Z,{children:e.Action&&e.Action.map((function(e,t){return(0,O.jsx)("div",{children:(0,O.jsx)(_,{search:s,children:e})},"".concat(n,"-r-").concat(t))}))})]}),(0,O.jsxs)(A.Z,{sx:D,children:[(0,O.jsx)(A.Z,{className:"label",children:"Resources:"}),(0,O.jsx)(A.Z,{children:e.Resource&&e.Resource.map((function(e,t){return(0,O.jsxs)("div",{children:[" ",(0,O.jsx)(_,{search:s,children:e})]},"".concat(n,"-r-").concat(t))}))})]})]})]},"".concat(n))}))})]})})),B=t(45248),G=t(87995),U=t(46078),H=t(81551),V=(0,F.Z)(o.lazy((function(){return t.e(312).then(t.bind(t,312))}))),W=(0,l.Z)((function(e){return(0,s.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({buttonContainer:{textAlign:"right",paddingTop:16},pageContainer:{border:"1px solid #EAEAEA",height:"100%"},paperContainer:{padding:"15px 15px 15px 50px",minHeight:"450px"},statement:{border:"1px solid #DADADA",padding:8,marginBottom:8,borderRadius:4},labelCol:{fontWeight:"bold"}},d.OR),d.qg),d.oO),(0,d.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=(0,H.TL)(),r=(0,c.s0)(),s=(0,c.UO)(),l=(0,a.v9)(U.$4),d=(0,o.useState)(null),F=(0,i.Z)(d,2),A=F[0],I=F[1],L=(0,o.useState)([]),k=(0,i.Z)(L,2),D=k[0],_=k[1],W=(0,o.useState)([]),Y=(0,i.Z)(W,2),q=Y[0],J=Y[1],Q=(0,o.useState)([]),$=(0,i.Z)(Q,2),K=$[0],X=$[1],ee=(0,o.useState)(!1),ne=(0,i.Z)(ee,2),te=ne[0],ie=ne[1],re=(0,B.IO)(s.policyName||""),oe=(0,o.useState)(""),ae=(0,i.Z)(oe,2),ce=ae[0],se=ae[1],le=(0,o.useState)(!0),de=(0,i.Z)(le,2),ue=de[0],pe=de[1],he=(0,o.useState)(""),fe=(0,i.Z)(he,2),xe=fe[0],me=fe[1],ve=(0,o.useState)(!0),Ze=(0,i.Z)(ve,2),je=Ze[0],be=Ze[1],ge=(0,o.useState)(""),Ce=(0,i.Z)(ge,2),ye=Ce[0],Ee=Ce[1],Pe=(0,o.useState)(!0),Se=(0,i.Z)(Pe,2),we=Se[0],Ne=Se[1],Me=(0,o.useState)(!1),Te=(0,i.Z)(Me,2),Fe=Te[0],Re=Te[1],Ae=l&&l.includes("ldap-idp")||!1,Ie=(0,T.F)(M.C3,[M.Ft.ADMIN_LIST_GROUPS,M.Ft.ADMIN_GET_GROUP],!0),Le=(0,T.F)(M.C3,[M.Ft.ADMIN_GET_GROUP]),ke=(0,T.F)(M.C3,[M.Ft.ADMIN_LIST_GROUPS]),Oe=(0,T.F)(M.C3,[M.Ft.ADMIN_GET_USER]),De=(0,T.F)(M.C3,[M.Ft.ADMIN_GET_POLICY]),_e=(0,T.F)(M.C3,[M.Ft.ADMIN_CREATE_POLICY]);(0,o.useEffect)((function(){ue&&(ue&&(De?m.Z.invoke("GET","/api/v1/policy/".concat((0,B.LL)(re))).then((function(e){if(e){I(e),se(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);_(n.Statement)}pe(!1)})).catch((function(e){t((0,G.Ih)(e)),pe(!1)})):pe(!1)),je&&(ke&&!Ae?m.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(re),"/users")).then((function(e){J(e),be(!1)})).catch((function(e){t((0,G.Ih)(e)),be(!1)})):be(!1)),we&&(Ie&&!Ae?m.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(re),"/groups")).then((function(e){X(e),Ne(!1)})).catch((function(e){t((0,G.Ih)(e)),Ne(!1)})):Ne(!1)))}),[re,ue,je,we,J,X,se,I,be,Ne,ke,Ie,De,Ae,t]);var ze=""!==re.trim(),Be=[{type:"view",onClick:function(e){r("".concat(M.gA.USERS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Oe}}],Ge=q.filter((function(e){return e.includes(xe)})),Ue=[{type:"view",onClick:function(e){r("".concat(M.gA.GROUPS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Le}}],He=K.filter((function(e){return e.includes(ye)}));return(0,O.jsxs)(o.Fragment,{children:[Fe&&(0,O.jsx)(V,{deleteOpen:Fe,selectedPolicy:re,closeDeleteModalAndRefresh:function(e){Re(!1),r(M.gA.POLICIES)}}),(0,O.jsx)(v.Z,{label:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(N.Z,{to:M.gA.POLICIES,label:"Policy"})})}),(0,O.jsxs)(S.Z,{className:n.pageContainer,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsx)(g.Z,{icon:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(C.Z,{width:40})}),title:re,subTitle:(0,O.jsx)(o.Fragment,{children:"IAM Policy"}),actions:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)(T.s,{scopes:[M.Ft.ADMIN_DELETE_POLICY],resource:M.C3,errorProps:{disabled:!0},children:(0,O.jsx)(R.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,O.jsx)(P.Z,{}),onClick:function(){Re(!0)}})}),(0,O.jsx)(R.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,O.jsx)(y.default,{}),onClick:function(){be(!0),Ne(!0),pe(!0)}})]})})}),(0,O.jsxs)(w.Z,{children:[{tabConfig:{label:"Summary",disabled:!De},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Policy Summary"}),(0,O.jsx)(u.Z,{className:n.paperContainer,children:(0,O.jsx)(z,{policyStatements:D})})]})},{tabConfig:{label:"Users",disabled:!ke||Ae},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Users"}),(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(b.Z,{placeholder:"Search Users",className:n.searchField,id:"search-resource",label:"",onChange:function(e){me(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(j.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(x.Z,{itemActions:Be,columns:[{label:"Name",elementKey:"name"}],isLoading:je,records:Ge,entityName:"Users",idField:"name"})]})]})},{tabConfig:{label:"Groups",disabled:!Ie||Ae},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Groups"}),(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(b.Z,{placeholder:"Search Groups",className:n.searchField,id:"search-resource",label:"",onChange:function(e){Ee(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(j.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(x.Z,{itemActions:Ue,columns:[{label:"Name",elementKey:"name"}],isLoading:we,records:He,entityName:"Groups",idField:"name"})]})]})},{tabConfig:{label:"Raw Policy",disabled:!De},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Raw Policy"}),(0,O.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),te||(ie(!0),_e?m.Z.invoke("POST","/api/v1/policies",{name:re,policy:ce}).then((function(e){ie(!1),t((0,G.y1)("Policy successfully updated"))})).catch((function(e){ie(!1),t((0,G.Ih)(e))})):ie(!1))},children:(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,O.jsx)(Z.Z,{readOnly:!_e,value:ce,onBeforeChange:function(e,n,t){se(t)},editorHeight:"350px"})}),(0,O.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[!A&&(0,O.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){se("{}")},children:"Clear"}),(0,O.jsx)(T.s,{scopes:[M.Ft.ADMIN_CREATE_POLICY],resource:M.C3,errorProps:{disabled:!0},children:(0,O.jsx)(h.Z,{type:"submit",variant:"contained",color:"primary",disabled:te||!ze,children:"Save"})})]}),te&&(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsx)(f.Z,{})})]})})]})}]})]})]})}))},26759:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},83449:function(e,n,t){"use strict";t.d(n,{ZP:function(){return c},_i:function(){return s},pQ:function(){return d},uU:function(){return l}});var i=t(29439),r=t(72791),o=t(80184),a=r.createContext(null);function c(e){var n=e.children,t=e.value,c=function(){var e=r.useState(null),n=(0,i.Z)(e,2),t=n[0],o=n[1];return r.useEffect((function(){o("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),s=r.useMemo((function(){return{idPrefix:c,value:t}}),[c,t]);return(0,o.jsx)(a.Provider,{value:s,children:n})}function s(){return r.useContext(a)}function l(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function d(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){"use strict";var i=t(87462),r=t(63366),o=t(72791),a=t(18073),c=t(83449),s=t(80184),l=["children"],d=o.forwardRef((function(e,n){var t=e.children,d=(0,r.Z)(e,l),u=(0,c._i)();if(null===u)throw new TypeError("No TabContext provided");var p=o.Children.map(t,(function(e){return o.isValidElement(e)?o.cloneElement(e,{"aria-controls":(0,c.uU)(u,e.props.value),id:(0,c.pQ)(u,e.props.value)}):null}));return(0,s.jsx)(a.Z,(0,i.Z)({},d,{ref:n,value:u.value,children:p}))}));n.Z=d},82851:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var i=t(87462),r=t(63366),o=t(72791),a=t(28182),c=t(66934),s=t(31402),l=t(94419),d=t(21217);function u(e){return(0,d.Z)("MuiTabPanel",e)}(0,t(75878).Z)("MuiTabPanel",["root"]);var p=t(83449),h=t(80184),f=["children","className","value"],x=(0,c.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),m=o.forwardRef((function(e,n){var t=(0,s.Z)({props:e,name:"MuiTabPanel"}),o=t.children,c=t.className,d=t.value,m=(0,r.Z)(t,f),v=(0,i.Z)({},t),Z=function(e){var n=e.classes;return(0,l.Z)({root:["root"]},u,n)}(v),j=(0,p._i)();if(null===j)throw new TypeError("No TabContext provided");var b=(0,p.uU)(j,d),g=(0,p.pQ)(j,d);return(0,h.jsx)(x,(0,i.Z)({"aria-labelledby":g,className:(0,a.Z)(Z.root,c),hidden:d!==j.value,id:b,ref:n,role:"tabpanel",ownerState:v},m,{children:d===j.value&&o}))}))},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return S}});var i=t(4942),r=t(63366),o=t(87462),a=t(72791),c=t(94419),s=t(12065),l=t(97278),d=t(76189),u=t(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),h=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),f=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),x=t(14036),m=t(31402),v=t(66934),Z=t(21217);function j(e){return(0,Z.Z)("MuiCheckbox",e)}var b=(0,t(75878).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),g=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,v.ZP)(l.Z,{shouldForwardProp:function(e){return(0,v.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.indeterminate&&n.indeterminate,"default"!==t.color&&n["color".concat((0,x.Z)(t.color))]]}})((function(e){var n,t=e.theme,r=e.ownerState;return(0,o.Z)({color:t.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===r.color?t.palette.action.active:t.palette[r.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(n={},(0,i.Z)(n,"&.".concat(b.checked,", &.").concat(b.indeterminate),{color:t.palette[r.color].main}),(0,i.Z)(n,"&.".concat(b.disabled),{color:t.palette.action.disabled}),n))})),y=(0,u.jsx)(h,{}),E=(0,u.jsx)(p,{}),P=(0,u.jsx)(f,{}),S=a.forwardRef((function(e,n){var t,i,s=(0,m.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?y:l,p=s.color,h=void 0===p?"primary":p,f=s.icon,v=void 0===f?E:f,Z=s.indeterminate,b=void 0!==Z&&Z,S=s.indeterminateIcon,w=void 0===S?P:S,N=s.inputProps,M=s.size,T=void 0===M?"medium":M,F=(0,r.Z)(s,g),R=b?w:v,A=b?w:d,I=(0,o.Z)({},s,{color:h,indeterminate:b,size:T}),L=function(e){var n=e.classes,t=e.indeterminate,i=e.color,r={root:["root",t&&"indeterminate","color".concat((0,x.Z)(i))]},a=(0,c.Z)(r,j,n);return(0,o.Z)({},n,a)}(I);return(0,u.jsx)(C,(0,o.Z)({type:"checkbox",inputProps:(0,o.Z)({"data-indeterminate":b},N),icon:a.cloneElement(R,{fontSize:null!=(t=R.props.fontSize)?t:T}),checkedIcon:a.cloneElement(A,{fontSize:null!=(i=A.props.fontSize)?i:T}),ownerState:I,ref:n},F,{classes:L}))}))},95193:function(e,n,t){"use strict";var i;t.d(n,{Z:function(){return p}});var r=t(29439),o=t(72791),a=t(69120),c=t(33073),s=t(40162);function l(e,n,t,i,a){var c="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,l=o.useState((function(){return a&&c?t(e).matches:i?i(e).matches:n})),d=(0,r.Z)(l,2),u=d[0],p=d[1];return(0,s.Z)((function(){var n=!0;if(c){var i=t(e),r=function(){n&&p(i.matches)};return r(),i.addListener(r),function(){n=!1,i.removeListener(r)}}}),[e,t,c]),u}var d=(i||(i=t.t(o,2))).useSyncExternalStore;function u(e,n,t,i){var a=o.useCallback((function(){return n}),[n]),c=o.useMemo((function(){if(null!==i){var n=i(e).matches;return function(){return n}}return a}),[a,e,i]),s=o.useMemo((function(){if(null===t)return[a,function(){return function(){}}];var n=t(e);return[function(){return n.matches},function(e){return n.addListener(e),function(){n.removeListener(e)}}]}),[a,t,e]),l=(0,r.Z)(s,2),u=l[0],p=l[1];return d(p,u,c)}function p(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=(0,a.Z)(),i="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,r=(0,c.Z)({name:"MuiUseMediaQuery",props:n,theme:t}),o=r.defaultMatches,s=void 0!==o&&o,p=r.matchMedia,h=void 0===p?i?window.matchMedia:null:p,f=r.ssrMatchMedia,x=void 0===f?null:f,m=r.noSsr;var v="function"===typeof e?e(t):e;v=v.replace(/^@media( ?)/m,"");var Z=void 0!==d?u:l,j=Z(v,s,h,x,m);return j}},26769:function(e,n,t){var i=t(39066),r=t(93629),o=t(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&o(e)&&"[object String]"==i(e)}}}]);
-//# sourceMappingURL=1367.79a7a1e1.chunk.js.map
\ No newline at end of file
+(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1367,2691],{92217:function(e,n,t){"use strict";var i=t(1413),r=t(72791),o=t(61889),a=t(30829),c=t(20068),s=t(64554),l=t(11135),d=t(25787),u=t(84570),p=t(23814),h=t(38734),f=t(40603),x=t(78029),m=t.n(x),v=t(85457),Z=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var n=e.value,t=e.label,i=void 0===t?"":t,l=e.tooltip,d=void 0===l?"":l,p=e.mode,x=void 0===p?"json":p,j=e.classes,b=e.onBeforeChange,g=(e.readOnly,e.editorHeight),C=void 0===g?"250px":g;return(0,Z.jsxs)(r.Fragment,{children:[(0,Z.jsx)(o.ZP,{item:!0,xs:12,children:(0,Z.jsxs)(a.Z,{className:j.inputLabel,children:[(0,Z.jsx)("span",{children:i}),""!==d&&(0,Z.jsx)("div",{className:j.tooltipContainer,children:(0,Z.jsx)(c.Z,{title:d,placement:"top-start",children:(0,Z.jsx)("div",{className:j.tooltip,children:(0,Z.jsx)(u.Z,{})})})})]})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:C,overflow:"auto"},children:(0,Z.jsx)(v.Z,{value:n,language:x,onChange:function(e){b(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,Z.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,Z.jsx)(m(),{text:n,children:(0,Z.jsx)(f.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,Z.jsx)(h.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},59114:function(e,n,t){"use strict";var i=t(4942),r=t(1413),o=(t(72791),t(63466)),a=t(74900),c=t(27391),s=t(25787),l=t(11135),d=t(23814),u=t(80184);n.Z=(0,s.Z)((function(e){return(0,l.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,r=e.classes,s=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,p=e.overrideClass,h=e.value,f=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:r.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(c.Z,{placeholder:t,className:p||r.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){s(e.target.value)},variant:"standard",value:h})}))},50276:function(e,n,t){"use strict";var i=t(1413),r=t(29439),o=t(72791),a=t(64554),c=t(43896),s=t(83449),l=t(47283),d=t(82851),u=t(25787),p=t(13967),h=t(11135),f=t(95193),x=t(80184),m={minHeight:60};n.Z=(0,u.Z)((function(e){return(0,h.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,u=e.selectedTab,h=void 0===u?"0":u,v=e.routes,Z=e.isRouteTabs,j=o.useState(h),b=(0,r.Z)(j,2),g=b[0],C=b[1],y=(0,p.Z)(),E=(0,f.Z)(y.breakpoints.down("md")),P=[],S=[];return n?(n.forEach((function(e){P.push(e.tabConfig),S.push(e.content)})),(0,x.jsx)(s.ZP,{value:"".concat(g),children:(0,x.jsxs)(a.Z,{className:t.tabsContainer,children:[(0,x.jsx)(a.Z,{className:t.tabsHeaderContainer,children:(0,x.jsx)(l.Z,{onChange:function(e,n){C(n)},orientation:E?"horizontal":"vertical",variant:E?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:P.map((function(e,n){return e?(0,x.jsx)(c.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:m},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,x.jsxs)(a.Z,{className:t.tabContentContainer,children:[Z?null:S.map((function(e,n){return(0,x.jsx)(d.Z,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),Z?(0,x.jsx)("div",{className:t.tabPanel,children:v}):null]})]})})):null}))},879:function(e,n,t){"use strict";t.d(n,{D_:function(){return a},Et:function(){return r},GJ:function(){return o},yh:function(){return i}});var i={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},r=function(e,n){return e<=n/2?i.RED:2!==n&&e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0},o=function(e){switch(e){case"offline":return i.RED;case"online":return i.GREEN;default:return i.YELLOW}},a=function(e,n){return e<=n/2?i.RED:e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0}},1191:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return W}});var i=t(29439),r=t(1413),o=t(72791),a=t(60364),c=t(16871),s=t(11135),l=t(25787),d=t(23814),u=t(10703),p=t(61889),h=t(36151),f=t(40986),x=t(92983),m=t(81207),v=t(32291),Z=t(92217),j=t(63466),b=t(27391),g=t(14917),C=t(64244),y=t(28789),E=t(74900),P=t(54599),S=t(74794),w=t(50276),N=t(84669),M=t(56087),T=t(38442),F=t(75578),R=t(40603),A=t(64554),I=t(59114),L=t(38734),k=t(879),O=t(80184),D={display:"grid",gridTemplateColumns:"60px 1fr",gap:"15px"},_=function(e){var n=e.search,t=void 0===n?"":n,i=e.children,r=void 0===i?"":i,o=new RegExp("(".concat(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}(t),")"),"i"),a=String(r).split(o);return t?a.map((function(e,n){return o.test(e)?(0,O.jsx)("mark",{children:e},n):e})):r},z=(0,l.Z)((function(e){return(0,s.Z)({searchField:(0,r.Z)((0,r.Z)({},d.qg.searchField),{},{maxWidth:380})})}))((function(e){var n=e.policyStatements,t=e.classes,r=void 0===t?{}:t,a=(0,o.useState)(""),c=(0,i.Z)(a,2),s=c[0],l=c[1];return(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsxs)(A.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},alignItems:"center",justifyContent:"space-between",gap:"15px"},children:[(0,O.jsx)(A.Z,{children:"Statements"}),(0,O.jsx)(I.Z,{placeholder:"Search",onChange:l,overrideClass:r.searchField,value:s})]})}),(0,O.jsx)(p.ZP,{item:!0,xs:12,sx:{"& .policy-row":{borderBottom:"1px solid #eaeaea"},"& .policy-row:first-child":{borderTop:"1px solid #eaeaea"},"& .policy-row:last-child":{borderBottom:"0px"},paddingTop:"15px","& mark":{color:"#000000",fontWeight:500}},children:n.map((function(e,n){var t=e.Effect,i="Allow"===t;return(0,O.jsxs)(A.Z,{className:"policy-row",sx:{display:"grid",gridTemplateColumns:"1fr",gap:"15px",fontSize:"14px",padding:"10px 0 10px 0","& .label":{fontWeight:600}},children:[(0,O.jsxs)(A.Z,{sx:D,children:[(0,O.jsx)(A.Z,{className:"label",children:"Effect:"}),(0,O.jsxs)(A.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{marginRight:"5px",fill:i?k.yh.GREEN:k.yh.RED,height:"14px",width:"14px"}},children:[i?(0,O.jsx)(L.E31,{}):(0,O.jsx)(L.dRf,{}),t]})]}),(0,O.jsxs)(A.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"15px"},children:[(0,O.jsxs)(A.Z,{sx:D,children:[(0,O.jsx)(A.Z,{className:"label",children:"Actions:"}),(0,O.jsx)(A.Z,{children:e.Action&&e.Action.map((function(e,t){return(0,O.jsx)("div",{children:(0,O.jsx)(_,{search:s,children:e})},"".concat(n,"-r-").concat(t))}))})]}),(0,O.jsxs)(A.Z,{sx:D,children:[(0,O.jsx)(A.Z,{className:"label",children:"Resources:"}),(0,O.jsx)(A.Z,{children:e.Resource&&e.Resource.map((function(e,t){return(0,O.jsxs)("div",{children:[" ",(0,O.jsx)(_,{search:s,children:e})]},"".concat(n,"-r-").concat(t))}))})]})]})]},"".concat(n))}))})]})})),B=t(45248),G=t(87995),U=t(46078),H=t(25469),V=(0,F.Z)(o.lazy((function(){return t.e(312).then(t.bind(t,312))}))),W=(0,l.Z)((function(e){return(0,s.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({buttonContainer:{textAlign:"right",paddingTop:16},pageContainer:{border:"1px solid #EAEAEA",height:"100%"},paperContainer:{padding:"15px 15px 15px 50px",minHeight:"450px"},statement:{border:"1px solid #DADADA",padding:8,marginBottom:8,borderRadius:4},labelCol:{fontWeight:"bold"}},d.OR),d.qg),d.oO),(0,d.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=(0,H.TL)(),r=(0,c.s0)(),s=(0,c.UO)(),l=(0,a.v9)(U.$4),d=(0,o.useState)(null),F=(0,i.Z)(d,2),A=F[0],I=F[1],L=(0,o.useState)([]),k=(0,i.Z)(L,2),D=k[0],_=k[1],W=(0,o.useState)([]),Y=(0,i.Z)(W,2),q=Y[0],J=Y[1],Q=(0,o.useState)([]),$=(0,i.Z)(Q,2),K=$[0],X=$[1],ee=(0,o.useState)(!1),ne=(0,i.Z)(ee,2),te=ne[0],ie=ne[1],re=(0,B.IO)(s.policyName||""),oe=(0,o.useState)(""),ae=(0,i.Z)(oe,2),ce=ae[0],se=ae[1],le=(0,o.useState)(!0),de=(0,i.Z)(le,2),ue=de[0],pe=de[1],he=(0,o.useState)(""),fe=(0,i.Z)(he,2),xe=fe[0],me=fe[1],ve=(0,o.useState)(!0),Ze=(0,i.Z)(ve,2),je=Ze[0],be=Ze[1],ge=(0,o.useState)(""),Ce=(0,i.Z)(ge,2),ye=Ce[0],Ee=Ce[1],Pe=(0,o.useState)(!0),Se=(0,i.Z)(Pe,2),we=Se[0],Ne=Se[1],Me=(0,o.useState)(!1),Te=(0,i.Z)(Me,2),Fe=Te[0],Re=Te[1],Ae=l&&l.includes("ldap-idp")||!1,Ie=(0,T.F)(M.C3,[M.Ft.ADMIN_LIST_GROUPS,M.Ft.ADMIN_GET_GROUP],!0),Le=(0,T.F)(M.C3,[M.Ft.ADMIN_GET_GROUP]),ke=(0,T.F)(M.C3,[M.Ft.ADMIN_LIST_GROUPS]),Oe=(0,T.F)(M.C3,[M.Ft.ADMIN_GET_USER]),De=(0,T.F)(M.C3,[M.Ft.ADMIN_GET_POLICY]),_e=(0,T.F)(M.C3,[M.Ft.ADMIN_CREATE_POLICY]);(0,o.useEffect)((function(){ue&&(ue&&(De?m.Z.invoke("GET","/api/v1/policy/".concat((0,B.LL)(re))).then((function(e){if(e){I(e),se(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);_(n.Statement)}pe(!1)})).catch((function(e){t((0,G.Ih)(e)),pe(!1)})):pe(!1)),je&&(ke&&!Ae?m.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(re),"/users")).then((function(e){J(e),be(!1)})).catch((function(e){t((0,G.Ih)(e)),be(!1)})):be(!1)),we&&(Ie&&!Ae?m.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(re),"/groups")).then((function(e){X(e),Ne(!1)})).catch((function(e){t((0,G.Ih)(e)),Ne(!1)})):Ne(!1)))}),[re,ue,je,we,J,X,se,I,be,Ne,ke,Ie,De,Ae,t]);var ze=""!==re.trim(),Be=[{type:"view",onClick:function(e){r("".concat(M.gA.USERS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Oe}}],Ge=q.filter((function(e){return e.includes(xe)})),Ue=[{type:"view",onClick:function(e){r("".concat(M.gA.GROUPS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Le}}],He=K.filter((function(e){return e.includes(ye)}));return(0,O.jsxs)(o.Fragment,{children:[Fe&&(0,O.jsx)(V,{deleteOpen:Fe,selectedPolicy:re,closeDeleteModalAndRefresh:function(e){Re(!1),r(M.gA.POLICIES)}}),(0,O.jsx)(v.Z,{label:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(N.Z,{to:M.gA.POLICIES,label:"Policy"})})}),(0,O.jsxs)(S.Z,{className:n.pageContainer,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsx)(g.Z,{icon:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(C.Z,{width:40})}),title:re,subTitle:(0,O.jsx)(o.Fragment,{children:"IAM Policy"}),actions:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)(T.s,{scopes:[M.Ft.ADMIN_DELETE_POLICY],resource:M.C3,errorProps:{disabled:!0},children:(0,O.jsx)(R.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,O.jsx)(P.Z,{}),onClick:function(){Re(!0)}})}),(0,O.jsx)(R.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,O.jsx)(y.default,{}),onClick:function(){be(!0),Ne(!0),pe(!0)}})]})})}),(0,O.jsxs)(w.Z,{children:[{tabConfig:{label:"Summary",disabled:!De},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Policy Summary"}),(0,O.jsx)(u.Z,{className:n.paperContainer,children:(0,O.jsx)(z,{policyStatements:D})})]})},{tabConfig:{label:"Users",disabled:!ke||Ae},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Users"}),(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(b.Z,{placeholder:"Search Users",className:n.searchField,id:"search-resource",label:"",onChange:function(e){me(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(j.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(x.Z,{itemActions:Be,columns:[{label:"Name",elementKey:"name"}],isLoading:je,records:Ge,entityName:"Users",idField:"name"})]})]})},{tabConfig:{label:"Groups",disabled:!Ie||Ae},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Groups"}),(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(b.Z,{placeholder:"Search Groups",className:n.searchField,id:"search-resource",label:"",onChange:function(e){Ee(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(j.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(x.Z,{itemActions:Ue,columns:[{label:"Name",elementKey:"name"}],isLoading:we,records:He,entityName:"Groups",idField:"name"})]})]})},{tabConfig:{label:"Raw Policy",disabled:!De},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Raw Policy"}),(0,O.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),te||(ie(!0),_e?m.Z.invoke("POST","/api/v1/policies",{name:re,policy:ce}).then((function(e){ie(!1),t((0,G.y1)("Policy successfully updated"))})).catch((function(e){ie(!1),t((0,G.Ih)(e))})):ie(!1))},children:(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,O.jsx)(Z.Z,{readOnly:!_e,value:ce,onBeforeChange:function(e,n,t){se(t)},editorHeight:"350px"})}),(0,O.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[!A&&(0,O.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){se("{}")},children:"Clear"}),(0,O.jsx)(T.s,{scopes:[M.Ft.ADMIN_CREATE_POLICY],resource:M.C3,errorProps:{disabled:!0},children:(0,O.jsx)(h.Z,{type:"submit",variant:"contained",color:"primary",disabled:te||!ze,children:"Save"})})]}),te&&(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsx)(f.Z,{})})]})})]})}]})]})]})}))},26759:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},83449:function(e,n,t){"use strict";t.d(n,{ZP:function(){return c},_i:function(){return s},pQ:function(){return d},uU:function(){return l}});var i=t(29439),r=t(72791),o=t(80184),a=r.createContext(null);function c(e){var n=e.children,t=e.value,c=function(){var e=r.useState(null),n=(0,i.Z)(e,2),t=n[0],o=n[1];return r.useEffect((function(){o("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),s=r.useMemo((function(){return{idPrefix:c,value:t}}),[c,t]);return(0,o.jsx)(a.Provider,{value:s,children:n})}function s(){return r.useContext(a)}function l(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function d(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){"use strict";var i=t(87462),r=t(63366),o=t(72791),a=t(18073),c=t(83449),s=t(80184),l=["children"],d=o.forwardRef((function(e,n){var t=e.children,d=(0,r.Z)(e,l),u=(0,c._i)();if(null===u)throw new TypeError("No TabContext provided");var p=o.Children.map(t,(function(e){return o.isValidElement(e)?o.cloneElement(e,{"aria-controls":(0,c.uU)(u,e.props.value),id:(0,c.pQ)(u,e.props.value)}):null}));return(0,s.jsx)(a.Z,(0,i.Z)({},d,{ref:n,value:u.value,children:p}))}));n.Z=d},82851:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var i=t(87462),r=t(63366),o=t(72791),a=t(28182),c=t(66934),s=t(31402),l=t(94419),d=t(21217);function u(e){return(0,d.Z)("MuiTabPanel",e)}(0,t(75878).Z)("MuiTabPanel",["root"]);var p=t(83449),h=t(80184),f=["children","className","value"],x=(0,c.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),m=o.forwardRef((function(e,n){var t=(0,s.Z)({props:e,name:"MuiTabPanel"}),o=t.children,c=t.className,d=t.value,m=(0,r.Z)(t,f),v=(0,i.Z)({},t),Z=function(e){var n=e.classes;return(0,l.Z)({root:["root"]},u,n)}(v),j=(0,p._i)();if(null===j)throw new TypeError("No TabContext provided");var b=(0,p.uU)(j,d),g=(0,p.pQ)(j,d);return(0,h.jsx)(x,(0,i.Z)({"aria-labelledby":g,className:(0,a.Z)(Z.root,c),hidden:d!==j.value,id:b,ref:n,role:"tabpanel",ownerState:v},m,{children:d===j.value&&o}))}))},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return S}});var i=t(4942),r=t(63366),o=t(87462),a=t(72791),c=t(94419),s=t(12065),l=t(97278),d=t(76189),u=t(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),h=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),f=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),x=t(14036),m=t(31402),v=t(66934),Z=t(21217);function j(e){return(0,Z.Z)("MuiCheckbox",e)}var b=(0,t(75878).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),g=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,v.ZP)(l.Z,{shouldForwardProp:function(e){return(0,v.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.indeterminate&&n.indeterminate,"default"!==t.color&&n["color".concat((0,x.Z)(t.color))]]}})((function(e){var n,t=e.theme,r=e.ownerState;return(0,o.Z)({color:t.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===r.color?t.palette.action.active:t.palette[r.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(n={},(0,i.Z)(n,"&.".concat(b.checked,", &.").concat(b.indeterminate),{color:t.palette[r.color].main}),(0,i.Z)(n,"&.".concat(b.disabled),{color:t.palette.action.disabled}),n))})),y=(0,u.jsx)(h,{}),E=(0,u.jsx)(p,{}),P=(0,u.jsx)(f,{}),S=a.forwardRef((function(e,n){var t,i,s=(0,m.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?y:l,p=s.color,h=void 0===p?"primary":p,f=s.icon,v=void 0===f?E:f,Z=s.indeterminate,b=void 0!==Z&&Z,S=s.indeterminateIcon,w=void 0===S?P:S,N=s.inputProps,M=s.size,T=void 0===M?"medium":M,F=(0,r.Z)(s,g),R=b?w:v,A=b?w:d,I=(0,o.Z)({},s,{color:h,indeterminate:b,size:T}),L=function(e){var n=e.classes,t=e.indeterminate,i=e.color,r={root:["root",t&&"indeterminate","color".concat((0,x.Z)(i))]},a=(0,c.Z)(r,j,n);return(0,o.Z)({},n,a)}(I);return(0,u.jsx)(C,(0,o.Z)({type:"checkbox",inputProps:(0,o.Z)({"data-indeterminate":b},N),icon:a.cloneElement(R,{fontSize:null!=(t=R.props.fontSize)?t:T}),checkedIcon:a.cloneElement(A,{fontSize:null!=(i=A.props.fontSize)?i:T}),ownerState:I,ref:n},F,{classes:L}))}))},95193:function(e,n,t){"use strict";var i;t.d(n,{Z:function(){return p}});var r=t(29439),o=t(72791),a=t(69120),c=t(33073),s=t(40162);function l(e,n,t,i,a){var c="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,l=o.useState((function(){return a&&c?t(e).matches:i?i(e).matches:n})),d=(0,r.Z)(l,2),u=d[0],p=d[1];return(0,s.Z)((function(){var n=!0;if(c){var i=t(e),r=function(){n&&p(i.matches)};return r(),i.addListener(r),function(){n=!1,i.removeListener(r)}}}),[e,t,c]),u}var d=(i||(i=t.t(o,2))).useSyncExternalStore;function u(e,n,t,i){var a=o.useCallback((function(){return n}),[n]),c=o.useMemo((function(){if(null!==i){var n=i(e).matches;return function(){return n}}return a}),[a,e,i]),s=o.useMemo((function(){if(null===t)return[a,function(){return function(){}}];var n=t(e);return[function(){return n.matches},function(e){return n.addListener(e),function(){n.removeListener(e)}}]}),[a,t,e]),l=(0,r.Z)(s,2),u=l[0],p=l[1];return d(p,u,c)}function p(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=(0,a.Z)(),i="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,r=(0,c.Z)({name:"MuiUseMediaQuery",props:n,theme:t}),o=r.defaultMatches,s=void 0!==o&&o,p=r.matchMedia,h=void 0===p?i?window.matchMedia:null:p,f=r.ssrMatchMedia,x=void 0===f?null:f,m=r.noSsr;var v="function"===typeof e?e(t):e;v=v.replace(/^@media( ?)/m,"");var Z=void 0!==d?u:l,j=Z(v,s,h,x,m);return j}},26769:function(e,n,t){var i=t(39066),r=t(93629),o=t(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&o(e)&&"[object String]"==i(e)}}}]);
+//# sourceMappingURL=1367.a94951c1.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1367.79a7a1e1.chunk.js.map b/portal-ui/build/static/js/1367.a94951c1.chunk.js.map
similarity index 99%
rename from portal-ui/build/static/js/1367.79a7a1e1.chunk.js.map
rename to portal-ui/build/static/js/1367.a94951c1.chunk.js.map
index 60f925a9c..d5f85f74d 100644
--- a/portal-ui/build/static/js/1367.79a7a1e1.chunk.js.map
+++ b/portal-ui/build/static/js/1367.a94951c1.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/1367.79a7a1e1.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Policies/PolicyView.tsx","screens/Console/Policies/PolicyDetails.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/useMediaQuery/useMediaQuery.js","../node_modules/lodash/isString.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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\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 } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\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 InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n {routes}
\n ) : null}\n \n \n \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\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","// 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, { useState } from \"react\";\nimport { IAMStatement } from \"./types\";\nimport { Box } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { DisabledIcon, EnabledIcon } from \"../../../icons\";\nimport { STATUS_COLORS } from \"../Dashboard/BasicDashboard/Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n });\n\nconst rowGridStyle = {\n display: \"grid\",\n gridTemplateColumns: \"60px 1fr\",\n gap: \"15px\",\n};\n\nconst escapeRegExp = (str = \"\") =>\n str.replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n\nconst Highlight = ({ search = \"\", children = \"\" }): any => {\n const txtParts = new RegExp(`(${escapeRegExp(search)})`, \"i\");\n const parts = String(children).split(txtParts);\n\n if (search) {\n return parts.map((part, index) =>\n txtParts.test(part) ? {part} : part\n );\n } else {\n return children;\n }\n};\n\nconst PolicyView = ({\n policyStatements,\n classes = {},\n}: {\n policyStatements: IAMStatement[];\n classes?: any;\n}) => {\n const [filter, setFilter] = useState(\"\");\n\n return (\n \n \n \n Statements \n \n \n \n \n {policyStatements.map((stmt, i) => {\n const effect = stmt.Effect;\n const isAllow = effect === \"Allow\";\n return (\n \n \n Effect: \n \n {isAllow ? : }\n {effect}\n \n \n\n \n \n Actions: \n \n {stmt.Action &&\n stmt.Action.map((act, actIndex) => (\n \n {act} \n
\n ))}\n \n \n \n Resources: \n \n {stmt.Resource &&\n stmt.Resource.map((res, resIndex) => (\n \n {\" \"}\n {res} \n
\n ))}\n \n \n \n \n );\n })}\n \n \n );\n};\n\nexport default withStyles(styles)(PolicyView);\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 { IAMPolicy, IAMStatement, Policy } from \"./types\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n modalBasic,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../common/api\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField from \"@mui/material/TextField\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport IAMPoliciesIcon from \"../../../icons/IAMPoliciesIcon\";\nimport RefreshIcon from \"../../../icons/RefreshIcon\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TrashIcon from \"../../../icons/TrashIcon\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport BackLink from \"../../../common/BackLink\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport PolicyView from \"./PolicyView\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../systemSlice\";\nimport { selFeatures } from \"../consoleSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n paddingTop: 16,\n },\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n height: \"100%\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n minHeight: \"450px\",\n },\n statement: {\n border: \"1px solid #DADADA\",\n padding: 8,\n marginBottom: 8,\n borderRadius: 4,\n },\n labelCol: {\n fontWeight: \"bold\",\n },\n ...actionsTray,\n ...searchField,\n ...modalBasic,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IPolicyDetailsProps {\n classes: any;\n}\n\nconst PolicyDetails = ({ classes }: IPolicyDetailsProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const params = useParams();\n\n const features = useSelector(selFeatures);\n\n const [policy, setPolicy] = useState(null);\n const [policyStatements, setPolicyStatements] = useState([]);\n const [userList, setUserList] = useState([]);\n const [groupList, setGroupList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n\n const policyName = decodeURLString(params.policyName || \"\");\n\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [loadingPolicy, setLoadingPolicy] = useState(true);\n const [filterUsers, setFilterUsers] = useState(\"\");\n const [loadingUsers, setLoadingUsers] = useState(true);\n const [filterGroups, setFilterGroups] = useState(\"\");\n const [loadingGroups, setLoadingGroups] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n [IAM_SCOPES.ADMIN_LIST_GROUPS, IAM_SCOPES.ADMIN_GET_GROUP],\n true\n );\n\n const viewGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n const displayUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const displayPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const editPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CREATE_POLICY,\n ]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (editPolicy) {\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n dispatch(setSnackBarMessage(\"Policy successfully updated\"));\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n dispatch(setErrorSnackMessage(err));\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/users`\n )\n .then((result: any) => {\n setUserList(result);\n setLoadingUsers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingUsers(false);\n });\n } else {\n setLoadingUsers(false);\n }\n }\n };\n\n const loadGroupsForPolicy = () => {\n if (loadingGroups) {\n if (displayGroups && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/groups`\n )\n .then((result: any) => {\n setGroupList(result);\n setLoadingGroups(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingGroups(false);\n });\n } else {\n setLoadingGroups(false);\n }\n }\n };\n const loadPolicyDetails = () => {\n if (loadingPolicy) {\n if (displayPolicy) {\n api\n .invoke(\"GET\", `/api/v1/policy/${encodeURLString(policyName)}`)\n .then((result: any) => {\n if (result) {\n setPolicy(result);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.policy), null, 4)\n : \"\"\n );\n const pol: IAMPolicy = JSON.parse(result.policy);\n setPolicyStatements(pol.Statement);\n }\n setLoadingPolicy(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingPolicy(false);\n });\n } else {\n setLoadingPolicy(false);\n }\n }\n };\n\n if (loadingPolicy) {\n loadPolicyDetails();\n loadUsersForPolicy();\n loadGroupsForPolicy();\n }\n }, [\n policyName,\n loadingPolicy,\n loadingUsers,\n loadingGroups,\n setUserList,\n setGroupList,\n setPolicyDefinition,\n setPolicy,\n setLoadingUsers,\n setLoadingGroups,\n displayUsers,\n displayGroups,\n displayPolicy,\n ldapIsEnabled,\n dispatch,\n ]);\n\n const resetForm = () => {\n setPolicyDefinition(\"{}\");\n };\n\n const validSave = policyName.trim() !== \"\";\n\n const deletePolicy = () => {\n setDeleteOpen(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n navigate(IAM_PAGES.POLICIES);\n };\n\n const userViewAction = (user: any) => {\n navigate(`${IAM_PAGES.USERS}/${encodeURLString(user)}`);\n };\n const userTableActions = [\n {\n type: \"view\",\n onClick: userViewAction,\n disableButtonFunction: () => !viewUser,\n },\n ];\n\n const filteredUsers = userList.filter((elementItem) =>\n elementItem.includes(filterUsers)\n );\n\n const groupViewAction = (group: any) => {\n navigate(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const groupTableActions = [\n {\n type: \"view\",\n onClick: groupViewAction,\n disableButtonFunction: () => !viewGroup,\n },\n ];\n\n const filteredGroups = groupList.filter((elementItem) =>\n elementItem.includes(filterGroups)\n );\n\n return (\n \n {deleteOpen && (\n \n )}\n \n \n \n }\n />\n\n \n \n \n \n \n }\n title={policyName}\n subTitle={IAM Policy }\n actions={\n \n \n }\n onClick={deletePolicy}\n />\n \n\n }\n onClick={() => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n }}\n />\n \n }\n />\n \n\n \n {{\n tabConfig: { label: \"Summary\", disabled: !displayPolicy },\n content: (\n \n Policy Summary
\n \n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n },\n content: (\n \n Users
\n \n \n {\n setFilterUsers(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n\n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n },\n content: (\n \n Groups
\n \n \n {\n setFilterGroups(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n \n \n ),\n }}\n {{\n tabConfig: { label: \"Raw Policy\", disabled: !displayPolicy },\n content: (\n \n Raw Policy
\n \n \n ),\n }}\n \n \n \n );\n};\n\nexport default withStyles(styles)(PolicyDetails);\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: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"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: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"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: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.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 value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.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 * A list of ` ` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.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 * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that 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\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that 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\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import * as React from 'react';\nimport { getThemeProps, useThemeWithoutDefault as useTheme } from '@mui/system';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\n/**\n * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.\n */\n\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const [match, setMatch] = React.useState(() => {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n\n return defaultMatches;\n });\n useEnhancedEffect(() => {\n let active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n const queryList = matchMedia(query);\n\n const updateMatch = () => {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch(); // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n\n queryList.addListener(updateMatch);\n return () => {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n return match;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];\n\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia) {\n const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n const getServerSnapshot = React.useMemo(() => {\n if (ssrMatchMedia !== null) {\n const {\n matches\n } = ssrMatchMedia(query);\n return () => matches;\n }\n\n return getDefaultSnapshot;\n }, [getDefaultSnapshot, query, ssrMatchMedia]);\n const [getSnapshot, subscribe] = React.useMemo(() => {\n if (matchMedia === null) {\n return [getDefaultSnapshot, () => () => {}];\n }\n\n const mediaQueryList = matchMedia(query);\n return [() => mediaQueryList.matches, notify => {\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n mediaQueryList.addListener(notify);\n return () => {\n mediaQueryList.removeListener(notify);\n };\n }];\n }, [getDefaultSnapshot, matchMedia, query]);\n const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n return match;\n}\n\nexport default function useMediaQuery(queryInput, options = {}) {\n const theme = useTheme(); // Wait for jsdom to support the match media feature.\n // All the browsers MUI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const {\n defaultMatches = false,\n matchMedia = supportMatchMedia ? window.matchMedia : null,\n ssrMatchMedia = null,\n noSsr\n } = getThemeProps({\n name: 'MuiUseMediaQuery',\n props: options,\n theme\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // TODO: Drop `useMediaQueryOld` and use `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable\n\n const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query,\n match\n });\n }\n\n return match;\n}","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n"],"names":["withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","id","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","searchField","adornment","placeholder","adornmentPosition","overrideClass","inputProps","disableUnderline","position","InputProps","e","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","borderRight","flexFlow","borderBottom","marginRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","children","selectedTab","routes","isRouteTabs","React","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","event","newValue","orientation","scrollButtons","tabList","map","index","tabHeader","disableRipple","disableTouchRipple","focusRipple","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","rowGridStyle","gridTemplateColumns","gap","Highlight","search","txtParts","RegExp","replace","escapeRegExp","parts","String","split","part","test","maxWidth","policyStatements","useState","filter","setFilter","Grid","container","Box","sm","SearchBox","paddingTop","stmt","i","effect","Effect","isAllow","fill","Action","act","actIndex","Resource","res","resIndex","DeletePolicy","withSuspense","buttonContainer","textAlign","pageContainer","border","paperContainer","statement","borderRadius","labelCol","actionsTray","modalBasic","containerForHeader","spacing","dispatch","useAppDispatch","navigate","useNavigate","params","useParams","features","useSelector","selFeatures","policy","setPolicy","setPolicyStatements","userList","setUserList","groupList","setGroupList","addLoading","setAddLoading","policyName","decodeURLString","policyDefinition","setPolicyDefinition","loadingPolicy","setLoadingPolicy","filterUsers","setFilterUsers","loadingUsers","setLoadingUsers","filterGroups","setFilterGroups","loadingGroups","setLoadingGroups","deleteOpen","setDeleteOpen","ldapIsEnabled","includes","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","viewGroup","displayUsers","viewUser","displayPolicy","editPolicy","useEffect","api","encodeURLString","then","result","JSON","stringify","parse","pol","Statement","catch","err","setErrorSnackMessage","validSave","trim","userTableActions","type","user","IAM_PAGES","disableButtonFunction","filteredUsers","elementItem","groupTableActions","group","filteredGroups","Fragment","selectedPolicy","closeDeleteModalAndRefresh","refresh","PageHeader","BackLink","to","PageLayout","ScreenTitle","IAMPoliciesIcon","subTitle","actions","SecureComponent","scopes","resource","errorProps","disabled","RBIconButton","TrashIcon","RefreshIcon","VerticalTabs","sectionTitle","Paper","TextField","val","startAdornment","InputAdornment","SearchIcon","TableWrapper","itemActions","columns","elementKey","isLoading","records","entityName","idField","noValidate","autoComplete","onSubmit","preventDefault","name","_","setSnackBarMessage","CodeMirrorWrapper","editor","data","clearButton","Button","LinearProgress","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Context","TabContext","props","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","root","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","palette","secondary","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","size","slots","composedClasses","useMediaQueryOld","query","defaultMatches","matchMedia","ssrMatchMedia","noSsr","supportMatchMedia","window","matches","match","setMatch","useEnhancedEffect","queryList","updateMatch","addListener","removeListener","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","mediaQueryList","notify","getSnapshot","subscribe","queryInput","options","getThemeProps","useMediaQueryImplementation","undefined","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/1367.a94951c1.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Policies/PolicyView.tsx","screens/Console/Policies/PolicyDetails.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/useMediaQuery/useMediaQuery.js","../node_modules/lodash/isString.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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\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 } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\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 InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n {routes}
\n ) : null}\n \n \n \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\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","// 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, { useState } from \"react\";\nimport { IAMStatement } from \"./types\";\nimport { Box } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { DisabledIcon, EnabledIcon } from \"../../../icons\";\nimport { STATUS_COLORS } from \"../Dashboard/BasicDashboard/Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n });\n\nconst rowGridStyle = {\n display: \"grid\",\n gridTemplateColumns: \"60px 1fr\",\n gap: \"15px\",\n};\n\nconst escapeRegExp = (str = \"\") =>\n str.replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n\nconst Highlight = ({ search = \"\", children = \"\" }): any => {\n const txtParts = new RegExp(`(${escapeRegExp(search)})`, \"i\");\n const parts = String(children).split(txtParts);\n\n if (search) {\n return parts.map((part, index) =>\n txtParts.test(part) ? {part} : part\n );\n } else {\n return children;\n }\n};\n\nconst PolicyView = ({\n policyStatements,\n classes = {},\n}: {\n policyStatements: IAMStatement[];\n classes?: any;\n}) => {\n const [filter, setFilter] = useState(\"\");\n\n return (\n \n \n \n Statements \n \n \n \n \n {policyStatements.map((stmt, i) => {\n const effect = stmt.Effect;\n const isAllow = effect === \"Allow\";\n return (\n \n \n Effect: \n \n {isAllow ? : }\n {effect}\n \n \n\n \n \n Actions: \n \n {stmt.Action &&\n stmt.Action.map((act, actIndex) => (\n \n {act} \n
\n ))}\n \n \n \n Resources: \n \n {stmt.Resource &&\n stmt.Resource.map((res, resIndex) => (\n \n {\" \"}\n {res} \n
\n ))}\n \n \n \n \n );\n })}\n \n \n );\n};\n\nexport default withStyles(styles)(PolicyView);\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 { IAMPolicy, IAMStatement, Policy } from \"./types\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n modalBasic,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../common/api\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField from \"@mui/material/TextField\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport IAMPoliciesIcon from \"../../../icons/IAMPoliciesIcon\";\nimport RefreshIcon from \"../../../icons/RefreshIcon\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TrashIcon from \"../../../icons/TrashIcon\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport BackLink from \"../../../common/BackLink\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport PolicyView from \"./PolicyView\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../systemSlice\";\nimport { selFeatures } from \"../consoleSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n paddingTop: 16,\n },\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n height: \"100%\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n minHeight: \"450px\",\n },\n statement: {\n border: \"1px solid #DADADA\",\n padding: 8,\n marginBottom: 8,\n borderRadius: 4,\n },\n labelCol: {\n fontWeight: \"bold\",\n },\n ...actionsTray,\n ...searchField,\n ...modalBasic,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IPolicyDetailsProps {\n classes: any;\n}\n\nconst PolicyDetails = ({ classes }: IPolicyDetailsProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const params = useParams();\n\n const features = useSelector(selFeatures);\n\n const [policy, setPolicy] = useState(null);\n const [policyStatements, setPolicyStatements] = useState([]);\n const [userList, setUserList] = useState([]);\n const [groupList, setGroupList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n\n const policyName = decodeURLString(params.policyName || \"\");\n\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [loadingPolicy, setLoadingPolicy] = useState(true);\n const [filterUsers, setFilterUsers] = useState(\"\");\n const [loadingUsers, setLoadingUsers] = useState(true);\n const [filterGroups, setFilterGroups] = useState(\"\");\n const [loadingGroups, setLoadingGroups] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n [IAM_SCOPES.ADMIN_LIST_GROUPS, IAM_SCOPES.ADMIN_GET_GROUP],\n true\n );\n\n const viewGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n const displayUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const displayPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const editPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CREATE_POLICY,\n ]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (editPolicy) {\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n dispatch(setSnackBarMessage(\"Policy successfully updated\"));\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n dispatch(setErrorSnackMessage(err));\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/users`\n )\n .then((result: any) => {\n setUserList(result);\n setLoadingUsers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingUsers(false);\n });\n } else {\n setLoadingUsers(false);\n }\n }\n };\n\n const loadGroupsForPolicy = () => {\n if (loadingGroups) {\n if (displayGroups && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/groups`\n )\n .then((result: any) => {\n setGroupList(result);\n setLoadingGroups(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingGroups(false);\n });\n } else {\n setLoadingGroups(false);\n }\n }\n };\n const loadPolicyDetails = () => {\n if (loadingPolicy) {\n if (displayPolicy) {\n api\n .invoke(\"GET\", `/api/v1/policy/${encodeURLString(policyName)}`)\n .then((result: any) => {\n if (result) {\n setPolicy(result);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.policy), null, 4)\n : \"\"\n );\n const pol: IAMPolicy = JSON.parse(result.policy);\n setPolicyStatements(pol.Statement);\n }\n setLoadingPolicy(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingPolicy(false);\n });\n } else {\n setLoadingPolicy(false);\n }\n }\n };\n\n if (loadingPolicy) {\n loadPolicyDetails();\n loadUsersForPolicy();\n loadGroupsForPolicy();\n }\n }, [\n policyName,\n loadingPolicy,\n loadingUsers,\n loadingGroups,\n setUserList,\n setGroupList,\n setPolicyDefinition,\n setPolicy,\n setLoadingUsers,\n setLoadingGroups,\n displayUsers,\n displayGroups,\n displayPolicy,\n ldapIsEnabled,\n dispatch,\n ]);\n\n const resetForm = () => {\n setPolicyDefinition(\"{}\");\n };\n\n const validSave = policyName.trim() !== \"\";\n\n const deletePolicy = () => {\n setDeleteOpen(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n navigate(IAM_PAGES.POLICIES);\n };\n\n const userViewAction = (user: any) => {\n navigate(`${IAM_PAGES.USERS}/${encodeURLString(user)}`);\n };\n const userTableActions = [\n {\n type: \"view\",\n onClick: userViewAction,\n disableButtonFunction: () => !viewUser,\n },\n ];\n\n const filteredUsers = userList.filter((elementItem) =>\n elementItem.includes(filterUsers)\n );\n\n const groupViewAction = (group: any) => {\n navigate(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const groupTableActions = [\n {\n type: \"view\",\n onClick: groupViewAction,\n disableButtonFunction: () => !viewGroup,\n },\n ];\n\n const filteredGroups = groupList.filter((elementItem) =>\n elementItem.includes(filterGroups)\n );\n\n return (\n \n {deleteOpen && (\n \n )}\n \n \n \n }\n />\n\n \n \n \n \n \n }\n title={policyName}\n subTitle={IAM Policy }\n actions={\n \n \n }\n onClick={deletePolicy}\n />\n \n\n }\n onClick={() => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n }}\n />\n \n }\n />\n \n\n \n {{\n tabConfig: { label: \"Summary\", disabled: !displayPolicy },\n content: (\n \n Policy Summary
\n \n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n },\n content: (\n \n Users
\n \n \n {\n setFilterUsers(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n\n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n },\n content: (\n \n Groups
\n \n \n {\n setFilterGroups(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n \n \n ),\n }}\n {{\n tabConfig: { label: \"Raw Policy\", disabled: !displayPolicy },\n content: (\n \n Raw Policy
\n \n \n ),\n }}\n \n \n \n );\n};\n\nexport default withStyles(styles)(PolicyDetails);\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: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"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: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"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: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.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 value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.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 * A list of ` ` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.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 * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that 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\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that 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\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import * as React from 'react';\nimport { getThemeProps, useThemeWithoutDefault as useTheme } from '@mui/system';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\n/**\n * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.\n */\n\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const [match, setMatch] = React.useState(() => {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n\n return defaultMatches;\n });\n useEnhancedEffect(() => {\n let active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n const queryList = matchMedia(query);\n\n const updateMatch = () => {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch(); // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n\n queryList.addListener(updateMatch);\n return () => {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n return match;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];\n\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia) {\n const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n const getServerSnapshot = React.useMemo(() => {\n if (ssrMatchMedia !== null) {\n const {\n matches\n } = ssrMatchMedia(query);\n return () => matches;\n }\n\n return getDefaultSnapshot;\n }, [getDefaultSnapshot, query, ssrMatchMedia]);\n const [getSnapshot, subscribe] = React.useMemo(() => {\n if (matchMedia === null) {\n return [getDefaultSnapshot, () => () => {}];\n }\n\n const mediaQueryList = matchMedia(query);\n return [() => mediaQueryList.matches, notify => {\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n mediaQueryList.addListener(notify);\n return () => {\n mediaQueryList.removeListener(notify);\n };\n }];\n }, [getDefaultSnapshot, matchMedia, query]);\n const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n return match;\n}\n\nexport default function useMediaQuery(queryInput, options = {}) {\n const theme = useTheme(); // Wait for jsdom to support the match media feature.\n // All the browsers MUI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const {\n defaultMatches = false,\n matchMedia = supportMatchMedia ? window.matchMedia : null,\n ssrMatchMedia = null,\n noSsr\n } = getThemeProps({\n name: 'MuiUseMediaQuery',\n props: options,\n theme\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // TODO: Drop `useMediaQueryOld` and use `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable\n\n const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query,\n match\n });\n }\n\n return match;\n}","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n"],"names":["withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","id","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","searchField","adornment","placeholder","adornmentPosition","overrideClass","inputProps","disableUnderline","position","InputProps","e","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","borderRight","flexFlow","borderBottom","marginRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","children","selectedTab","routes","isRouteTabs","React","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","event","newValue","orientation","scrollButtons","tabList","map","index","tabHeader","disableRipple","disableTouchRipple","focusRipple","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","rowGridStyle","gridTemplateColumns","gap","Highlight","search","txtParts","RegExp","replace","escapeRegExp","parts","String","split","part","test","maxWidth","policyStatements","useState","filter","setFilter","Grid","container","Box","sm","SearchBox","paddingTop","stmt","i","effect","Effect","isAllow","fill","Action","act","actIndex","Resource","res","resIndex","DeletePolicy","withSuspense","buttonContainer","textAlign","pageContainer","border","paperContainer","statement","borderRadius","labelCol","actionsTray","modalBasic","containerForHeader","spacing","dispatch","useAppDispatch","navigate","useNavigate","params","useParams","features","useSelector","selFeatures","policy","setPolicy","setPolicyStatements","userList","setUserList","groupList","setGroupList","addLoading","setAddLoading","policyName","decodeURLString","policyDefinition","setPolicyDefinition","loadingPolicy","setLoadingPolicy","filterUsers","setFilterUsers","loadingUsers","setLoadingUsers","filterGroups","setFilterGroups","loadingGroups","setLoadingGroups","deleteOpen","setDeleteOpen","ldapIsEnabled","includes","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","viewGroup","displayUsers","viewUser","displayPolicy","editPolicy","useEffect","api","encodeURLString","then","result","JSON","stringify","parse","pol","Statement","catch","err","setErrorSnackMessage","validSave","trim","userTableActions","type","user","IAM_PAGES","disableButtonFunction","filteredUsers","elementItem","groupTableActions","group","filteredGroups","Fragment","selectedPolicy","closeDeleteModalAndRefresh","refresh","PageHeader","BackLink","to","PageLayout","ScreenTitle","IAMPoliciesIcon","subTitle","actions","SecureComponent","scopes","resource","errorProps","disabled","RBIconButton","TrashIcon","RefreshIcon","VerticalTabs","sectionTitle","Paper","TextField","val","startAdornment","InputAdornment","SearchIcon","TableWrapper","itemActions","columns","elementKey","isLoading","records","entityName","idField","noValidate","autoComplete","onSubmit","preventDefault","name","_","setSnackBarMessage","CodeMirrorWrapper","editor","data","clearButton","Button","LinearProgress","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Context","TabContext","props","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","root","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","palette","secondary","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","size","slots","composedClasses","useMediaQueryOld","query","defaultMatches","matchMedia","ssrMatchMedia","noSsr","supportMatchMedia","window","matches","match","setMatch","useEnhancedEffect","queryList","updateMatch","addListener","removeListener","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","mediaQueryList","notify","getSnapshot","subscribe","queryInput","options","getThemeProps","useMediaQueryImplementation","undefined","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1379.7e93fe73.chunk.js b/portal-ui/build/static/js/1379.7e93fe73.chunk.js
deleted file mode 100644
index 404066301..000000000
--- a/portal-ui/build/static/js/1379.7e93fe73.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1379],{41379:function(e,n,t){t.r(n),t.d(n,{default:function(){return Yn}});var i=t(1413),o=t(72791),a=t(60364),s=t(16871),r=t(11135),c=t(25787),l=t(20068),d=t(13400),u=t(61889),h=t(26181),m=t.n(h),f=t(81551),p=t(23814),x=t(93433),v=t(29439),b=t(57831),g=t(81207),j=t(92983),Z=t(45248),w=t(20890),y=t(84697),S=t(78029),C=t.n(S),N=t(43504),k=t(36151),E=t(15900),I=t(38442),_=t(56087),T=t(75578),F=t(87995),P=t(54756),L=t(40603),D=t(80184),O=(0,T.Z)(o.lazy((function(){return t.e(2185).then(t.bind(t,62185))}))),B=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)({},p.cx),{},{slashSpacingStyle:{margin:"0 5px"}}))}))((function(e){var n=e.classes,t=e.bucketName,i=e.internalPaths,r=e.existingFiles,c=e.hidePathButton,h=e.additionalOptions,m=(0,f.TL)(),p=(0,s.s0)(),b=(0,a.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),g=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),j=(0,a.v9)((function(e){return e.objectBrowser.versionedFile})),w=(0,o.useState)(!1),y=(0,v.Z)(w,2),S=y[0],T=y[1],B=i;""!==i&&(B="/".concat(i));var R=B.split("/").filter((function(e){return""!==e})),z=R.length-1,M=R.map((function(e,i){var a="".concat(R.slice(0,i+1).join("/"),"/"),s="/buckets/".concat(t,"/browse/").concat(a?"".concat((0,Z.LL)(a)):"");return i===z&&e===j?null:(0,D.jsxs)(o.Fragment,{children:[(0,D.jsx)("span",{className:n.slashSpacingStyle,children:"/"}),i===z?(0,D.jsx)("span",{style:{cursor:"default"},children:e}):(0,D.jsx)(N.rU,{to:s,onClick:function(){m((0,P.db)({status:!1,objectName:""}))},children:e})]},"breadcrumbs-".concat(i.toString()))})),A=[];g&&(A=[(0,D.jsx)(o.Fragment,{children:(0,D.jsxs)("span",{children:[(0,D.jsx)("span",{className:n.slashSpacingStyle,children:"/"}),j," - Versions"]})},"breadcrumbs-versionedItem")]);var U=[(0,D.jsx)(o.Fragment,{children:(0,D.jsx)(N.rU,{to:"/buckets/".concat(t,"/browse"),onClick:function(){m((0,P.db)({status:!1,objectName:""}))},children:t})},"breadcrumbs-root-path")].concat((0,x.Z)(M),(0,x.Z)(A));return(0,D.jsxs)(o.Fragment,{children:[(0,D.jsxs)("div",{className:n.breadcrumbsMain,children:[S&&(0,D.jsx)(O,{modalOpen:S,bucketName:t,folderName:i,onClose:function(){T(!1)},existingFiles:r}),(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:"".concat(n.breadcrumbs),children:[(0,D.jsx)(d.Z,{onClick:function(){g?m((0,P.db)({status:!1,objectName:""})):p(-1)},sx:{border:"#EAEDEE 1px solid",backgroundColor:"#fff",borderLeft:0,borderRadius:0,width:38,height:38,marginRight:"10px"},children:(0,D.jsx)(E.ubh,{})}),(0,D.jsx)("div",{className:n.breadcrumbsList,dir:"rtl",children:U}),(0,D.jsx)(C(),{text:"".concat(t,"/").concat(R.join("/")),children:(0,D.jsx)(L.Z,{id:"copy-path",icon:(0,D.jsx)(E.TIy,{}),disableTouchRipple:!0,disableRipple:!0,focusRipple:!1,variant:"outlined",onClick:function(){m((0,F.y1)("Path copied to clipboard"))},sx:{marginRight:"3px",padding:"0",color:"#969FA8",border:"#969FA8 1px solid",width:"28px",height:"28px","& .MuiButton-root":{height:"28px"},"& .min-icon":{width:"12px",height:"12px"}}})}),(0,D.jsx)("div",{className:n.additionalOptions,children:h})]}),!c&&(0,D.jsx)(l.Z,{title:"Choose or create a new path",children:(0,D.jsx)(k.Z,{id:"new-path",onClick:function(){T(!0)},disabled:b||!(0,I.F)(t,[_.Ft.S3_PUT_OBJECT]),endIcon:(0,D.jsx)(E.N$q,{}),disableTouchRipple:!0,disableRipple:!0,focusRipple:!1,sx:{color:"#969FA8",border:"#969FA8 1px solid",whiteSpace:"nowrap",minWidth:"160px","@media (max-width: 1060px)":{fontSize:0,minWidth:40,padding:"0 10px 0 0"}},variant:"outlined",children:"Create new path"})})]}),(0,D.jsx)("div",{className:n.breadcrumbsSecond,children:h})]})})),R=t(47922),z=t(14917),M=t(74794),A=t(71715),U=t(23786),W=t(49900),G=t(57064),H=(0,c.Z)((function(e){return(0,r.Z)({listUploadIcons:{height:20,"& .min-icon":{width:18,fill:"rgba(0,0,0,0.87)"}}})}))((function(e){var n=e.uploadPath,t=e.bucketName,i=e.forceDisable,a=void 0!==i&&i,s=e.uploadFileFunction,r=e.uploadFolderFunction,c=e.classes,l=o.useState(null),d=(0,v.Z)(l,2),u=d[0],h=d[1],m=Boolean(u),f=function(){h(null)},p=(0,I.F)(n,[_.Ft.S3_PUT_OBJECT]),x=(0,I.F)(t,[_.Ft.S3_PUT_OBJECT],!1,!0),b=p||x;return(0,D.jsxs)(o.Fragment,{children:[(0,D.jsx)(L.Z,{id:"upload-main",tooltip:"Upload Files","aria-controls":"upload-main-menu","aria-haspopup":"true","aria-expanded":m?"true":void 0,onClick:function(e){h(e.currentTarget)},text:"Upload",icon:(0,D.jsx)(E.rG2,{}),color:"primary",variant:"contained",disabled:a||!b}),(0,D.jsxs)(A.Z,{id:"upload-main-menu","aria-labelledby":"upload-main",anchorEl:u,open:m,onClose:function(){f()},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[(0,D.jsxs)(U.Z,{onClick:function(){s(f)},disabled:!p||a,children:[(0,D.jsx)(G.Z,{className:c.listUploadIcons,children:(0,D.jsx)(E.rG2,{})}),(0,D.jsx)(W.Z,{children:"Upload File"})]}),(0,D.jsxs)(U.Z,{onClick:function(){r(f)},disabled:!x||a,children:[(0,D.jsx)(G.Z,{className:c.listUploadIcons,children:(0,D.jsx)(E.oXh,{})}),(0,D.jsx)(W.Z,{children:"Upload Folder"})]})]})]})})),V=(0,c.Z)((function(e){return(0,r.Z)({detailsList:{borderColor:"#EAEDEE",backgroundColor:"#fff",borderWidth:0,borderStyle:"solid",borderRadius:3,borderBottomLeftRadius:0,borderBottomRightRadius:0,width:0,transitionDuration:"0.3s",overflowX:"hidden",overflowY:"auto",position:"relative",opacity:0,marginLeft:-1,"&.open":{width:300,minWidth:300,borderLeftWidth:1,opacity:1},"@media (max-width: 799px)":{"&.open":{width:"100%",minWidth:"100%",borderLeftWidth:0}}},closePanel:{position:"absolute",right:0,top:8,"& .min-icon":{width:14}}})}))((function(e){var n=e.classes,t=e.open,i=e.closePanel,o=e.className,a=void 0===o?"":o,s=e.children;return(0,D.jsxs)(u.ZP,{item:!0,className:"".concat(n.detailsList," ").concat(t?"open":""," ").concat(a),children:[(0,D.jsx)(d.Z,{onClick:i,className:n.closePanel,children:(0,D.jsx)(E.oto,{})}),s]})})),K=t(64554),J=t(25183),Y=t(34433),q=[{value:"01",label:"January"},{value:"02",label:"February"},{value:"03",label:"March"},{value:"04",label:"April"},{value:"05",label:"May"},{value:"06",label:"June"},{value:"07",label:"July"},{value:"08",label:"August"},{value:"09",label:"September"},{value:"10",label:"October"},{value:"11",label:"November"},{value:"12",label:"December"}],X=Array.from(Array(31),(function(e,n){return n+1})),$=(new Date).getFullYear(),Q=Array.from(Array(25),(function(e,n){return n+$})),ee=t(56028),ne=t(37516),te=t(83679),ie=t(4942),oe=t(28182),ae=t(30829),se=t(68096),re=t(58406),ce=t(4834),le=t(84570),de=(0,c.Z)((function(e){return(0,r.Z)({root:{"& .MuiSelect-icon":{color:"#000","&.Mui-disabled":{color:"#9c9c9c"}}},input:{borderBottom:0,fontSize:12}})}))(ce.ZP),ue=(0,o.forwardRef)((function(e,n){var t=e.classes,i=e.id,a=e.label,s=e.disableOptions,r=void 0!==s&&s,c=e.addSwitch,d=void 0!==c&&c,h=e.tooltip,m=void 0===h?"":h,f=e.borderBottom,p=void 0!==f&&f,x=e.onDateChange,b=e.value,g=void 0===b?"":b;(0,o.useImperativeHandle)(n,(function(){return{resetDate:B}}));var j=(0,o.useState)(!1),Z=(0,v.Z)(j,2),w=Z[0],y=Z[1],S=(0,o.useState)(""),C=(0,v.Z)(S,2),N=C[0],k=C[1],E=(0,o.useState)(""),I=(0,v.Z)(E,2),_=I[0],T=I[1],F=(0,o.useState)(""),P=(0,v.Z)(F,2),L=P[0],O=P[1];(0,o.useEffect)((function(){if(""!==g){var e=g.split("-");O(e[0]),k(e[1]),T("".concat(parseInt(e[2])))}}),[g]),(0,o.useEffect)((function(){var e=function(e,n,t){var i=Date.parse("".concat(e,"-").concat(n,"-").concat(t));if(isNaN(i))return[!1,""];var o=parseInt(n),a=parseInt(t),s=o<10?"0".concat(o):o,r=a<10?"0".concat(a):a,c=new Date(i).toISOString().split("T")[0],l="".concat(e,"-").concat(s,"-").concat(r);return[c===l,l]}(L,N,_),n=(0,v.Z)(e,2),t=n[0],i=n[1];x(i,t)}),[N,_,L,x]);var B=function(){k(""),T(""),O("")},R=function(){return r||!!d&&!w};return(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:(0,oe.Z)(t.fieldContainer,(0,ie.Z)({},t.fieldContainerBorder,p)),children:[(0,D.jsx)("div",{className:t.labelContainer,children:(0,D.jsxs)(u.ZP,{container:!0,children:[(0,D.jsxs)(ae.Z,{htmlFor:i,className:t.inputLabel,children:[(0,D.jsx)("span",{children:a}),""!==m&&(0,D.jsx)("div",{className:t.tooltipContainer,children:(0,D.jsx)(l.Z,{title:m,placement:"top-start",children:(0,D.jsx)("div",{className:t.tooltip,children:(0,D.jsx)(le.Z,{})})})})]}),d&&(0,D.jsx)(ne.Z,{indicatorLabels:["Specific Date","Default (7 Days)"],checked:w,value:"date_enabled",id:"date-status",name:"date-status",onChange:function(e){y(e.target.checked),e.target.checked||x("",!0)},switchOnly:!0})]})}),(0,D.jsxs)("div",{children:[(0,D.jsx)(se.Z,{disabled:R(),className:t.dateInput,children:(0,D.jsxs)(re.Z,{id:"".concat(i,"-month"),name:"".concat(i,"-month"),value:N,displayEmpty:!0,onChange:function(e){k(e.target.value)},input:(0,D.jsx)(de,{}),children:[(0,D.jsx)(U.Z,{value:"",disabled:!0,children:""}),q.map((function(e){return(0,D.jsx)(U.Z,{value:e.value,children:e.label},"select-".concat(i,"-monthOP-").concat(e.label))}))]})}),(0,D.jsx)(se.Z,{disabled:R(),className:t.dateInput,children:(0,D.jsxs)(re.Z,{id:"".concat(i,"-day"),name:"".concat(i,"-day"),value:_,displayEmpty:!0,onChange:function(e){T(e.target.value)},input:(0,D.jsx)(de,{}),children:[(0,D.jsx)(U.Z,{value:"",disabled:!0,children:""}),X.map((function(e){return(0,D.jsx)(U.Z,{value:e,children:e},"select-".concat(i,"-dayOP-").concat(e))}))]})}),(0,D.jsx)(se.Z,{disabled:R(),className:t.dateInput,children:(0,D.jsxs)(re.Z,{id:"".concat(i,"-year"),name:"".concat(i,"-year"),value:L,displayEmpty:!0,onChange:function(e){O(e.target.value)},input:(0,D.jsx)(de,{}),children:[(0,D.jsx)(U.Z,{value:"",disabled:!0,children:""}),Q.map((function(e){return(0,D.jsx)(U.Z,{value:e,children:e},"select-".concat(i,"-yearOP-").concat(e))}))]})})]})]})})),he=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateInput:{"&:not(:last-child)":{marginRight:22}}},p.YI),p.Hr),{},{labelContainer:{flex:1},fieldContainer:(0,i.Z)((0,i.Z)({},p.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),fieldContainerBorder:{borderBottom:"#9c9c9c 1px solid",marginBottom:20}}))}))(ue),me=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.DF),p.ID),p.bK),{},{dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}}))}))((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,a=e.objectName,s=e.objectInfo,r=e.bucketName,c=(0,f.TL)(),l=(0,o.useState)(!0),d=(0,v.Z)(l,2),h=d[0],m=d[1],p=(0,o.useState)(""),x=(0,v.Z)(p,2),b=x[0],j=x[1],w=(0,o.useState)(""),y=(0,v.Z)(w,2),S=y[0],C=y[1],N=(0,o.useState)(!1),E=(0,v.Z)(N,2),I=E[0],_=E[1],T=(0,o.useState)(!1),P=(0,v.Z)(T,2),L=P[0],O=P[1],B=(0,o.useState)(!1),R=(0,v.Z)(B,2),z=R[0],M=R[1];(0,o.useEffect)((function(){if(s.retention_mode&&(j(s.retention_mode.toLowerCase()),M(!0)),s.retention_until_date){var e=new Date(s.retention_until_date);if("Invalid Date"!==e.toString()){var n=e.getFullYear(),t=(o=e.getMonth()+1)<10?"0".concat(o):"".concat(o),i=e.getDate();isNaN(i)||"NaN"===t||isNaN(n)||C("".concat(n,"-").concat(t,"-").concat(i))}M(!0)}var o}),[s]);var A=(0,o.useRef)(null),U=function(){m(!1),j(""),A.current&&A.current.resetDate()},W=z&&("governance"===b||""===b);return(0,D.jsxs)(ee.Z,{title:"Set Retention Policy",modalOpen:t,onClose:function(){U(),i(!1)},children:[(0,D.jsxs)("div",{className:n.spacerBottom,children:[(0,D.jsx)("strong",{children:"Selected Object"}),": ",a]}),(0,D.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:[W&&(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,D.jsx)(ne.Z,{value:"status",id:"status",name:"status",checked:h,onChange:function(e){m(!h)},label:"Status",indicatorLabels:["Enabled","Disabled"]})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,D.jsx)(te.Z,{currentSelection:b,id:"type",name:"type",label:"Type",disableOptions:!h||z&&""!==b,onChange:function(e){j(e.target.value)},selectorOptions:[{label:"Governance",value:"governance"},{label:"Compliance",value:"compliance"}]})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:"".concat(n.dateSelector," "),children:(0,D.jsx)(he,{id:"date",label:"Date",disableOptions:!(h&&("governance"===b||"compliance"===b)),ref:A,value:S,borderBottom:!0,onDateChange:function(e,n){_(n),n&&C(e)}})}),(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,D.jsx)(k.Z,{type:"button",variant:"outlined",color:"primary",onClick:U,children:"Reset"}),(0,D.jsx)(k.Z,{type:"submit",variant:"contained",color:"primary",disabled:h&&""===b||h&&!I||L,onClick:function(){O(!0);var e=s.name,n=s.version_id,t=h||"governance"!==b?"".concat(S,"T23:59:59Z"):"";h||"governance"!==b?function(e,n,t){g.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,Z.LL)(e),"&version_id=").concat(n),{expires:t,mode:b}).then((function(e){O(!1),i(!0)})).catch((function(e){c((0,F.zb)(e)),O(!1)}))}(e,n,t):function(e,n){g.Z.invoke("DELETE","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,Z.LL)(e),"&version_id=").concat(n)).then((function(){O(!1),i(!0)})).catch((function(e){c((0,F.zb)(e)),O(!1)}))}(e,n)},children:"Save"})]})]})]})})),fe=t(51691),pe=t(2148),xe=t(9505),ve=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,a=e.selectedObject,s=e.versioning,r=e.selectedVersion,c=void 0===r?"":r,l=(0,f.TL)(),d=(0,xe.Z)((function(){return n(!0)}),(function(e){return l((0,F.Ih)(e))})),u=(0,v.Z)(d,2),h=u[0],m=u[1],p=(0,o.useState)(!1),x=(0,v.Z)(p,2),b=x[0],g=x[1];if(!a)return null;return(0,D.jsx)(pe.Z,{title:"Delete Object",confirmText:"Delete",isOpen:t,titleIcon:(0,D.jsx)(E.NvT,{}),isLoading:h,onConfirm:function(){var e=(0,Z.IO)(a).endsWith("/");m("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(a).concat(""!==c?"&version_id=".concat(c):"&recursive=".concat(e,"&all_versions=").concat(b)))},onClose:function(){return n(!1)},confirmationContent:(0,D.jsxs)(fe.Z,{children:["Are you sure you want to delete: ",(0,D.jsx)("br",{}),(0,D.jsx)("b",{children:(0,Z.IO)(a)})," ",""!==c?(0,D.jsxs)(o.Fragment,{children:[(0,D.jsx)("br",{}),(0,D.jsx)("br",{}),"Version ID:",(0,D.jsx)("br",{}),(0,D.jsx)("strong",{children:c})]}):"","? ",(0,D.jsx)("br",{}),(0,D.jsx)("br",{}),s&&""===c&&(0,D.jsx)(ne.Z,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:b,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:function(e){g(!b)},description:""})]})})},be=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.DF),p.ID),p.bK))}))((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,a=e.objectName,s=e.bucketName,r=e.actualInfo,c=(0,f.TL)(),l=(0,o.useState)(!1),d=(0,v.Z)(l,2),h=d[0],p=d[1],x=(0,o.useState)(!1),b=(0,v.Z)(x,2),j=b[0],w=b[1],y=r.version_id;(0,o.useEffect)((function(){var e=m()(r,"legal_hold_status","OFF");p("ON"===e)}),[r]);var S=function(){p(!1)};return(0,D.jsxs)(ee.Z,{title:"Set Legal Hold",modalOpen:t,onClose:function(){S(),i(!1)},children:[(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.spacerBottom,children:["Object: ",s]}),(0,D.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),w(!0),g.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/legalhold?prefix=").concat((0,Z.LL)(a),"&version_id=").concat(y),{status:h?"enabled":"disabled"}).then((function(){w(!1),i(!0)})).catch((function(e){c((0,F.zb)(e)),w(!1)}))}(e)},children:[(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,D.jsx)(ne.Z,{value:"legalhold",id:"legalhold",name:"legalhold",checked:h,onChange:function(e){p(!h)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"})}),(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,D.jsx)(k.Z,{type:"button",color:"primary",variant:"outlined",onClick:S,children:"Clear"}),(0,D.jsx)(k.Z,{type:"submit",variant:"contained",color:"primary",disabled:j,children:"Save"})]})]})]})})),ge=t(78562),je=t(79836),Ze=t(53382),we=t(35855),ye=t(53994),Se=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)({propertiesIcon:{marginLeft:5,"& .min-icon":{height:12}},capitalizeFirst:{textTransform:"capitalize","& .min-icon":{width:16,height:16}},titleItem:{width:"35%"}},p.bK),p.$b))}))((function(e){var n=e.bucketName,t=e.internalPaths,i=e.classes,a=e.actualInfo,s=e.linear,r=void 0!==s&&s,c=(0,o.useState)({}),l=(0,v.Z)(c,2),d=l[0],h=l[1],f=(0,xe.Z)((function(e){var n=m()(e,"objectMetadata",{});h(n)}),(function(e){return!1})),p=(0,v.Z)(f,2)[1],x=Object.keys(d),b=(0,o.useCallback)((function(){p("GET","/api/v1/buckets/".concat(n,"/objects/metadata?prefix=").concat(t))}),[n,t,a]);return(0,o.useEffect)((function(){a&&b()}),[a,b]),r?(0,D.jsx)(o.Fragment,{children:x.map((function(e,n){var t=Array.isArray(d[e])?d[e].map(decodeURIComponent).join(", "):decodeURIComponent(d[e]);return(0,D.jsxs)(K.Z,{className:i.metadataLinear,children:[(0,D.jsx)("strong",{children:e}),(0,D.jsx)("br",{}),t]},"box-meta-".concat(e,"-").concat(n.toString()))}))}):(0,D.jsxs)(u.ZP,{container:!0,children:[(0,D.jsx)(u.ZP,{item:!0,xs:12,sx:{marginTop:"25px",marginBottom:"5px"},children:(0,D.jsx)("h3",{style:{marginTop:"0",marginBottom:"0"},children:"Object Metadata"})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,children:(0,D.jsx)(je.Z,{className:i.table,"aria-label":"simple table",children:(0,D.jsx)(Ze.Z,{children:x.map((function(e,n){var t=Array.isArray(d[e])?d[e].map(decodeURIComponent).join(", "):decodeURIComponent(d[e]);return(0,D.jsxs)(we.Z,{children:[(0,D.jsx)(ye.Z,{component:"th",scope:"row",className:i.titleItem,children:e}),(0,D.jsx)(ye.Z,{align:"right",children:t})]},"tRow-".concat(n.toString()))}))})})})]})})),Ce=t(45987),Ne=["disabled","onClick","icon","label","classes"],ke=(0,c.Z)((function(e){return(0,r.Z)({root:{padding:"0 15px",height:22,margin:0,color:"#5E5E5E",fontWeight:"normal",fontSize:14,whiteSpace:"nowrap",width:"100%",justifyContent:"flex-start","&:hover":{backgroundColor:"transparent",color:"#000"},"& .min-icon":{width:11},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}}})}))((function(e){var n=e.disabled,t=e.onClick,o=e.icon,a=e.label,s=e.classes,r=(0,Ce.Z)(e,Ne);return(0,D.jsx)(k.Z,(0,i.Z)((0,i.Z)({},r),{},{disabled:n,onClick:t,className:(0,oe.Z)(s.root,"noDefaultHeight"),startIcon:o,sx:{height:"initial"},children:(0,D.jsx)("span",{className:"buttonItem",children:a})}))})),Ee=(0,c.Z)((function(){return(0,r.Z)((0,i.Z)({},p.$b))}))((function(e){var n=e.items,t=e.classes,i=e.title;return(0,D.jsxs)(o.Fragment,{children:[(0,D.jsx)("div",{className:t.titleLabel,children:i}),(0,D.jsxs)("ul",{className:t.objectActions,children:[(0,D.jsx)("li",{children:"Actions:"}),n.map((function(e,n){return(0,D.jsx)("li",{children:(0,D.jsx)(ke,{label:e.label,icon:e.icon,onClick:e.action,disabled:e.disabled})},"action-element-".concat(n.toString()))}))]})]})})),Ie=t(37762),_e=t(71863),Te=t(82314),Fe=(0,c.Z)((function(e){return(0,r.Z)({fileName:{display:"flex",alignItems:"center","& .min-icon":{width:16,height:16,marginRight:4,minWidth:16,minHeight:16}},fileNameText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}})}))((function(e){var n=e.classes,t=e.icon,i=e.strings;return(0,D.jsxs)("div",{className:n.fileName,children:[t,(0,D.jsx)("span",{className:n.fileNameText,children:i[i.length-1]})]})})),Pe=o.lazy((function(){return Promise.resolve().then(t.bind(t,76181))})),Le=o.lazy((function(){return Promise.resolve().then(t.bind(t,49563))})),De=o.lazy((function(){return Promise.resolve().then(t.bind(t,21733))})),Oe=o.lazy((function(){return Promise.resolve().then(t.bind(t,95232))})),Be=o.lazy((function(){return Promise.resolve().then(t.bind(t,27529))})),Re=o.lazy((function(){return Promise.resolve().then(t.bind(t,60527))})),ze=o.lazy((function(){return Promise.resolve().then(t.bind(t,69812))})),Me=o.lazy((function(){return Promise.resolve().then(t.bind(t,46454))})),Ae=o.lazy((function(){return Promise.resolve().then(t.bind(t,84820))})),Ue=o.lazy((function(){return Promise.resolve().then(t.bind(t,40599))})),We=o.lazy((function(){return Promise.resolve().then(t.bind(t,72995))})),Ge=o.lazy((function(){return Promise.resolve().then(t.bind(t,34171))})),He=o.lazy((function(){return Promise.resolve().then(t.bind(t,30745))})),Ve=o.lazy((function(){return Promise.resolve().then(t.bind(t,84033))})),Ke=o.lazy((function(){return Promise.resolve().then(t.bind(t,52009))})),Je=[{icon:(0,D.jsx)(He,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,D.jsx)(Ae,{}),extensions:["mp3","m4a","aac"]},{icon:(0,D.jsx)(Ue,{}),extensions:["pdf"]},{icon:(0,D.jsx)(We,{}),extensions:["ppt","pptx"]},{icon:(0,D.jsx)(Ve,{}),extensions:["xls","xlsx"]},{icon:(0,D.jsx)(ze,{}),extensions:["cer","crt","pem"]},{icon:(0,D.jsx)(Le,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,D.jsx)(De,{}),extensions:["cfg","yaml"]},{icon:(0,D.jsx)(Oe,{}),extensions:["sql"]},{icon:(0,D.jsx)(Be,{}),extensions:["ttf","otf"]},{icon:(0,D.jsx)(Ge,{}),extensions:["txt"]},{icon:(0,D.jsx)(Ke,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,D.jsx)(Pe,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,D.jsx)(Re,{}),extensions:["jpeg","jpg","gif","tiff","png","heic","dng"]}],Ye=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=e,i=(0,D.jsx)(_e.Z,{});e.endsWith("/")&&(i=(0,D.jsx)(Te.Z,{}),t=e.slice(0,-1));var o,a=e.toLowerCase(),s=(0,Ie.Z)(Je);try{for(s.s();!(o=s.n()).done;){var r,c=o.value,l=(0,Ie.Z)(c.extensions);try{for(l.s();!(r=l.n()).done;){var d=r.value;a.endsWith(".".concat(d))&&(i=c.icon)}}catch(h){l.e(h)}finally{l.f()}}}catch(h){s.e(h)}finally{s.f()}!e.endsWith("/")&&e.indexOf(".")<0&&(i=(0,D.jsx)(Me,{}));var u=t.split("/");return n?i:(0,D.jsx)(Fe,{icon:i,strings:u})},qe=t(21435),Xe=t(81918),$e=t(29823),Qe=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({newTileHeader:{fontSize:18,fontWeight:"bold",color:"#000",margin:"35px 0",paddingBottom:15,display:"flex",alignItems:"center","& > svg":{marginRight:10}},tagsForLabel:{fontSize:16,margin:"20px 0 30px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"100%"},currentTagsContainer:{fontSize:14,fontWeight:"normal"},noTagsForObject:{color:"#858585"},deleteTag:{color:"#C83B51",marginLeft:5}},p.DF),p.ID),p.bK))}))((function(e){var n=e.modalOpen,t=e.onCloseAndUpdate,s=e.bucketName,r=e.actualInfo,c=e.classes,l=(0,f.TL)(),d=(0,a.v9)(F.N5),h=(0,o.useState)(""),p=(0,v.Z)(h,2),x=p[0],b=p[1],j=(0,o.useState)(""),w=(0,v.Z)(j,2),y=w[0],S=w[1],C=(0,o.useState)(!1),N=(0,v.Z)(C,2),T=N[0],P=N[1],L=(0,o.useState)(!1),O=(0,v.Z)(L,2),B=O[0],R=O[1],z=(0,o.useState)(""),M=(0,v.Z)(z,2),A=M[0],U=M[1],W=(0,o.useState)(""),G=(0,v.Z)(W,2),H=G[0],V=G[1],J=(0,Z.LL)(r.name),Y=r.tags,q=Object.keys(Y||{}),X=r.name.split("/").pop()||"",$=function(e){return(0,D.jsxs)("div",{className:c.tagsForLabel,children:["Tag",e?"s":""," for: ",(0,D.jsx)("strong",{children:X})]})};return(0,D.jsx)(o.Fragment,{children:(0,D.jsx)(ee.Z,{modalOpen:n,title:B?(0,D.jsx)("span",{style:{color:"#C83B51"},children:"Delete Tag"}):"Edit Tags",onClose:function(){t(!0)},titleIcon:B?(0,D.jsx)(E.dRf,{style:{fill:"#C83B51"}}):(0,D.jsx)(E.T0F,{}),children:B?(0,D.jsx)(o.Fragment,{children:(0,D.jsxs)(u.ZP,{container:!0,children:[$(!1),"Are you sure you want to delete the tag"," ",(0,D.jsxs)("b",{className:c.deleteTag,children:[A," : ",H]})," ","?",(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,D.jsx)(k.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){U(""),V(""),R(!1)},children:"Cancel"}),(0,D.jsx)(k.Z,{type:"submit",variant:"outlined",color:"secondary",onClick:function(){var e=(0,i.Z)({},Y);delete e[A];var n=d?r.version_id:"null";g.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/tags?prefix=").concat(J,"&version_id=").concat(n),{tags:e}).then((function(e){t(!0),P(!1)})).catch((function(e){l((0,F.zb)(e)),P(!1)}))},id:"deleteTag",children:"Delete Tag"})]})]})}):(0,D.jsxs)(u.ZP,{container:!0,children:[(0,D.jsx)(I.s,{scopes:[_.Ft.S3_GET_OBJECT_TAGGING],resource:s,children:(0,D.jsxs)(K.Z,{sx:{display:"flex",flexFlow:"column",width:"100%"},children:[$(!0),(0,D.jsxs)("div",{className:c.currentTagsContainer,children:["Current Tags:",(0,D.jsx)("br",{}),0===q.length?(0,D.jsx)("span",{className:c.noTagsForObject,children:"There are no tags for this object"}):(0,D.jsx)(o.Fragment,{}),(0,D.jsx)(K.Z,{sx:{marginTop:"5px",marginBottom:"15px"},children:q.map((function(e,n){var t=m()(Y,"".concat(e),"");return""!==t?(0,D.jsx)(I.s,{scopes:[_.Ft.S3_DELETE_OBJECT_TAGGING],resource:s,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,D.jsx)(Xe.Z,{style:{textTransform:"none",marginRight:"5px",marginBottom:"5px"},size:"small",label:"".concat(e," : ").concat(t),color:"primary",deleteIcon:(0,D.jsx)($e.Z,{}),onDelete:function(){!function(e,n){U(e),V(n),R(!0)}(e,t)}})},"chip-".concat(n)):null}))})]})]})}),(0,D.jsx)(I.s,{scopes:[_.Ft.S3_PUT_OBJECT_TAGGING],resource:s,errorProps:{disabled:!0,onClick:null},children:(0,D.jsxs)(u.ZP,{container:!0,children:[(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:c.newTileHeader,children:[(0,D.jsx)(E.OCT,{})," Add New Tag"]}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,D.jsx)(qe.Z,{value:x,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:function(e){b(e.target.value)}})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,D.jsx)(qe.Z,{value:y,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:function(e){S(e.target.value)}})}),(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,D.jsx)(k.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){S(""),b("")},children:"Clear"}),(0,D.jsx)(k.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===y.trim()||""===x.trim()||T,onClick:function(){P(!0);var e={};e[x]=y;var n=(0,i.Z)((0,i.Z)({},Y),e),o=d?r.version_id:"null";g.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/tags?prefix=").concat(J,"&version_id=").concat(o),{tags:n}).then((function(e){t(!0),P(!1)})).catch((function(e){l((0,F.zb)(e)),P(!1)}))},id:"saveTag",children:"Save"})]})]})})]})})})})),en=t(74165),nn=t(15861),tn=t(73669),on=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.DF),p.ID),p.bK))}))((function(e){var n=e.classes,t=e.closeInspectModalAndRefresh,i=e.inspectOpen,a=e.inspectPath,s=e.volumeName,r=(0,f.TL)(),c=function(){return t(!1)},l=(0,o.useState)(!0),d=(0,v.Z)(l,2),h=d[0],m=d[1],p=(0,o.useState)(""),x=(0,v.Z)(p,2),b=x[0],g=x[1],j=(0,o.useState)(""),w=(0,v.Z)(j,2),y=w[0],S=w[1];if(!a)return null;var C=function(){var e=(0,nn.Z)((0,en.Z)().mark((function e(n){return(0,en.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(n,{method:"GET"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),N=function(){var e=(0,nn.Z)((0,en.Z)().mark((function e(){var n,t,i;return(0,en.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=(0,Z.LL)(a+"/xl.meta"),t=(0,Z.LL)(s),i="/api/v1/admin/inspect?volume=".concat(t,"&file=").concat(n,"&encrypt=").concat(h),C(i).then(function(){var e=(0,nn.Z)((0,en.Z)().mark((function e(n){var t,i,o,a;return(0,en.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.ok){e.next=5;break}return e.next=3,n.json();case 3:t=e.sent,r((0,F.Ih)({errorMessage:t.message,detailedError:t.code}));case 5:return e.next=7,n.blob();case 7:if(i=e.sent,o=n.headers.get("content-disposition").split('"')[1],a=(0,Z.Do)(o)||"",(0,Z.zZ)(i,o),S(o),""!==a){e.next=15;break}return c(),e.abrupt("return");case 15:g(a);case 16:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()).catch((function(e){r((0,F.Ih)(e))}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,D.jsxs)(o.Fragment,{children:[!b&&(0,D.jsx)(ee.Z,{modalOpen:i,titleIcon:(0,D.jsx)(J.Gp,{}),title:"Inspect Object",onClose:c,children:(0,D.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:["Would you like to encrypt ",(0,D.jsx)("b",{children:(0,Z.IO)(a)}),"?"," ",(0,D.jsx)("br",{}),(0,D.jsx)(ne.Z,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:h,value:"encrypt",id:"encrypt",name:"encrypt",onChange:function(e){m(!h)},description:""}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:(0,D.jsx)(k.Z,{type:"submit",variant:"contained",color:"primary",onClick:N,children:"Inspect"})})]})}),b?(0,D.jsx)(ee.Z,{modalOpen:i,title:"Inspect Decryption Key",onClose:function(){(0,Z.kT)(y),c(),g("")},titleIcon:(0,D.jsx)(E.tvm,{}),children:(0,D.jsxs)(fe.Z,{children:[(0,D.jsxs)(K.Z,{children:["This will be displayed only once. It cannot be recovered.",(0,D.jsx)("br",{}),"Use secure medium to share this key."]}),(0,D.jsx)(K.Z,{children:(0,D.jsx)(tn.Z,{value:b})})]})}):null]})})),an=t(72401),sn=t(76610),rn=t(72455),cn=(0,rn.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.ID),p.DF),p.bK),(0,p.Bz)(e.spacing(4))))})),ln=function(e){var n=e.open,t=e.closeModal,i=e.currentItem,a=e.internalPaths,s=e.actualInfo,r=e.bucketName,c=cn(),l=(0,f.TL)(),d=(0,o.useState)(i),h=(0,v.Z)(d,2),m=h[0],p=h[1],x=(0,o.useState)(!1),b=(0,v.Z)(x,2),g=b[0],j=b[1];return(0,D.jsxs)(ee.Z,{title:"Rename Download",modalOpen:n,onClose:t,titleIcon:(0,D.jsx)(E.dY8,{}),children:[(0,D.jsxs)("div",{children:["The file you are trying to download has a long name.",(0,D.jsx)("br",{}),"This can cause issues on Windows Systems by trimming the file name after download.",(0,D.jsx)("br",{}),(0,D.jsx)("br",{})," We recommend to rename the file download"]}),(0,D.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault();var n=(0,Z.LL)("".concat(r,"-").concat(s.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),i=(0,R.LR)(r,a,s.version_id,parseInt(s.size||"0"),m,(function(e){l((0,P.RO)({instanceID:n,progress:e}))}),(function(){l((0,P.oK)(n))}),(function(e){l((0,P.qJ)({instanceID:n,msg:e}))}),(function(){l((0,P.Im)(n))})),o=(0,sn.YO)(8);(0,sn.EN)(o,i),l((0,P.Mc)({ID:o,bucketName:r,done:!1,instanceID:n,percentage:0,prefix:m,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""})),i.send(),t()}(e)},children:(0,D.jsxs)(u.ZP,{container:!0,children:[(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:c.modalFormScrollable,children:[(0,D.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,D.jsx)(qe.Z,{id:"download-filename",name:"download-filename",onChange:function(e){p(e.target.value)},label:"",type:"text",value:m,error:m.length>200&&!g?"Filename should be less than 200 characters long.":""})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,D.jsx)(ne.Z,{value:"acceptLongName",id:"acceptLongName",name:"acceptLongName",checked:g,onChange:function(e){j(e.target.checked),e.target.checked&&p(i)},label:"Use Original Name"})})]}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:(0,D.jsx)(k.Z,{type:"submit",variant:"contained",color:"primary",disabled:m.length>200&&!g,children:"Download File"})})]})})]})},dn={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},un=(0,c.Z)((function(){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({ObjectDetailsTitle:{display:"flex",alignItems:"center","& .min-icon":{width:26,height:26,minWidth:26,minHeight:26}},objectNameContainer:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",alignItems:"center",marginLeft:10},headerForSection:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:15,borderBottom:"#E2E2E2 2px solid",fontWeight:"bold",fontSize:18,color:"#000",margin:"20px 22px"},capitalizeFirst:{textTransform:"capitalize"}},p.Si),p.OR),p.bK),p.VI),p.$b))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,s=e.versioning,r=e.locking,c=e.onClosePanel,l=(0,f.TL)(),d=(0,a.v9)(F.N5),h=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),p=(0,a.v9)((function(e){return e.objectBrowser.selectedVersion})),x=(0,a.v9)((function(e){return e.objectBrowser.loadingObjectInfo})),b=(0,o.useState)(!1),j=(0,v.Z)(b,2),w=j[0],y=j[1],S=(0,o.useState)(!1),C=(0,v.Z)(S,2),N=C[0],T=C[1],L=(0,o.useState)(!1),O=(0,v.Z)(L,2),B=O[0],z=O[1],M=(0,o.useState)(!1),A=(0,v.Z)(M,2),U=A[0],W=A[1],G=(0,o.useState)(!1),H=(0,v.Z)(G,2),V=H[0],q=H[1],X=(0,o.useState)(null),$=(0,v.Z)(X,2),Q=$[0],ee=$[1],ne=(0,o.useState)([]),te=(0,v.Z)(ne,2),ie=te[0],oe=te[1],ae=(0,o.useState)(null),se=(0,v.Z)(ae,2),re=se[0],ce=se[1],le=(0,o.useState)([]),de=(0,v.Z)(le,2),ue=de[0],he=de[1],fe=(0,o.useState)(!1),pe=(0,v.Z)(fe,2),xe=pe[0],je=pe[1],Ze=(0,o.useState)(!1),we=(0,v.Z)(Ze,2),ye=we[0],Ce=we[1],Ne=(0,o.useState)(0),ke=(0,v.Z)(Ne,2),Ie=ke[0],_e=ke[1],Te=(0,o.useState)(!1),Fe=(0,v.Z)(Te,2),Pe=Fe[0],Le=Fe[1],De=((0,Z.IO)(t)||"").split("/").pop()||"",Oe=[];Q&&(Oe=Q.name.split("/")),(0,o.useEffect)((function(){if(d&&ie&&ie.length>=1){var e=ie.find((function(e){return e.is_latest}))||dn;""!==p&&(e=ie.find((function(e){return e.version_id===p}))||dn),ee(e)}}),[p,d,ie]),(0,o.useEffect)((function(){x&&""!==t&&g.Z.invoke("GET","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(t).concat(d?"&with_versions=true":"")).then((function(e){var n=m()(e,"objects",[]);if(d){oe(n),he(n);var t=n.reduce((function(e,n){return null!==n&&void 0!==n&&n.size?e+n.size:e}),0);_e(t)}else ee(n[0]),he([]);l((0,P.vH)(!1))})).catch((function(e){console.error("Error loading object details",e),l((0,P.vH)(!1))}))}),[x,i,t,l,d,p]);var Be=[];Q&&Q.tags&&(Be=Object.keys(Q.tags));var Re=(0,D.jsx)("div",{style:{textAlign:"center",marginTop:35},children:(0,D.jsx)(an.Z,{})});if(!Q)return x?Re:null;var ze=Oe.length>0?Oe[Oe.length-1]:Q.name,Me=[i,De,[i,Q.name].join("/")],Ae=[{action:function(){!function(e){var n=(0,Z.LL)("".concat(i,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));if(e.name.length>200&&(0,Z.mv)().toLowerCase().includes("win"))Le(!0);else{var o=(0,R.LR)(i,t,e.version_id,parseInt(e.size||"0"),null,(function(e){l((0,P.RO)({instanceID:n,progress:e}))}),(function(){l((0,P.oK)(n))}),(function(e){l((0,P.qJ)({instanceID:n,msg:e}))}),(function(){l((0,P.Im)(n))})),a=(0,sn.YO)(8);(0,sn.EN)(a,o),l((0,P.Mc)({ID:a,bucketName:i,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""})),o.send()}}(Q)},label:"Download",disabled:!!Q.is_delete_marker||!(0,I.F)(Me,[_.Ft.S3_GET_OBJECT]),icon:(0,D.jsx)(E._8t,{}),tooltip:"Download this Object"},{action:function(){y(!0)},label:"Share",disabled:!!Q.is_delete_marker||!(0,I.F)(Me,[_.Ft.S3_GET_OBJECT]),icon:(0,D.jsx)(E.aAc,{}),tooltip:"Share this File"},{action:function(){Ce(!0)},label:"Preview",disabled:!!Q.is_delete_marker||"none"===(0,R.Bg)(De)||!(0,I.F)(Me,[_.Ft.S3_GET_OBJECT]),icon:(0,D.jsx)(E.P99,{}),tooltip:"Preview this File"},{action:function(){W(!0)},label:"Legal Hold",disabled:!r||!d||!!Q.is_delete_marker||!(0,I.F)(i,[_.Ft.S3_PUT_OBJECT_LEGAL_HOLD])||""!==p,icon:(0,D.jsx)(E.fNL,{}),tooltip:"Change Legal Hold rules for this File"},{action:function(){T(!0)},label:"Retention",disabled:!d||!!Q.is_delete_marker||!(0,I.F)(Me,[_.Ft.S3_GET_OBJECT_RETENTION])||""!==p,icon:(0,D.jsx)(E.E9d,{}),tooltip:"Change Retention rules for this File"},{action:function(){z(!0)},label:"Tags",disabled:!!Q.is_delete_marker||""!==p||!(0,I.F)(Me,[_.Ft.S3_PUT_OBJECT_TAGGING]),icon:(0,D.jsx)(E.DgT,{}),tooltip:"Change Tags for this File"},{action:function(){q(!0)},label:"Inspect",disabled:!d||!!Q.is_delete_marker||""!==p||!(0,I.F)(Me,[_.Ft.ADMIN_INSPECT_DATA]),icon:(0,D.jsx)(J.Gp,{}),tooltip:"Inspect this file"},{action:function(){l((0,P.db)({status:!h,objectName:ze}))},label:h?"Hide Object Versions":"Display Object Versions",icon:(0,D.jsx)(E.cRd,{}),disabled:!d||!(Q.version_id&&"null"!==Q.version_id)||!(0,I.F)(Me,[_.Ft.S3_GET_BUCKET_VERSIONING,_.Ft.S3_PUT_BUCKET_VERSIONING,_.Ft.S3_GET_OBJECT_VERSION]),tooltip:"Display Versions for this file"}];return(0,D.jsxs)(o.Fragment,{children:[w&&Q&&(0,D.jsx)(Y.default,{open:w,closeModalAndRefresh:function(){ce(null),y(!1)},bucketName:i,dataObject:re||Q}),N&&Q&&(0,D.jsx)(me,{open:N,closeModalAndRefresh:function(e){T(!1),e&&l((0,P.vH)(!0))},objectName:De,objectInfo:Q,bucketName:i}),xe&&(0,D.jsx)(ve,{deleteOpen:xe,selectedBucket:i,selectedObject:t,closeDeleteModalAndRefresh:function(e){je(!1),e&&""===p?c(!0):(l((0,P.Eq)(!0)),l((0,P.M3)("")),l((0,P.vH)(!0)))},versioning:d&&s,selectedVersion:p}),U&&Q&&(0,D.jsx)(be,{open:U,closeModalAndRefresh:function(e){W(!1),e&&l((0,P.vH)(!0))},objectName:Q.name,bucketName:i,actualInfo:Q}),ye&&Q&&(0,D.jsx)(ge.default,{open:ye,bucketName:i,object:{name:Q.name,version_id:Q.version_id||"null",size:parseInt(Q.size||"0"),content_type:"",last_modified:new Date(Q.last_modified)},onClosePreview:function(){Ce(!1)}}),B&&Q&&(0,D.jsx)(Qe,{modalOpen:B,bucketName:i,actualInfo:Q,onCloseAndUpdate:function(e){z(!1),e&&l((0,P.vH)(!0))}}),V&&Q&&(0,D.jsx)(on,{inspectOpen:V,volumeName:i,inspectPath:Q.name,closeInspectModalAndRefresh:function(e){q(!1),e&&l((0,P.vH)(!0))}}),Pe&&Q&&(0,D.jsx)(ln,{open:Pe,closeModal:function(){Le(!1)},currentItem:De,bucketName:i,internalPaths:t,actualInfo:Q}),x?(0,D.jsx)(o.Fragment,{children:Re}):(0,D.jsxs)(o.Fragment,{children:[(0,D.jsx)(Ee,{title:(0,D.jsxs)("div",{className:n.ObjectDetailsTitle,children:[Ye(ze,!0),(0,D.jsx)("span",{className:n.objectNameContainer,children:ze})]}),items:Ae}),(0,D.jsx)(u.ZP,{item:!0,xs:12,sx:{textAlign:"center"},children:(0,D.jsx)(I.s,{resource:[i,De,[i,Q.name].join("/")],scopes:[_.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,D.jsxs)(k.Z,{startIcon:(0,D.jsx)(E.pJl,{}),color:"secondary",variant:"outlined",onClick:function(){je(!0)},disabled:""===p&&Q.is_delete_marker,sx:{width:"calc(100% - 44px)",margin:"8px 0","& svg.min-icon":{width:14,height:14}},children:["Delete",""!==p?" version":""]})})}),(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.headerForSection,children:[(0,D.jsx)("span",{children:"Object Info"}),(0,D.jsx)(E.Gvh,{})]}),(0,D.jsxs)(K.Z,{className:n.detailContainer,children:[(0,D.jsx)("strong",{children:"Name:"}),(0,D.jsx)("br",{}),(0,D.jsx)("div",{style:{overflowWrap:"break-word"},children:ze})]}),""!==p&&(0,D.jsxs)(K.Z,{className:n.detailContainer,children:[(0,D.jsx)("strong",{children:"Version ID:"}),(0,D.jsx)("br",{}),p]}),(0,D.jsxs)(K.Z,{className:n.detailContainer,children:[(0,D.jsx)("strong",{children:"Size:"}),(0,D.jsx)("br",{}),(0,Z.ae)(Q.size||"0")]}),Q.version_id&&"null"!==Q.version_id&&""===p&&(0,D.jsxs)(K.Z,{className:n.detailContainer,children:[(0,D.jsx)("strong",{children:"Versions:"}),(0,D.jsx)("br",{}),ue.length," version",1!==ue.length?"s":"",","," ",(0,Z.l5)(Ie)]}),""===p&&(0,D.jsxs)(K.Z,{className:n.detailContainer,children:[(0,D.jsx)("strong",{children:"Last Modified:"}),(0,D.jsx)("br",{}),function(e){var n=new Date,t=new Date(e),i=n.getTime()-t.getTime(),o=(0,Z.nF)(i,"ms");return""!==o.trim()?"".concat(o," ago"):"Just now"}(Q.last_modified)]}),(0,D.jsxs)(K.Z,{className:n.detailContainer,children:[(0,D.jsx)("strong",{children:"ETAG:"}),(0,D.jsx)("br",{}),Q.etag||"N/A"]}),(0,D.jsxs)(K.Z,{className:n.detailContainer,children:[(0,D.jsx)("strong",{children:"Tags:"}),(0,D.jsx)("br",{}),0===Be.length?"N/A":Be.map((function(e,n){return(0,D.jsxs)("span",{children:[e,":",m()(Q,"tags.".concat(e),""),n div":{borderBottomColor:"#F8F8F8"}},"@media (max-width: 799px)":{margin:0,"&:hover, &.selected":{backgroundColor:"transparent","& > div":{borderBottomColor:"#E2E2E2"}}}},versionContainer:{fontSize:16,fontWeight:"bold",display:"flex",alignItems:"center","& svg.min-icon":{width:18,height:18,minWidth:18,minHeight:18,marginRight:10},"@media (max-width: 799px)":{fontSize:14,"& svg.min-icon":{display:"none"}}},buttonContainer:{textAlign:"right","& button":{marginLeft:"1.5rem"},"@media (max-width: 600px)":{"& button":{marginLeft:"5px"}}},versionID:{fontSize:"12px",margin:"2px 0",whiteSpace:"nowrap",textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden"},versionData:{marginRight:"10px",fontSize:12,color:"#868686","@media (max-width: 799px)":{textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden",whiteSpace:"nowrap"}},ctrItem:{position:"relative","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",height:"calc(100% + 2px)",backgroundColor:"#F8F8F8",left:"24px"},"@media (max-width: 799px)":{"&::before":{display:"none"}}},collapsableInfo:{"@media (max-width: 799px)":{display:"flex",flexDirection:"column"}},versionItem:{"@media (max-width: 799px)":{display:"none"}}})}))((function(e){var n=e.classes,t=e.fileName,i=e.versionInfo,o=e.isSelected,a=e.checkable,s=e.isChecked,r=e.onCheck,c=e.onShare,h=e.onDownload,m=e.onRestore,f=e.onPreview,p=e.globalClick,x=e.index,v=e.key,b=e.style,g=i.is_delete_marker,j=[{icon:(0,D.jsx)(E.P99,{}),action:f,tooltip:"Preview"},{icon:(0,D.jsx)(E._8t,{}),action:h,tooltip:"Download this version"},{icon:(0,D.jsx)(E.aAc,{}),action:c,tooltip:"Share this version"},{icon:(0,D.jsx)(E.D7Y,{}),action:m,tooltip:"Restore this version"}],w=null;return i.is_delete_marker?w="deleted":i.is_latest?w="current":"null"===i.version_id&&(w="null"),(0,D.jsx)(u.ZP,{container:!0,flex:1,className:n.ctrItem,onClick:function(){p(i)},style:b,children:(0,D.jsx)(u.ZP,{item:!0,xs:12,className:"".concat(n.intermediateLayer," ").concat(o?"selected":""),children:(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:"".concat(n.mainFileVersionItem," ").concat(i.is_delete_marker?"deleted":""),children:[(0,D.jsx)(u.ZP,{item:!0,xs:12,justifyContent:"space-between",children:(0,D.jsxs)(u.ZP,{container:!0,children:[(0,D.jsxs)(u.ZP,{item:!0,xs:!0,md:4,className:n.versionContainer,children:[a&&(0,D.jsx)(wn.Z,{checked:s,id:"select-".concat(i.version_id),label:"",name:"select-".concat(i.version_id),onChange:function(e){e.stopPropagation(),e.preventDefault(),r(i.version_id||"")},value:i.version_id||"",disabled:i.is_delete_marker,overrideCheckboxStyles:{paddingLeft:0,height:34,width:25},noTopMargin:!0}),Ye(t,!0)," v",x.toString(),(0,D.jsx)("span",{className:n.versionItem,children:w&&(0,D.jsx)(Zn,{type:w})})]}),(0,D.jsx)(u.ZP,{item:!0,xs:10,md:8,className:n.buttonContainer,children:j.map((function(e,t){return(0,D.jsx)(l.Z,{title:e.tooltip,children:(0,D.jsx)(d.Z,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(t.toString()),className:"".concat(n.spacing," ").concat(g?n.buttonDisabled:""),disabled:g,onClick:function(n){n.stopPropagation(),g?n.preventDefault():e.action(i)},sx:{backgroundColor:"#F8F8F8",borderRadius:"100%",width:"28px",height:"28px",padding:"5px","& .min-icon":{width:"14px",height:"14px"}},children:e.icon})},"version-action-".concat(e.tooltip,"-").concat(t.toString()))}))})]})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.versionID,children:"null"!==i.version_id?i.version_id:"-"}),(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.collapsableInfo,children:[(0,D.jsxs)("span",{className:n.versionData,children:[(0,D.jsx)("strong",{children:"Last modified:"})," ",(0,D.jsx)(mn(),{children:i.last_modified})]}),(0,D.jsxs)("span",{className:n.versionData,children:[(0,D.jsx)("strong",{children:"Size:"})," ",(0,Z.ae)(i.size||"0")]})]})]})})},v)})),Sn=t(90673),Cn=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,a=e.selectedObject,s=(0,f.TL)(),r=(0,o.useState)(!1),c=(0,v.Z)(r,2),l=c[0],d=c[1],h=(0,o.useState)(""),m=(0,v.Z)(h,2),p=m[0],x=m[1];if((0,o.useEffect)((function(){l&&g.Z.invoke("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(a,"&non_current_versions=true")).then((function(){n(!0)})).catch((function(e){s((0,F.Ih)(e)),d(!1)}))}),[l,n,s,a,i]),!a)return null;return(0,D.jsx)(pe.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:t,titleIcon:(0,D.jsx)(E.NvT,{}),isLoading:l,onConfirm:function(){d(!0)},onClose:function(){return n(!1)},confirmButtonProps:{disabled:"YES, PROCEED"!==p||l},confirmationContent:(0,D.jsxs)(fe.Z,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,D.jsx)("b",{children:(0,Z.IO)(a)}),"? ",(0,D.jsx)("br",{}),(0,D.jsx)("br",{}),"To continue please type ",(0,D.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,D.jsx)(u.ZP,{item:!0,xs:12,children:(0,D.jsx)(qe.Z,{id:"type-confirm",name:"retype-tenant",onChange:function(e){x(e.target.value)},label:"",value:p})})]})})},Nn=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,a=e.selectedVersions,s=e.selectedObject,r=(0,f.TL)(),c=(0,o.useState)(!1),l=(0,v.Z)(c,2),d=l[0],u=l[1];return(0,o.useEffect)((function(){if(d){var e=a.map((function(e){return{path:s,versionID:e,recursive:!1}}));e.length>0&&g.Z.invoke("POST","/api/v1/buckets/".concat(i,"/delete-objects?all_versions=false"),e).then((function(){u(!1),n(!0)})).catch((function(e){r((0,F.Ih)(e)),u(!1)}))}}),[d,n,i,s,a,r]),a?(0,D.jsx)(pe.Z,{title:"Delete Selected Versions",confirmText:"Delete",isOpen:t,titleIcon:(0,D.jsx)(E.NvT,{}),isLoading:d,onConfirm:function(){u(!0)},onClose:function(){return n(!1)},confirmationContent:(0,D.jsxs)(fe.Z,{children:["Are you sure you want to delete the selected ",a.length," ","versions for ",(0,D.jsx)("strong",{children:s}),"?"]})}):null},kn=t(5171),En={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},In=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({versionsContainer:{padding:10,"@media (max-width: 799px)":{minHeight:800}},noBottomBorder:{borderBottom:0},versionsVirtualPanel:{flexGrow:1,height:"calc(100% - 120px)",overflow:"auto","@media (max-width: 799px)":{height:600}},screenTitleContainer:{position:"relative","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",backgroundColor:"#F8F8F8",left:"24px",height:"40px",bottom:0},"@media (max-width: 799px)":{"&::before":{display:"none"}}},sortByLabel:{color:"#838383",fontWeight:"bold",whiteSpace:"nowrap",marginRight:12,fontSize:14,"@media (max-width: 600px)":{display:"none"}}},p.bp),p.Si),p.OR),p.VX),p.bK),p.VI),p.cx),p.C4),(0,p.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,s=(0,f.TL)(),r=(0,a.v9)((function(e){return e.objectBrowser.searchVersions})),c=(0,a.v9)((function(e){return e.objectBrowser.loadingVersions})),l=(0,a.v9)((function(e){return e.objectBrowser.selectedVersion})),d=(0,a.v9)(F.N5),h=(0,o.useState)(!1),p=(0,v.Z)(h,2),b=p[0],j=p[1],w=(0,o.useState)(null),y=(0,v.Z)(w,2),S=y[0],C=y[1],N=(0,o.useState)(null),k=(0,v.Z)(N,2),I=k[0],_=k[1],T=(0,o.useState)([]),O=(0,v.Z)(T,2),M=O[0],A=O[1],U=(0,o.useState)(!1),W=(0,v.Z)(U,2),G=W[0],H=W[1],V=(0,o.useState)(""),K=(0,v.Z)(V,2),J=K[0],q=K[1],X=(0,o.useState)("date"),$=(0,v.Z)(X,2),Q=$[0],ee=$[1],ne=(0,o.useState)(!1),te=(0,v.Z)(ne,2),ie=te[0],oe=te[1],ae=(0,o.useState)(!1),se=(0,v.Z)(ae,2),re=se[0],ce=se[1],le=(0,o.useState)(!1),de=(0,v.Z)(le,2),ue=de[0],he=de[1],me=(0,o.useState)([]),fe=(0,v.Z)(me,2),pe=fe[0],xe=fe[1],ve=(0,o.useState)(!1),be=(0,v.Z)(ve,2),je=be[0],Ze=be[1],we=[];S&&(we=S.name.split("/")),(0,o.useEffect)((function(){c||S||s((0,P.Eq)(!0))}),[c,S,s]),(0,o.useEffect)((function(){c&&""!==t&&g.Z.invoke("GET","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(t).concat(d?"&with_versions=true":"")).then((function(e){var n=m()(e,"objects",[]);d?(C(n.find((function(e){return e.is_latest}))||En),A(n)):(C(n[0]),A([])),s((0,P.Eq)(!1))})).catch((function(e){s((0,F.Ih)(e)),s((0,P.Eq)(!1))}))}),[c,i,t,s,d]);var ye=function(e){_(e),j(!0)},Se=function(e){_(e),oe(!0)},Ce=function(e){q(e.version_id||""),H(!0)},Ne=function(e){!function(e){var n=(0,Z.LL)("".concat(i,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),o=(0,R.LR)(i,t,e.version_id,parseInt(e.size||"0"),null,(function(e){s((0,P.RO)({instanceID:n,progress:e}))}),(function(){s((0,P.oK)(n))}),(function(e){s((0,P.qJ)({instanceID:n,msg:e}))}),(function(){s((0,P.Im)(n))})),a=(0,sn.YO)(8);(0,sn.EN)(a,o),s((0,P.Mc)({ID:a,bucketName:i,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""})),o.send()}(e)},ke=function(e){s((0,P.M3)(e.version_id||""))},Ee=M.filter((function(e){return!!e.version_id&&e.version_id.includes(r)})),Ie=M.reduce((function(e,n){return n.size?e+parseInt(n.size):e}),0);Ee.sort((function(e,n){if("size"===Q)return e.size&&n.size?e.sizen.size?1:0:0;var t=new Date(e.last_modified).getTime(),i=new Date(n.last_modified).getTime();return ti?-1:0}));var _e=function(e){if(pe.includes(e)){var n=pe.filter((function(n){return n!==e}));xe(n)}else{var t=(0,x.Z)(pe);t.push(e),xe(t)}};return(0,D.jsxs)(o.Fragment,{children:[b&&S&&(0,D.jsx)(Y.default,{open:b,closeModalAndRefresh:function(){_(null),j(!1),oe(!1)},bucketName:i,dataObject:I||S}),G&&S&&(0,D.jsx)(jn,{restoreOpen:G,bucketName:i,versionID:J,objectPath:S.name,onCloseAndUpdate:function(e){H(!1),q(""),e&&(s((0,P.Eq)(!0)),s((0,P.vH)(!0)))}}),ie&&S&&(0,D.jsx)(ge.default,{open:ie,bucketName:i,object:{name:S.name,version_id:I&&I.version_id?I.version_id:"null",size:parseInt(I&&I.size?I.size:"0"),content_type:"",last_modified:new Date(S.last_modified)},onClosePreview:function(){oe(!1)}}),re&&(0,D.jsx)(Cn,{deleteOpen:re,closeDeleteModalAndRefresh:function(e){ce(!1),e&&(s((0,P.Eq)(!0)),s((0,P.M3)("")),s((0,P.vH)(!0)))},selectedBucket:i,selectedObject:t}),je&&(0,D.jsx)(Nn,{selectedBucket:i,selectedObject:(0,Z.IO)(t),deleteOpen:je,selectedVersions:pe,closeDeleteModalAndRefresh:function(e){Ze(!1),e&&(s((0,P.Eq)(!0)),s((0,P.M3)("")),s((0,P.vH)(!0)),xe([]))}}),(0,D.jsxs)(u.ZP,{container:!0,className:n.versionsContainer,children:[!S&&(0,D.jsx)(u.ZP,{item:!0,xs:12,children:(0,D.jsx)(bn.Z,{})}),S&&(0,D.jsxs)(o.Fragment,{children:[(0,D.jsx)(u.ZP,{item:!0,xs:12,children:(0,D.jsx)(B,{bucketName:i,internalPaths:(0,Z.IO)(t),existingFiles:[],hidePathButton:!0})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,D.jsx)(z.Z,{icon:(0,D.jsx)("span",{className:n.listIcon,children:(0,D.jsx)(E.cRd,{})}),title:(0,D.jsxs)("span",{className:n.titleSpacer,children:[we.length>0?we[we.length-1]:S.name," ","Versions"]}),subTitle:(0,D.jsx)(o.Fragment,{children:(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,D.jsx)("span",{className:n.detailsSpacer,children:(0,D.jsxs)("strong",{children:[M.length," Version",1===M.length?"":"s","\xa0\xa0\xa0"]})}),(0,D.jsx)("span",{className:n.detailsSpacer,children:(0,D.jsx)("strong",{children:(0,Z.l5)(Ie)})})]})}),actions:(0,D.jsxs)(o.Fragment,{children:[(0,D.jsx)(L.Z,{id:"select-multiple-versions",tooltip:"Select Multiple Versions",onClick:function(){he(!ue)},text:"",icon:(0,D.jsx)(E.amE,{}),color:"primary",variant:ue?"contained":"outlined",style:{marginRight:8}}),ue&&(0,D.jsx)(L.Z,{id:"delete-multiple-versions",tooltip:"Delete Selected Versions",onClick:function(){Ze(!0)},text:"",icon:(0,D.jsx)(E.pJl,{}),color:"secondary",style:{marginRight:8},disabled:0===pe.length}),(0,D.jsx)(L.Z,{id:"delete-non-current",tooltip:"Delete Non Current Versions",onClick:function(){ce(!0)},text:"",icon:(0,D.jsx)(E.utM,{}),color:"secondary",style:{marginRight:15},disabled:M.length<=1}),(0,D.jsx)("span",{className:n.sortByLabel,children:"Sort by"}),(0,D.jsx)(Sn.Z,{id:"sort-by",label:"",value:Q,onChange:function(e){ee(e.target.value)},name:"sort-by",options:[{label:"Date",value:"date"},{label:"Size",value:"size"}]})]}),className:n.noBottomBorder})}),(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.versionsVirtualPanel,children:S.version_id&&"null"!==S.version_id&&(0,D.jsx)(kn.aV,{style:{width:"100%"},containerStyle:{width:"100%",maxWidth:"100%"},width:1,height:800,rowCount:Ee.length,rowHeight:108,rowRenderer:function(e){var n=e.key,t=e.index,i=(e.isScrolling,e.isVisible,e.style),o=M.length-t;return(0,D.jsx)(yn,{style:i,fileName:(null===S||void 0===S?void 0:S.name)||"",versionInfo:Ee[t],index:o,onDownload:Ne,onRestore:Ce,onShare:ye,onPreview:Se,globalClick:ke,isSelected:l===Ee[t].version_id,checkable:ue,onCheck:_e,isChecked:pe.includes(Ee[t].version_id||"")},n)}})})]})]})]})})),_n=t(9859),Tn=o.lazy((function(){return Promise.resolve().then(t.bind(t,13065))})),Fn=o.lazy((function(){return Promise.resolve().then(t.bind(t,28789))})),Pn=o.lazy((function(){return Promise.resolve().then(t.bind(t,74768))})),Ln=(0,T.Z)(o.lazy((function(){return t.e(711).then(t.bind(t,50711))}))),Dn=(0,T.Z)(o.lazy((function(){return Promise.resolve().then(t.bind(t,34433))}))),On=(0,T.Z)(o.lazy((function(){return Promise.all([t.e(3691),t.e(4814),t.e(6901)]).then(t.bind(t,26901))}))),Bn=(0,T.Z)(o.lazy((function(){return Promise.resolve().then(t.bind(t,78562))}))),Rn=(0,rn.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({browsePaper:{border:0,height:"calc(100vh - 210px)","&.actionsPanelOpen":{minHeight:"100%"},"@media (max-width: 800px)":{width:800}},"@global":{".rowLine:hover .iconFileElm":{backgroundImage:"url(/images/ob_file_filled.svg)"},".rowLine:hover .iconFolderElm":{backgroundImage:"url(/images/ob_folder_filled.svg)"}},badgeOverlap:{"& .MuiBadge-badge":{top:10,right:1,width:5,height:5,minWidth:5}},screenTitle:{borderBottom:0,paddingTop:0,paddingLeft:0,paddingRight:0}},p.VX),p.OR),p.qg),{},{searchField:(0,i.Z)((0,i.Z)({},p.qg.searchField),{},{maxWidth:380}),screenTitleContainer:{border:"#EAEDEE 1px solid",padding:"0.8rem 15px 0"},labelStyle:{color:"#969FA8",fontSize:"12px"},breadcrumbsContainer:{padding:"12px 14px 5px"},parentWrapper:{"@media (max-width: 800px)":{overflowX:"auto"}},fullContainer:{"@media (max-width: 799px)":{width:0}},hideListOnSmall:{"@media (max-width: 799px)":{display:"none"}}},p.C4),p.cx),(0,p.Bz)(e.spacing(4))))})),zn={borderWidth:2,borderRadius:2,borderColor:"#eeeeee",outline:"none"},Mn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#2196f3"},An={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#00e676"};var Un=(0,D.jsx)(w.Z,{component:"h3",children:"Loading..."}),Wn=function(){var e,n=Rn(),t=(0,f.TL)(),r=(0,s.UO)(),c=(0,s.s0)(),l=(0,a.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),d=(0,a.v9)((function(e){return e.objectBrowser.rewind.dateToRewind})),h=(0,a.v9)((function(e){return e.objectBrowser.rewind.bucketToRewind})),p=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),S=(0,a.v9)((function(e){return e.objectBrowser.searchObjects})),C=(0,a.v9)((function(e){return e.objectBrowser.showDeleted})),N=(0,a.v9)((function(e){return e.objectBrowser.objectDetailsOpen})),k=(0,a.v9)((function(e){return e.objectBrowser.selectedInternalPaths})),T=(0,a.v9)((function(e){return e.objectBrowser.loadingObjects})),O=(0,a.v9)((function(e){return e.objectBrowser.simplePath})),A=(0,a.v9)(_n.HQ),U=(0,a.v9)(_n.G6),W=(0,a.v9)((function(e){return e.console.session.allowResources})),G=(0,o.useState)([]),K=(0,v.Z)(G,2),J=K[0],Y=K[1],q=(0,o.useState)(!1),X=(0,v.Z)(q,2),$=X[0],Q=X[1],ee=(0,o.useState)(0),ne=(0,v.Z)(ee,2),te=ne[0],ie=ne[1],oe=(0,o.useState)(Un),ae=(0,v.Z)(oe,2),se=ae[0],re=ae[1],ce=(0,o.useState)(!0),le=(0,v.Z)(ce,2),de=le[0],ue=le[1],he=(0,o.useState)(!1),me=(0,v.Z)(he,2),fe=me[0],pe=me[1],xe=(0,o.useState)(!0),ve=(0,v.Z)(xe,2),be=ve[0],ge=ve[1],je=(0,o.useState)(!1),Ze=(0,v.Z)(je,2),we=Ze[0],ye=Ze[1],Se=(0,o.useState)(!1),Ce=(0,v.Z)(Se,2),Ne=Ce[0],ke=Ce[1],Ie=(0,o.useState)([]),_e=(0,v.Z)(Ie,2),Te=_e[0],Fe=_e[1],Pe=(0,o.useState)(!1),Le=(0,v.Z)(Pe,2),De=Le[0],Oe=Le[1],Be=(0,o.useState)(null),Re=(0,v.Z)(Be,2),ze=Re[0],Me=Re[1],Ae=(0,o.useState)(!1),Ue=(0,v.Z)(Ae,2),We=Ue[0],Ge=Ue[1],He=(0,o.useState)("ASC"),Ve=(0,v.Z)(He,2),Ke=Ve[0],Je=Ve[1],Ye=(0,o.useState)("name"),qe=(0,v.Z)(Ye,2),Xe=qe[0],$e=qe[1],Qe=(0,o.useState)(!1),en=(0,v.Z)(Qe,2),nn=en[0],tn=en[1],on=(0,o.useState)(!1),an=(0,v.Z)(on,2),rn=an[0],cn=an[1],dn=(0,o.useState)(!1),hn=(0,v.Z)(dn,2),mn=hn[0],fn=hn[1],pn=(0,o.useState)(null),bn=(0,v.Z)(pn,2),gn=bn[0],jn=bn[1],Zn=(0,o.useState)(null),yn=(0,v.Z)(Zn,2),Sn=yn[0],Cn=yn[1],Nn=m()(r,"subpaths",""),kn=r.bucketName||"",En=(0,o.useRef)(null),Wn=(0,o.useRef)(null);(0,o.useEffect)((function(){null!==Wn.current&&(Wn.current.setAttribute("directory",""),Wn.current.setAttribute("webkitdirectory",""))}),[Wn]),(0,o.useEffect)((function(){if(1===Te.length){var e=Te[0];"none"!==(0,R.Bg)(e)?fn(!0):fn(!1),e.endsWith("/")?cn(!1):cn(!0)}else cn(!1),fn(!1)}),[Te]),(0,o.useEffect)((function(){gn||g.Z.invoke("GET","/api/v1/buckets/".concat(kn,"/quota")).then((function(e){var n=null;e.quota&&(n=e),jn(n)})).catch((function(e){console.error("Error Getting Quota Status: ",e.detailedError),jn(null)}))}),[gn,kn]),(0,o.useEffect)((function(){Te.length>0?t((0,P.vb)(!0)):0===Te.length&&null===k&&t((0,P.vb)(!1))}),[Te,k,t]);var Gn=(0,I.F)(kn,[_.Ft.S3_DELETE_OBJECT]),Hn=(0,I.F)(kn,[_.Ft.S3_LIST_BUCKET]);(0,o.useEffect)((function(){nn||(t((0,_n.d5)(!0)),tn(!0))}),[nn,t,tn]),function(e,n){var t=(0,o.useRef)(null);(0,o.useEffect)((function(){t.current=e}),[e]),(0,o.useEffect)((function(){if(null!==n){var e=setInterval((function(){void 0!==t&&t.current&&t.current()}),n);return function(){return clearInterval(e)}}}),[n])}((function(){T&&function(){var e=Date.now()-te;e/1e3>=6?re((0,D.jsx)(o.Fragment,{children:(0,D.jsxs)(w.Z,{component:"h3",children:["This operation is taking longer than expected... (",Math.ceil(e/1e3),"s)"]})})):e/1e3>=3&&re((0,D.jsx)(w.Z,{component:"h3",children:"This operation is taking longer than expected..."}))}()}),1e3),(0,o.useEffect)((function(){de&&(Hn?g.Z.invoke("GET","/api/v1/buckets/".concat(kn,"/versioning")).then((function(e){pe(e.is_versioned),ue(!1)})).catch((function(e){console.error("Error Getting Object Versioning Status: ",e.detailedError),ue(!1)})):(ue(!1),Y([])))}),[kn,de,t,Hn]),(0,o.useEffect)((function(){be&&(Hn?g.Z.invoke("GET","/api/v1/buckets/".concat(kn,"/object-locking")).then((function(e){ye(e.object_locking_enabled),ge(!1)})).catch((function(e){console.error("Error Getting Object Locking Status: ",e.detailedError),ge(!1)})):(Y([]),ge(!1)))}),[kn,be,t,Hn]),(0,o.useEffect)((function(){var e=(0,Z.IO)(Nn);e.endsWith("/")||""===e?(t((0,P.vb)(!1)),t((0,P.EE)(null)),t((0,P.Su)(""===e?"/":e))):(t((0,P.vH)(!0)),t((0,P.vb)(!0)),t((0,P.Eq)(!0)),t((0,P.EE)("".concat(e?"".concat((0,Z.LL)(e)):""))),t((0,P.Su)("".concat(e.split("/").slice(0,-1).join("/"),"/"))))}),[Nn,d,l,t]),(0,o.useEffect)((function(){t((0,P.G4)("")),t((0,P.MU)(!0)),Fe([])}),[O,t,Fe]),(0,o.useEffect)((function(){if(T)if(Hn){var e="";if(Nn){var n=(0,Z.IO)(Nn);e=n.endsWith("/")?n:n+"/"}var i=Date.now();ie(i),re(Un);var o="/api/v1/buckets/".concat(kn,"/objects");if(l){if(h!==kn)return void t((0,P._w)());if(d){var a=d.toISOString();o="/api/v1/buckets/".concat(kn,"/rewind/").concat(a)}}else if(C){var s=(new Date).toISOString();o="/api/v1/buckets/".concat(kn,"/rewind/").concat(s)}g.Z.invoke("GET","".concat(o).concat(e?"?prefix=".concat((0,Z.LL)(e)):"")).then((function(n){var i=n.objects||[],a=[],s=[];i.forEach((function(e){e.name!==(0,Z.IO)(Nn)&&(e.name.endsWith("/")?a.push(e):s.push(e))}));var r=[].concat(a,s);if(0===r.length&&""!==e){var c="/api/v1/buckets/".concat(kn,"/objects").concat(Nn?"?prefix=".concat(Nn):"");if(l){var u=d.toISOString(),h="";if(Nn){var m=(0,Z.IO)(Nn);h=m.endsWith("/")?m:m+"/"}c="/api/v1/buckets/".concat(kn,"/rewind/").concat(u).concat(h?"?prefix=".concat((0,Z.LL)(h)):"")}g.Z.invoke("GET",c).then((function(n){if(n.objects){for(var i=!1,a=e.slice(0,e.length-1),s=0;s1,w="An error occurred while uploading the file".concat(j?"s":"","."),y={413:"Error - File size too large"};g.withCredentials=!1,g.onload=function(e){if(g.status>=200&&g.status<300)t((0,P.oK)(b)),s({status:g.status});else{if(y[g.status])w=y[g.status];else if(g.response)try{var n=JSON.parse(g.response);w=n.detailedMessage}catch(i){w="something went wrong"}t((0,P.qJ)({instanceID:b,msg:w})),r({status:g.status,message:w})}},g.upload.addEventListener("error",(function(e){r(w),t((0,P.qJ)({instanceID:b,msg:"A network error occurred."}))})),g.upload.addEventListener("progress",(function(e){var n=Math.floor(100*e.loaded/e.total);t((0,P.RO)({instanceID:b,progress:n}))})),g.onerror=function(){r(w),t((0,P.qJ)({instanceID:b,msg:"A network error occurred."}))},g.onloadend=function(){0===e.length&&t((0,P.MU)(!0))},g.onabort=function(){t((0,P.Im)(b))};var S=new FormData;if(void 0!==a.size){S.append(a.size.toString(),d,l);var C=(0,sn.YO)(8);(0,sn.EN)(C,g),t((0,P.Mc)({ID:C,bucketName:n,done:!1,instanceID:b,percentage:0,prefix:"".concat((0,Z.IO)(u)).concat(l),type:"upload",waitingForFile:!1,failed:!1,cancelled:!1,errorMessage:""})),g.send(S)}}))},s=[];t((0,P.LD)());for(var r=0;r0){var i=s.length,o=s.length-n.length,a={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(o,"/").concat(i)};t((0,F.Ih)(a))}t((0,P.MU)(!0)),Fe([])}))}(e,kn,i,n)}),[kn,t,O]),Jn=(0,o.useCallback)((function(e){if(e&&e.length>0){var n=e[0].path;Kn(e,n)}}),[Kn]),Yn=(0,b.uI)({noClick:!0,onDrop:Jn}),qn=Yn.getRootProps,Xn=Yn.getInputProps,$n=Yn.isDragActive,Qn=Yn.isDragAccept,et=(0,o.useMemo)((function(){return(0,i.Z)((0,i.Z)((0,i.Z)({},zn),$n?Mn:{}),Qn?An:{})}),[$n,Qn]),nt=J.filter((function(e){return""===S||e.name.toLowerCase().indexOf(S.toLowerCase())>=0})),tt=(0,Z.IO)(Nn),it=tt.split("/").filter((function(e){return""!==e})),ot=nt.sort((0,R.P_)(Xe)),at=[];at="ASC"===Ke?ot:ot.reverse();var st=[kn];it.length>0&&(st=st.concat(it));var rt=function(e){if(t((0,P.EE)(null)),t((0,P.db)({status:!1})),N&&null!==k){var n=(0,Z.IO)(Nn).split("/");n.pop();var i="";n&&n.length>0&&(i="".concat(n.join("/"),"/")),c("/buckets/".concat(kn,"/browse/").concat((0,Z.LL)(i)))}t((0,P.vb)(!1)),Fe([]),e&&t((0,P.MU)(!0))},ct=[{type:"view",label:"View",onClick:function(e){Fe([]);var n="/buckets/".concat(kn,"/browse").concat(e?"/".concat((0,Z.LL)(e)):"");c(n),t((0,P.vb)(!0)),t((0,P.Eq)(!0)),t((0,P.EE)("".concat(e?"".concat((0,Z.LL)(e)):"")))},sendOnlyId:!0}],lt=[{action:function(){if(0!==Te.length){var e=[];if(1===(e=nt.filter((function(e){return Te.includes(e.name)}))).length&&e[0].name.length>200&&(0,Z.mv)().toLowerCase().includes("win"))return void Cn(e[0]);e.forEach((function(e){!function(e){var n=(0,Z.LL)("".concat(kn,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),i=(0,R.LR)(kn,(0,Z.LL)(e.name),e.version_id,e.size,null,(function(e){t((0,P.RO)({instanceID:n,progress:e}))}),(function(){t((0,P.oK)(n))}),(function(e){t((0,P.qJ)({instanceID:n,msg:e}))}),(function(){t((0,P.Im)(n))})),o=(0,sn.YO)(8);(0,sn.EN)(o,i),t((0,P.Mc)({ID:o,bucketName:kn,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""})),i.send()}(e)}))}},label:"Download",disabled:0===Te.length,icon:(0,D.jsx)(E._8t,{}),tooltip:"Download Selected"},{action:function(){if(1===Te.length){var e;(e=nt.find((function(e){return Te.includes(e.name)})))&&(Me(e),Ge(!0))}},label:"Share",disabled:1!==Te.length||!rn,icon:(0,D.jsx)(E.aAc,{}),tooltip:"Share Selected File"},{action:function(){if(1===Te.length){var e;(e=nt.find((function(e){return Te.includes(e.name)})))&&(Me(e),Oe(!0))}},label:"Preview",disabled:1!==Te.length||!mn,icon:(0,D.jsx)(E.P99,{}),tooltip:"Preview Selected File"},{action:function(){Q(!0)},label:"Delete",icon:(0,D.jsx)(Pn,{}),disabled:!(0,I.F)(kn,[_.Ft.S3_DELETE_OBJECT])||0===Te.length||!Gn,tooltip:"Delete Selected Files"}];return(0,D.jsxs)(o.Fragment,{children:[We&&ze&&(0,D.jsx)(Dn,{open:We,closeModalAndRefresh:function(){Ge(!1),Me(null)},bucketName:kn,dataObject:{name:ze.name,last_modified:"",version_id:ze.version_id}}),$&&(0,D.jsx)(Ln,{deleteOpen:$,selectedBucket:kn,selectedObjects:Te,closeDeleteModalAndRefresh:function(e){Q(!1),e&&(t((0,F.y1)("Objects deleted successfully.")),Fe([]),t((0,P.MU)(!0)))},versioning:fe}),Ne&&(0,D.jsx)(On,{open:Ne,closeModalAndRefresh:function(){ke(!1)},bucketName:kn}),De&&(0,D.jsx)(Bn,{open:De,bucketName:kn,object:ze,onClosePreview:function(){Oe(!1),Me(null)}}),!!Sn&&(0,D.jsx)(ln,{open:!!Sn,closeModal:function(){Cn(null)},currentItem:(null===(e=Sn.name.split("/"))||void 0===e?void 0:e.pop())||"",bucketName:kn,internalPaths:Nn,actualInfo:{name:Sn.name,last_modified:"",version_id:Sn.version_id,size:Sn.size.toString()}}),(0,D.jsxs)(M.Z,{variant:"full",children:[(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,D.jsx)(z.Z,{className:n.screenTitle,icon:(0,D.jsx)("span",{className:n.listIcon,children:(0,D.jsx)(E.wNb,{})}),title:(0,D.jsx)("span",{className:n.titleSpacer,children:kn}),subTitle:(0,D.jsx)(o.Fragment,{children:(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,D.jsxs)("span",{className:n.detailsSpacer,children:["Created:\xa0\xa0\xa0",(0,D.jsx)("strong",{children:(null===U||void 0===U?void 0:U.creation_date)||""})]}),(0,D.jsxs)("span",{className:n.detailsSpacer,children:["Access:\xa0\xa0\xa0",(0,D.jsx)("strong",{children:(null===U||void 0===U?void 0:U.access)||""})]}),U&&(0,D.jsx)(o.Fragment,{children:(0,D.jsxs)("span",{className:n.detailsSpacer,children:[U.size&&(0,D.jsx)(o.Fragment,{children:(0,Z.l5)(U.size)}),U.size&&gn&&(0,D.jsxs)(o.Fragment,{children:[" / ",(0,Z.l5)(gn.quota)]}),U.size&&U.objects?" - ":"",U.objects&&(0,D.jsxs)(o.Fragment,{children:[U.objects,"\xa0Object",U.objects&&1!==U.objects?"s":""]})]})})]})}),actions:(0,D.jsx)(o.Fragment,{children:(0,D.jsxs)("div",{className:n.actionsSection,children:[(0,D.jsx)(L.Z,{id:"rewind-objects-list",tooltip:"Rewind Bucket",text:"Rewind",icon:(0,D.jsx)(y.Z,{badgeContent:" ",color:"secondary",variant:"dot",invisible:!l,className:n.badgeOverlap,sx:{height:16},children:(0,D.jsx)(Tn,{style:{minWidth:16,minHeight:16,width:16,height:16}})}),color:"primary",variant:"outlined",onClick:function(){ke(!0)},disabled:!fe||!(0,I.F)(kn,[_.Ft.S3_GET_OBJECT])}),(0,D.jsx)(L.Z,{id:"refresh-objects-list",tooltip:"Reload List",text:"Refresh",icon:(0,D.jsx)(Fn,{}),color:"primary",variant:"outlined",onClick:function(){t(p?(0,P.Eq)(!0):(0,P.MU)(!0))},disabled:!(0,I.F)(kn,[_.Ft.S3_LIST_BUCKET])||l}),(0,D.jsx)("input",{type:"file",multiple:!0,onChange:Vn,style:{display:"none"},ref:En}),(0,D.jsx)("input",{type:"file",multiple:!0,onChange:Vn,style:{display:"none"},ref:Wn}),(0,D.jsx)(H,{bucketName:kn,uploadPath:st.join("/"),uploadFileFunction:function(e){En&&En.current&&En.current.click(),e()},uploadFolderFunction:function(e){Wn&&Wn.current&&Wn.current.click(),e()}})]})})})}),(0,D.jsxs)("div",(0,i.Z)((0,i.Z)({id:"object-list-wrapper"},qn({style:(0,i.Z)({},et)})),{},{children:[(0,D.jsx)("input",(0,i.Z)({},Xn())),(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.tableBlock,sx:{border:"#EAEDEE 1px solid",borderTop:0},children:[p?(0,D.jsx)(o.Fragment,{children:null!==k&&(0,D.jsx)(In,{internalPaths:k,bucketName:kn})}):(0,D.jsx)(I.s,{scopes:[_.Ft.S3_LIST_BUCKET],resource:kn,errorProps:{disabled:!0},children:(0,D.jsxs)(u.ZP,{item:!0,xs:12,className:n.fullContainer,children:[(0,D.jsx)(u.ZP,{item:!0,xs:12,className:n.breadcrumbsContainer,children:(0,D.jsx)(B,{bucketName:kn,internalPaths:tt,existingFiles:J||[],additionalOptions:!fe||l?null:(0,D.jsx)("div",{children:(0,D.jsx)(wn.Z,{name:"deleted_objects",id:"showDeletedObjects",value:"deleted_on",label:"Show deleted objects",onChange:function(){t((0,P.mz)(!C)),rt(!0)},checked:C,overrideLabelClasses:n.labelStyle,className:n.overrideShowDeleted,noTopMargin:!0})}),hidePathButton:!1})}),(0,D.jsx)(j.Z,{itemActions:ct,columns:l?vn:xn,isLoading:T,loadingMessage:se,entityName:"Objects",idField:"name",records:at,customPaperHeight:"".concat(n.browsePaper," ").concat(N?"actionsPanelOpen":""),selectedItems:Te,onSelect:function(e){var n=e.target,i=n.value,o=n.checked,a=(0,x.Z)(Te);return o?a.push(i):a=a.filter((function(e){return e!==i})),Fe(a),t((0,P.EE)(null)),a},customEmptyMessage:"This location is empty".concat(l?"":", please try uploading a new file"),sortConfig:{currentSort:Xe,currentDirection:Ke,triggerSort:function(e){var n=m()(e,"sortDirection","DESC");$e(e.sortBy),Je(n),t((0,P.MU)(!0))}},onSelectAll:function(){if(t((0,P.EE)(null)),Te.length!==at.length){var e=at.map((function(e){return e.name}));Fe(e)}else Fe([])},rowStyle:function(e){var n,t=e.index;return null!==(n=at[t])&&void 0!==n&&n.delete_flag?"deleted":""},parentClassName:n.parentWrapper})]})}),(0,D.jsx)(I.s,{scopes:[_.Ft.S3_LIST_BUCKET],resource:kn,errorProps:{disabled:!0},children:(0,D.jsxs)(V,{open:N,closePanel:function(){rt(!1)},className:"".concat(p?n.hideListOnSmall:""),children:[Te.length>0&&(0,D.jsx)(Ee,{items:lt,title:"Selected Objects:"}),null!==k&&(0,D.jsx)(un,{internalPaths:k,bucketName:kn,onClosePanel:rt,versioning:fe,locking:we})]})})]})]}))]})]})},Gn=t(32291),Hn=t(95792),Vn=t(84669),Kn=t(59114),Jn=t(46078),Yn=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)({},(0,p.Bz)(e.spacing(4))))}))((function(){var e=(0,f.TL)(),n=(0,s.s0)(),t=(0,s.UO)(),i=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),r=(0,a.v9)((function(e){return e.objectBrowser.searchObjects})),c=(0,a.v9)((function(e){return e.objectBrowser.versionedFile})),h=(0,a.v9)((function(e){return e.objectBrowser.searchVersions})),p=(0,a.v9)(Jn.$4),x=t.bucketName||"",v=m()(t,"subpaths",""),b=!(null===p||void 0===p||!p.includes("object-browser-only"));(0,o.useEffect)((function(){e((0,P.db)({status:!1}))}),[v,e]);var g=(0,D.jsx)(o.Fragment,{children:i?(0,D.jsx)(o.Fragment,{children:(0,D.jsx)(Kn.Z,{placeholder:"Start typing to filter versions of ".concat(c),onChange:function(n){e((0,P.Pr)(n))},value:h})}):(0,D.jsx)(I.s,{scopes:[_.Ft.S3_LIST_BUCKET],resource:x,errorProps:{disabled:!0},children:(0,D.jsx)(Kn.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:function(n){e((0,P.G4)(n))},value:r})})});return(0,D.jsxs)(o.Fragment,{children:[b?(0,D.jsxs)(u.ZP,{container:!0,sx:{padding:"20px 32px 0"},children:[(0,D.jsx)(u.ZP,{children:(0,D.jsx)(E.BHR,{style:{width:105,marginRight:30,marginTop:10}})}),(0,D.jsx)(u.ZP,{item:!0,xs:!0,children:g})]}):(0,D.jsx)(Gn.Z,{label:(0,D.jsx)(Vn.Z,{label:"Buckets",to:_.gA.BUCKETS}),actions:(0,D.jsx)(I.s,{scopes:_.D[_.EI.BUCKET_ADMIN],resource:x,errorProps:{disabled:!0},children:(0,D.jsx)(l.Z,{title:"Configure Bucket",children:(0,D.jsx)(d.Z,{color:"primary","aria-label":"Configure Bucket",component:"span",onClick:function(){n("/buckets/".concat(x,"/admin"))},size:"large",children:(0,D.jsx)(Hn.Z,{})})})}),middleComponent:g}),(0,D.jsx)(u.ZP,{children:(0,D.jsx)(Wn,{})})]})}))},34433:function(e,n,t){t.r(n),t.d(n,{default:function(){return T}});var i=t(29439),o=t(1413),a=t(72791),s=t(26181),r=t.n(s),c=t(60364),l=t(11135),d=t(25787),u=t(78029),h=t.n(u),m=t(61889),f=t(40986),p=t(23814),x=t(81207),v=t(56028),b=t(64163),g=t(30829),j=t(72426),Z=t.n(j),w=t(21435),y=t(15900),S=t(80184),C=(0,d.Z)((function(e){return(0,l.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},p.YI),p.Hr),{},{labelContainer:{display:"flex",alignItems:"center",marginBottom:15},fieldContainer:(0,o.Z)((0,o.Z)({},p.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),dateInputContainer:{margin:"0 10px"},durationInputs:{display:"flex",alignItems:"center",justifyContent:"flex-start"},validityIndicator:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginTop:25,marginLeft:10},invalidDurationText:{marginTop:15,display:"flex",color:"red",fontSize:11},reverseInput:{flexFlow:"row-reverse","& > label":{fontWeight:400,marginLeft:15,marginRight:25}},validityText:{fontSize:14,marginTop:15,display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{flexFlow:"column"},"& > .min-icon":{color:"#5E5E5E",width:15,height:15,marginRight:10}},validTill:{fontWeight:"bold",marginLeft:15}}))}))((function(e){var n=e.classes,t=e.id,o=e.initialDate,s=e.label,r=e.maxDays,c=e.entity,l=e.onChange,d=(0,a.useState)(7),u=(0,i.Z)(d,2),h=u[0],f=u[1],p=(0,a.useState)(0),x=(0,i.Z)(p,2),v=x[0],b=x[1],j=(0,a.useState)(0),C=(0,i.Z)(j,2),N=C[0],k=C[1],E=(0,a.useState)(!0),I=(0,i.Z)(E,2),_=I[0],T=I[1],F=(0,a.useState)(Z()()),P=(0,i.Z)(F,2),L=P[0],D=P[1];(0,a.useEffect)((function(){D(function(e,n,t,i){return Z()(e).add(n,"days").add(t,"hours").add(i,"minutes")}(o,h,v,N))}),[o,h,v,N]),(0,a.useEffect)((function(){_?l(L.format("YYYY-MM-DDTHH:mm:ss"),!0):l("0000-00-00",!1)}),[L,l,_]),(0,a.useEffect)((function(){var e=!0;(h<0||r&&h>r||isNaN(h))&&(e=!1),(v<0||v>23||isNaN(v))&&(e=!1),(N<0||N>59||isNaN(N))&&(e=!1),!r||h!==r||0===v&&0===N||(e=!1),T(e)}),[L,r,l,h,v,N]);var O={style:{textAlign:"center",paddingRight:10,paddingLeft:10,width:25},className:"removeArrows"};return(0,S.jsx)(a.Fragment,{children:(0,S.jsxs)(m.ZP,{container:!0,className:n.fieldContainer,children:[(0,S.jsx)(m.ZP,{item:!0,xs:12,className:n.labelContainer,children:(0,S.jsx)(g.Z,{htmlFor:t,className:n.inputLabel,sx:{marginLeft:"10px"},children:(0,S.jsx)("span",{children:s})})}),(0,S.jsxs)(m.ZP,{item:!0,xs:12,className:n.durationInputs,children:[(0,S.jsx)(m.ZP,{item:!0,className:n.dateInputContainer,children:(0,S.jsx)(w.Z,{id:t,className:n.reverseInput,type:"number",min:"0",max:r?r.toString():"999",label:"Days",name:t,onChange:function(e){f(parseInt(e.target.value))},value:h.toString(),extraInputProps:O,noLabelMinWidth:!0})}),(0,S.jsx)(m.ZP,{item:!0,className:n.dateInputContainer,children:(0,S.jsx)(w.Z,{id:t,className:n.reverseInput,type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:function(e){b(parseInt(e.target.value))},value:v.toString(),extraInputProps:O,noLabelMinWidth:!0})}),(0,S.jsx)(m.ZP,{item:!0,className:n.dateInputContainer,children:(0,S.jsx)(w.Z,{id:t,className:n.reverseInput,type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:function(e){k(parseInt(e.target.value))},value:N.toString(),extraInputProps:O,noLabelMinWidth:!0})})]}),(0,S.jsx)(m.ZP,{item:!0,xs:12,className:"".concat(n.validityIndicator," ").concat(n.formFieldRow),children:_?(0,S.jsxs)("div",{className:n.validityText,children:[(0,S.jsx)(y.xPt,{}),(0,S.jsxs)("div",{className:n.validityLabel,children:[c," will be available until:"]})," ",(0,S.jsx)("div",{className:n.validTill,children:L.format("MM/DD/YYYY HH:mm:ss")})]}):(0,S.jsx)("div",{className:n.invalidDurationText,children:"Please select a valid duration."})})]})})})),N=t(45248),k=t(85531),E=t(87995),I=t(81551),_=a.lazy((function(){return Promise.resolve().then(t.bind(t,79880))})),T=(0,d.Z)((function(e){return(0,l.Z)((0,o.Z)((0,o.Z)({shareLinkInfo:{fontSize:14,fontWeight:400},copyShareLink:{display:"flex","@media (max-width: 900px)":{flexFlow:"column",alignItems:"center",justifyContent:"center"}},copyShareLinkInput:{"& div:first-child":{marginTop:0},"@media (max-width: 900px)":{minWidth:250}},copyShareLinkBtn:{display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{marginTop:10}}},p.ID),p.DF))}))((function(e){var n=e.classes,t=e.open,o=e.closeModalAndRefresh,s=e.bucketName,l=e.dataObject,d=(0,I.TL)(),u=(0,c.v9)(E.N5),p=(0,a.useState)(""),g=(0,i.Z)(p,2),j=g[0],Z=g[1],w=(0,a.useState)(!0),T=(0,i.Z)(w,2),F=T[0],P=T[1],L=(0,a.useState)(!1),D=(0,i.Z)(L,2),O=D[0],B=D[1],R=(0,a.useState)(""),z=(0,i.Z)(R,2),M=z[0],A=z[1],U=(0,a.useState)(!0),W=(0,i.Z)(U,2),G=W[0],H=W[1],V=(0,a.useState)("null"),K=(0,i.Z)(V,2),J=K[0],Y=K[1],q=new Date;return(0,a.useEffect)((function(){if(void 0===l.version_id)return u?(x.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects?prefix=").concat((0,N.LL)(l.name)).concat(u?"&with_versions=true":"")).then((function(e){var n=r()(e,"objects",[]).find((function(e){return e.is_latest}));Y(n?n.version_id:"null")})).catch((function(e){d((0,E.zb)(e))})),void P(!1)):(Y("null"),void P(!1));Y(l.version_id||"null"),P(!1)}),[s,l,u,d]),(0,a.useEffect)((function(){if(G&&!F){B(!0),Z("");var e=new Date("".concat(M)),n=new Date,t=Math.ceil((e.getTime()-n.getTime())/1e3);t>0&&x.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects/share?prefix=").concat((0,N.LL)(l.name),"&version_id=").concat(J).concat(""!==M?"&expires=".concat(t,"s"):"")).then((function(e){Z(e),B(!1)})).catch((function(e){d((0,E.zb)(e)),Z(""),B(!1)}))}}),[l,M,s,G,Z,d,u,F,J]),(0,S.jsx)(a.Fragment,{children:(0,S.jsxs)(v.Z,{title:"Share File",titleIcon:(0,S.jsx)(y.aAc,{style:{fill:"#4CCB92"}}),modalOpen:t,onClose:function(){o()},children:[F&&(0,S.jsx)(m.ZP,{item:!0,xs:12,children:(0,S.jsx)(f.Z,{})}),!F&&(0,S.jsxs)(a.Fragment,{children:[(0,S.jsxs)(m.ZP,{item:!0,xs:12,className:n.shareLinkInfo,children:["This is a temporary URL with integrated access credentials for sharing objects valid for up to 7 days.",(0,S.jsx)("br",{}),(0,S.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,S.jsx)("br",{}),(0,S.jsx)(m.ZP,{item:!0,xs:12,className:n.dateContainer,children:(0,S.jsx)(C,{initialDate:q,id:"date",label:"Active for",maxDays:7,onChange:function(e,n){H(n),n?A(e):(A(""),Z(""))},entity:"Link"})}),(0,S.jsx)(m.ZP,{item:!0,xs:12,className:"".concat(n.copyShareLink," ").concat(n.formFieldRow," "),children:(0,S.jsx)(m.ZP,{item:!0,xs:12,className:n.copyShareLinkInput,children:(0,S.jsx)(b.Z,{content:j,actionButton:(0,S.jsx)(h(),{text:j,children:(0,S.jsx)(k.Z,{variant:"outlined",onClick:function(){d((0,E.MK)("Share URL Copied to clipboard"))},disabled:""===j||O,sx:{marginRight:"5px",width:"28px",height:"28px",padding:"0px"},children:(0,S.jsx)(_,{})})})})})})]})]})})}))},78562:function(e,n,t){t.r(n),t.d(n,{default:function(){return v}});var i=t(72791),o=t(56028),a=t(4942),s=t(29439),r=t(11135),c=t(25787),l=t(61889),d=t(40986),u=t(47922),h=t(45248),m=t(28182),f=t(80184),p=(0,c.Z)((function(){return(0,r.Z)({iframeContainer:{border:"0px",flex:"1 1 auto",width:"100%",height:250,backgroundColor:"transparent",borderRadius:5,"&.image":{height:500},"&.text":{height:700},"&.audio":{height:150},"&.video":{height:350},"&.fullHeight":{height:"calc(100vh - 185px)"}},iframeBase:{backgroundColor:"#fff"},iframeHidden:{display:"none"}})}))((function(e){var n=e.bucketName,t=e.object,o=e.isFullscreen,r=void 0!==o&&o,c=e.classes,p=(0,i.useState)(!0),x=(0,s.Z)(p,2),v=x[0],b=x[1],g="";if(t){var j=(0,h.LL)(t.name),Z=document.baseURI.replace(window.location.origin,"");g="".concat(window.location.origin).concat(Z,"api/v1/buckets/").concat(n,"/objects/download?preview=true&prefix=").concat(j),t.version_id&&(g=g.concat("&version_id=".concat(t.version_id)))}var w=(0,u.Bg)((null===t||void 0===t?void 0:t.name)||""),y=function(){b(!1)};return(0,f.jsxs)(i.Fragment,{children:[v&&(0,f.jsx)(l.ZP,{item:!0,xs:12,children:(0,f.jsx)(d.Z,{})}),(0,f.jsxs)("div",{style:{textAlign:"center"},children:["video"===w&&(0,f.jsx)("video",{style:{width:"auto",height:"auto",maxWidth:"calc(100vw - 100px)",maxHeight:"calc(100vh - 200px)"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:y,children:(0,f.jsx)("source",{src:g,type:"video/mp4"})}),"audio"===w&&(0,f.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:y,children:(0,f.jsx)("source",{src:g,type:"audio/mpeg"})}),"image"===w&&(0,f.jsx)("img",{style:{width:"auto",height:"auto",maxWidth:"100vw",maxHeight:"100vh"},src:g,alt:"preview",onLoad:y}),"video"!==w&&"audio"!==w&&"image"!==w&&(0,f.jsx)("div",{className:(0,m.Z)(c.iframeBase,(0,a.Z)({},c.iframeHidden,v)),children:(0,f.jsx)("iframe",{src:g,title:"File Preview",allowTransparency:!0,className:"".concat(c.iframeContainer," ").concat(r?"fullHeight":w),onLoad:y,children:"File couldn't be loaded. Please try Download instead"})})]})]})})),x=t(15900),v=function(e){var n=e.open,t=e.bucketName,a=e.object,s=e.onClosePreview;return(0,f.jsx)(i.Fragment,{children:(0,f.jsx)(o.Z,{modalOpen:n,title:"Preview - ".concat(null===a||void 0===a?void 0:a.name),onClose:s,wideLimit:!1,titleIcon:(0,f.jsx)(x.$30,{}),children:(0,f.jsx)(p,{bucketName:t,object:a})})})}},47922:function(e,n,t){t.d(n,{Bg:function(){return a},LR:function(){return o},P_:function(){return s},kh:function(){return r}});var i=t(45248),o=function(e,n,t,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,s=arguments.length>5?arguments[5]:void 0,r=arguments.length>6?arguments[6]:void 0,c=arguments.length>7?arguments[7]:void 0,l=arguments.length>8?arguments[8]:void 0,d=document.createElement("a");document.body.appendChild(d);var u="/api/v1/buckets/".concat(e,"/objects/download?prefix=").concat(n).concat(null!==a&&""!==a.trim()?"&override_file_name=".concat((0,i.LL)(a||"")):"");t&&(u=u.concat("&version_id=".concat(t)));var h=new XMLHttpRequest;return h.open("GET",u,!0),h.addEventListener("progress",(function(e){var n=Math.round(e.loaded/o*100);s&&s(n)}),!1),h.responseType="blob",h.onreadystatechange=function(){if(4===h.readyState)if(200===h.status){var e=h.getResponseHeader("Content-Disposition"),n="download";if(e)n=decodeURIComponent(e).split('"')[1];r&&r();var t=document.createElement("a");t.href=window.URL.createObjectURL(h.response),t.download=n,document.body.appendChild(t),t.click(),document.body.removeChild(t)}else{if("application/json"===h.getResponseHeader("Content-Type")){var i=JSON.parse(h.response);if(i.detailedMessage)return void c(i.detailedMessage)}c("Unexpected response status code (".concat(h.status,")."))}},h.onerror=function(){c&&c("A network error occurred.")},h.onabort=function(){l&&l()},h},a=function(e){var n=e.split(".").pop();return n?(n=n.toLowerCase(),["jif","jfif","apng","avif","svg","webp","bmp","ico","jpg","jpe","jpeg","gif","png","heic"].includes(n)?"image":["pdf","txt","json"].includes(n)?"text":["wav","mp3","alac","aiff","dsd","pcm"].includes(n)?"audio":["mp4","avi","mpg","webm","mov","flv","mkv","wmv","avchd","mpeg-4"].includes(n)?"video":"none"):"none"},s=function(e){switch(e){case"name":return function(e,n){return e.name.localeCompare(n.name)};case"last_modified":return function(e,n){return new Date(e.last_modified).getTime()-new Date(n.last_modified).getTime()};case"size":return function(e,n){return(e.size||-1)-(n.size||-1)}}},r=function(e,n,t){if(0===t.length)return null;var i=t.filter((function(n){return n.resource.endsWith(":".concat(e))||n.resource.includes(":".concat(e,"/"))}));if(0===i.length)return null;var o=[],a=n.split("/");return i.forEach((function(e){var n=(e.resource.split(":").pop()||"").split("/");n.length>1&&n.every((function(e,n){return"*"!==e&&((!a[n]||a[n]===e)&&(a[n]||o.push({name:"".concat(e,"/"),size:0,last_modified:new Date,version_id:""}),!0))})),"StringEquals"!==e.conditionOperator&&"StringLike"!==e.conditionOperator||e.prefixes.forEach((function(e){if(""!==e){var n=e.split("/"),t=[];n.every((function(e,n){return!e.includes("*")&&""!==e&&(e!==a[n]?(o.push({name:"".concat(t.join("/")).concat(t.length>0?"/":"").concat(e,"/"),size:0,last_modified:new Date,version_id:""}),!1):(""!==e&&t.push(e),!0))}))}}))})),o}},75578:function(e,n,t){var i=t(1413),o=t(72791),a=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,a.jsx)(o.Suspense,{fallback:n,children:(0,a.jsx)(e,(0,i.Z)({},t))})}return t}},64163:function(e,n,t){var i=t(1413),o=t(72791),a=t(61889),s=t(11135),r=t(25787),c=t(23814),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({},c.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,s=e.content,r=e.multiLine,c=void 0!==r&&r,d=e.actionButton;return(0,l.jsx)(o.Fragment,{children:(0,l.jsxs)(a.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,l.jsx)(a.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,l.jsxs)(a.ZP,{item:!0,xs:12,className:"".concat(n.predefinedList," ").concat(d?n.includesActionButton:""),children:[(0,l.jsx)(a.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:s}),d&&(0,l.jsx)("div",{className:n.overlayShareOption,children:d})]})]})})}))},56028:function(e,n,t){var i=t(29439),o=t(1413),a=t(72791),s=t(60364),r=t(13400),c=t(55646),l=t(5574),d=t(65661),u=t(39157),h=t(11135),m=t(25787),f=t(23814),p=t(81551),x=t(29823),v=t(28057),b=t(87995),g=t(80184);n.Z=(0,m.Z)((function(e){return(0,h.Z)((0,o.Z)((0,o.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,h=e.title,m=e.children,f=e.classes,j=e.wideLimit,Z=void 0===j||j,w=e.noContentPadding,y=e.titleIcon,S=void 0===y?null:y,C=(0,p.TL)(),N=(0,a.useState)(!1),k=(0,i.Z)(N,2),E=k[0],I=k[1],_=(0,s.v9)((function(e){return e.system.modalSnackBar}));(0,a.useEffect)((function(){C((0,b.MK)(""))}),[C]),(0,a.useEffect)((function(){if(_){if(""===_.message)return void I(!1);"error"!==_.type&&I(!0)}}),[_]);var T=Z?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},F="";return _&&(F=_.detailedErrorMsg,(""===_.detailedErrorMsg||_.detailedErrorMsg.length<5)&&(F=_.message)),(0,g.jsxs)(l.Z,(0,o.Z)((0,o.Z)({open:t,classes:f},T),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:f.root,children:[(0,g.jsxs)(d.Z,{className:f.title,children:[(0,g.jsxs)("div",{className:f.titleText,children:[S," ",h]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(r.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(x.Z,{})})})]}),(0,g.jsx)(v.Z,{isModal:!0}),(0,g.jsx)(c.Z,{open:E,className:f.snackBarModal,onClose:function(){I(!1),C((0,b.MK)(""))},message:F,ContentProps:{className:"".concat(f.snackBar," ").concat(_&&"error"===_.type?f.errorSnackBar:"")},autoHideDuration:_&&"error"===_.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:w?"":f.content,children:m})]}))}))},59114:function(e,n,t){var i=t(4942),o=t(1413),a=(t(72791),t(63466)),s=t(74900),r=t(27391),c=t(25787),l=t(11135),d=t(23814),u=t(80184);n.Z=(0,c.Z)((function(e){return(0,l.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,h=e.overrideClass,m=e.value,f=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(a.Z,{position:d,className:o.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(r.Z,{placeholder:t,className:h||o.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){c(e.target.value)},variant:"standard",value:m})}))},76610:function(e,n,t){t.d(n,{EN:function(){return o},Gy:function(){return a},YO:function(){return s}});var i={},o=function(e,n){i[e]=n},a=function(e){return i[e]},s=function(e){for(var n="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=t.length,o=0;o .\n\nimport React, { Fragment, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport Grid from \"@mui/material/Grid\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { Button, IconButton, Tooltip } from \"@mui/material\";\nimport { objectBrowserCommon } from \"../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { BackCaretIcon, CopyIcon, NewPathIcon } from \"../../../icons\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../common/SecureComponent/permissions\";\nimport { BucketObjectItem } from \"../Buckets/ListBuckets/Objects/ListObjects/types\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setVersionsModeEnabled } from \"./objectBrowserSlice\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst CreatePathModal = withSuspense(\n React.lazy(\n () => import(\"../Buckets/ListBuckets/Objects/ListObjects/CreatePathModal\")\n )\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...objectBrowserCommon,\n slashSpacingStyle: {\n margin: \"0 5px\",\n },\n });\n\ninterface IObjectBrowser {\n classes: any;\n bucketName: string;\n internalPaths: string;\n hidePathButton?: boolean;\n existingFiles: BucketObjectItem[];\n additionalOptions?: React.ReactNode;\n}\n\nconst BrowserBreadcrumbs = ({\n classes,\n bucketName,\n internalPaths,\n existingFiles,\n hidePathButton,\n additionalOptions,\n}: IObjectBrowser) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled\n );\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode\n );\n const versionedFile = useSelector(\n (state: AppState) => state.objectBrowser.versionedFile\n );\n\n const [createFolderOpen, setCreateFolderOpen] = useState(false);\n\n let paths = internalPaths;\n\n if (internalPaths !== \"\") {\n paths = `/${internalPaths}`;\n }\n\n const splitPaths = paths.split(\"/\").filter((path) => path !== \"\");\n const lastBreadcrumbsIndex = splitPaths.length - 1;\n\n let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = `${splitPaths.slice(0, index + 1).join(\"/\")}/`;\n const route = `/buckets/${bucketName}/browse/${\n subSplit ? `${encodeURLString(subSplit)}` : ``\n }`;\n\n if (index === lastBreadcrumbsIndex && objectItem === versionedFile) {\n return null;\n }\n\n return (\n