diff --git a/CHANGELOG.md b/CHANGELOG.md index 42c09f616..3fbadb6b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ # Changelog +## Release v0.42.0 + +Features: + +- Introducing Dark Mode + +Bug Fix: + +- Fixed vulnerabilities +- Changes on Upload and Delete object urls +- Fixed blocking subpath creation if not enough permissions +- Removed share object option at prefix level +- Updated allowed actions for a deleted object + ## Release v0.41.0 Features: @@ -9,7 +23,6 @@ Features: - Updated pages to use mds components - support for resolving IPv4/IPv6 - Bug Fix: - Remove cache for ClientIP @@ -23,7 +36,6 @@ Features: - Updated OpenID page - Added New bucket event types support - Bug Fix: - Fixed crash in access keys page @@ -37,7 +49,6 @@ Features: - Migrated metrics page to mds - Migrated Register page to mds - Bug Fix: - Fixed LDAP configuration page issues diff --git a/portal-ui/build/asset-manifest.json b/portal-ui/build/asset-manifest.json index c9722fcbf..1a4a828ab 100644 --- a/portal-ui/build/asset-manifest.json +++ b/portal-ui/build/asset-manifest.json @@ -1,103 +1,102 @@ { "files": { "main.css": "./static/css/main.e60e4760.css", - "main.js": "./static/js/main.4a881f62.js", - "static/js/1260.1bfa3ef3.chunk.js": "./static/js/1260.1bfa3ef3.chunk.js", - "static/js/6914.4cdcdbac.chunk.js": "./static/js/6914.4cdcdbac.chunk.js", - "static/js/9121.99feaddd.chunk.js": "./static/js/9121.99feaddd.chunk.js", - "static/js/1829.bb99f80d.chunk.js": "./static/js/1829.bb99f80d.chunk.js", - "static/js/6272.1dc1f3f1.chunk.js": "./static/js/6272.1dc1f3f1.chunk.js", - "static/js/5088.b53be05e.chunk.js": "./static/js/5088.b53be05e.chunk.js", - "static/js/6122.c29df041.chunk.js": "./static/js/6122.c29df041.chunk.js", - "static/js/808.ab7d4067.chunk.js": "./static/js/808.ab7d4067.chunk.js", - "static/js/8060.a5309a8c.chunk.js": "./static/js/8060.a5309a8c.chunk.js", - "static/js/9635.495d0211.chunk.js": "./static/js/9635.495d0211.chunk.js", - "static/js/2338.7e05398b.chunk.js": "./static/js/2338.7e05398b.chunk.js", - "static/js/4439.25b65874.chunk.js": "./static/js/4439.25b65874.chunk.js", - "static/js/3832.df5c5c44.chunk.js": "./static/js/3832.df5c5c44.chunk.js", - "static/js/7668.497c21fa.chunk.js": "./static/js/7668.497c21fa.chunk.js", - "static/js/2074.1f0d525f.chunk.js": "./static/js/2074.1f0d525f.chunk.js", - "static/js/3067.5b61002d.chunk.js": "./static/js/3067.5b61002d.chunk.js", - "static/js/2637.3410b817.chunk.js": "./static/js/2637.3410b817.chunk.js", - "static/js/5962.a48bdf0f.chunk.js": "./static/js/5962.a48bdf0f.chunk.js", - "static/js/701.f437ee2b.chunk.js": "./static/js/701.f437ee2b.chunk.js", - "static/js/416.35f4384d.chunk.js": "./static/js/416.35f4384d.chunk.js", - "static/js/7821.12244c04.chunk.js": "./static/js/7821.12244c04.chunk.js", - "static/js/2545.b9034e94.chunk.js": "./static/js/2545.b9034e94.chunk.js", - "static/js/8388.6f443220.chunk.js": "./static/js/8388.6f443220.chunk.js", - "static/js/4065.0d93bddc.chunk.js": "./static/js/4065.0d93bddc.chunk.js", - "static/js/5935.9a86ce62.chunk.js": "./static/js/5935.9a86ce62.chunk.js", - "static/js/4563.c7493096.chunk.js": "./static/js/4563.c7493096.chunk.js", - "static/js/191.d24fde8f.chunk.js": "./static/js/191.d24fde8f.chunk.js", - "static/js/1329.df839007.chunk.js": "./static/js/1329.df839007.chunk.js", - "static/js/7614.d747c8a5.chunk.js": "./static/js/7614.d747c8a5.chunk.js", - "static/js/1690.48a846c2.chunk.js": "./static/js/1690.48a846c2.chunk.js", - "static/js/6491.50e302e9.chunk.js": "./static/js/6491.50e302e9.chunk.js", - "static/js/4902.29338457.chunk.js": "./static/js/4902.29338457.chunk.js", - "static/js/1432.1b192c18.chunk.js": "./static/js/1432.1b192c18.chunk.js", - "static/js/3171.3ea2b377.chunk.js": "./static/js/3171.3ea2b377.chunk.js", - "static/js/8360.8ac053e0.chunk.js": "./static/js/8360.8ac053e0.chunk.js", - "static/js/6577.fa755089.chunk.js": "./static/js/6577.fa755089.chunk.js", - "static/js/3875.1266ad37.chunk.js": "./static/js/3875.1266ad37.chunk.js", - "static/js/3115.bf4040fb.chunk.js": "./static/js/3115.bf4040fb.chunk.js", - "static/js/2603.e6ac8963.chunk.js": "./static/js/2603.e6ac8963.chunk.js", - "static/js/977.92e54eab.chunk.js": "./static/js/977.92e54eab.chunk.js", - "static/js/6686.50107964.chunk.js": "./static/js/6686.50107964.chunk.js", - "static/js/9059.bfb04f0e.chunk.js": "./static/js/9059.bfb04f0e.chunk.js", - "static/js/4770.08d9efec.chunk.js": "./static/js/4770.08d9efec.chunk.js", - "static/js/6247.ecc0982e.chunk.js": "./static/js/6247.ecc0982e.chunk.js", - "static/js/4414.4553a541.chunk.js": "./static/js/4414.4553a541.chunk.js", - "static/js/8833.dd546f51.chunk.js": "./static/js/8833.dd546f51.chunk.js", - "static/js/1516.75dc9a97.chunk.js": "./static/js/1516.75dc9a97.chunk.js", - "static/js/483.8c83b198.chunk.js": "./static/js/483.8c83b198.chunk.js", - "static/js/9467.0e6dd103.chunk.js": "./static/js/9467.0e6dd103.chunk.js", - "static/js/6895.ab51144b.chunk.js": "./static/js/6895.ab51144b.chunk.js", - "static/js/4874.5e5b3042.chunk.js": "./static/js/4874.5e5b3042.chunk.js", - "static/js/1191.1f6c42ce.chunk.js": "./static/js/1191.1f6c42ce.chunk.js", - "static/js/3956.3d92ba64.chunk.js": "./static/js/3956.3d92ba64.chunk.js", - "static/js/9221.5b85a40b.chunk.js": "./static/js/9221.5b85a40b.chunk.js", - "static/js/8896.dbf5cc38.chunk.js": "./static/js/8896.dbf5cc38.chunk.js", - "static/js/9134.63488b77.chunk.js": "./static/js/9134.63488b77.chunk.js", - "static/js/5223.fbb147c5.chunk.js": "./static/js/5223.fbb147c5.chunk.js", - "static/js/5661.89c92240.chunk.js": "./static/js/5661.89c92240.chunk.js", - "static/js/7134.22af3be8.chunk.js": "./static/js/7134.22af3be8.chunk.js", - "static/js/3034.7295026b.chunk.js": "./static/js/3034.7295026b.chunk.js", - "static/js/3138.caecfaad.chunk.js": "./static/js/3138.caecfaad.chunk.js", - "static/js/711.bc7ee5ed.chunk.js": "./static/js/711.bc7ee5ed.chunk.js", - "static/js/8850.18268ff7.chunk.js": "./static/js/8850.18268ff7.chunk.js", - "static/js/2185.47993549.chunk.js": "./static/js/2185.47993549.chunk.js", - "static/js/9968.c45ff8f4.chunk.js": "./static/js/9968.c45ff8f4.chunk.js", - "static/js/7494.8d3127b2.chunk.js": "./static/js/7494.8d3127b2.chunk.js", - "static/js/4738.f09817d5.chunk.js": "./static/js/4738.f09817d5.chunk.js", - "static/js/3989.456ae7ca.chunk.js": "./static/js/3989.456ae7ca.chunk.js", - "static/js/5702.719f144e.chunk.js": "./static/js/5702.719f144e.chunk.js", - "static/js/5759.c9d43b13.chunk.js": "./static/js/5759.c9d43b13.chunk.js", - "static/js/51.21f079a0.chunk.js": "./static/js/51.21f079a0.chunk.js", - "static/js/312.a4a9011b.chunk.js": "./static/js/312.a4a9011b.chunk.js", - "static/js/2032.64ae0f99.chunk.js": "./static/js/2032.64ae0f99.chunk.js", - "static/js/4619.ac23bc25.chunk.js": "./static/js/4619.ac23bc25.chunk.js", - "static/js/8990.58d88bc9.chunk.js": "./static/js/8990.58d88bc9.chunk.js", - "static/js/8455.6e72f5ad.chunk.js": "./static/js/8455.6e72f5ad.chunk.js", - "static/js/3690.848bebec.chunk.js": "./static/js/3690.848bebec.chunk.js", - "static/js/1604.7bfdfe29.chunk.js": "./static/js/1604.7bfdfe29.chunk.js", - "static/js/9952.977159a7.chunk.js": "./static/js/9952.977159a7.chunk.js", - "static/js/402.64814df4.chunk.js": "./static/js/402.64814df4.chunk.js", - "static/js/1705.0eb547ff.chunk.js": "./static/js/1705.0eb547ff.chunk.js", - "static/js/1581.2174ac68.chunk.js": "./static/js/1581.2174ac68.chunk.js", - "static/js/455.3a91ee14.chunk.js": "./static/js/455.3a91ee14.chunk.js", - "static/js/8296.f82aeccc.chunk.js": "./static/js/8296.f82aeccc.chunk.js", - "static/js/3509.e1e73737.chunk.js": "./static/js/3509.e1e73737.chunk.js", - "static/js/889.52891a95.chunk.js": "./static/js/889.52891a95.chunk.js", - "static/js/9088.b641525f.chunk.js": "./static/js/9088.b641525f.chunk.js", - "static/js/247.69f3daa1.chunk.js": "./static/js/247.69f3daa1.chunk.js", - "static/js/2763.ced3d1e6.chunk.js": "./static/js/2763.ced3d1e6.chunk.js", - "static/js/2977.d858b026.chunk.js": "./static/js/2977.d858b026.chunk.js", - "static/js/2631.e93b9518.chunk.js": "./static/js/2631.e93b9518.chunk.js", - "static/js/601.83f062ee.chunk.js": "./static/js/601.83f062ee.chunk.js", - "static/js/8265.c2eab6fe.chunk.js": "./static/js/8265.c2eab6fe.chunk.js", - "static/js/5061.be51bf34.chunk.js": "./static/js/5061.be51bf34.chunk.js", - "static/js/6521.f929e9dd.chunk.js": "./static/js/6521.f929e9dd.chunk.js", - "static/js/7374.9d2e12d2.chunk.js": "./static/js/7374.9d2e12d2.chunk.js", + "main.js": "./static/js/main.f7f3913c.js", + "static/js/1260.291b50cb.chunk.js": "./static/js/1260.291b50cb.chunk.js", + "static/js/6914.9c5fdb44.chunk.js": "./static/js/6914.9c5fdb44.chunk.js", + "static/js/9121.1e573e4c.chunk.js": "./static/js/9121.1e573e4c.chunk.js", + "static/js/1829.2aaefda6.chunk.js": "./static/js/1829.2aaefda6.chunk.js", + "static/js/6272.7c00db9b.chunk.js": "./static/js/6272.7c00db9b.chunk.js", + "static/js/5088.e2681925.chunk.js": "./static/js/5088.e2681925.chunk.js", + "static/js/6122.5f0c62fb.chunk.js": "./static/js/6122.5f0c62fb.chunk.js", + "static/js/808.db305a8e.chunk.js": "./static/js/808.db305a8e.chunk.js", + "static/js/8060.d2d3cabe.chunk.js": "./static/js/8060.d2d3cabe.chunk.js", + "static/js/9635.d9fa4193.chunk.js": "./static/js/9635.d9fa4193.chunk.js", + "static/js/2338.d41810b3.chunk.js": "./static/js/2338.d41810b3.chunk.js", + "static/js/4439.fab85879.chunk.js": "./static/js/4439.fab85879.chunk.js", + "static/js/3832.03027a58.chunk.js": "./static/js/3832.03027a58.chunk.js", + "static/js/3543.c6901e5b.chunk.js": "./static/js/3543.c6901e5b.chunk.js", + "static/js/2074.a60ce6fb.chunk.js": "./static/js/2074.a60ce6fb.chunk.js", + "static/js/3067.3ea1776d.chunk.js": "./static/js/3067.3ea1776d.chunk.js", + "static/js/2637.b1c2479f.chunk.js": "./static/js/2637.b1c2479f.chunk.js", + "static/js/5962.e82e6096.chunk.js": "./static/js/5962.e82e6096.chunk.js", + "static/js/701.4d3a4a90.chunk.js": "./static/js/701.4d3a4a90.chunk.js", + "static/js/416.3c6ca278.chunk.js": "./static/js/416.3c6ca278.chunk.js", + "static/js/7821.c63e0acc.chunk.js": "./static/js/7821.c63e0acc.chunk.js", + "static/js/2545.508d30a1.chunk.js": "./static/js/2545.508d30a1.chunk.js", + "static/js/8388.25bfdfd9.chunk.js": "./static/js/8388.25bfdfd9.chunk.js", + "static/js/4065.1550985f.chunk.js": "./static/js/4065.1550985f.chunk.js", + "static/js/5935.407e1355.chunk.js": "./static/js/5935.407e1355.chunk.js", + "static/js/4563.e3edf2d9.chunk.js": "./static/js/4563.e3edf2d9.chunk.js", + "static/js/191.1da33595.chunk.js": "./static/js/191.1da33595.chunk.js", + "static/js/1329.b71d618a.chunk.js": "./static/js/1329.b71d618a.chunk.js", + "static/js/7614.0c31f239.chunk.js": "./static/js/7614.0c31f239.chunk.js", + "static/js/1690.8063e908.chunk.js": "./static/js/1690.8063e908.chunk.js", + "static/js/6491.d0d6e818.chunk.js": "./static/js/6491.d0d6e818.chunk.js", + "static/js/4902.5f84da7e.chunk.js": "./static/js/4902.5f84da7e.chunk.js", + "static/js/1432.4da0630f.chunk.js": "./static/js/1432.4da0630f.chunk.js", + "static/js/3171.25ccb4e9.chunk.js": "./static/js/3171.25ccb4e9.chunk.js", + "static/js/8360.56659846.chunk.js": "./static/js/8360.56659846.chunk.js", + "static/js/6577.d820c471.chunk.js": "./static/js/6577.d820c471.chunk.js", + "static/js/3875.458718d4.chunk.js": "./static/js/3875.458718d4.chunk.js", + "static/js/3115.a031bcba.chunk.js": "./static/js/3115.a031bcba.chunk.js", + "static/js/2603.dca1b3d2.chunk.js": "./static/js/2603.dca1b3d2.chunk.js", + "static/js/977.a8d976d8.chunk.js": "./static/js/977.a8d976d8.chunk.js", + "static/js/6686.01ae5612.chunk.js": "./static/js/6686.01ae5612.chunk.js", + "static/js/9059.25ffd18e.chunk.js": "./static/js/9059.25ffd18e.chunk.js", + "static/js/4770.3307793f.chunk.js": "./static/js/4770.3307793f.chunk.js", + "static/js/6247.0d3bc8c3.chunk.js": "./static/js/6247.0d3bc8c3.chunk.js", + "static/js/4414.28a3e046.chunk.js": "./static/js/4414.28a3e046.chunk.js", + "static/js/8833.ee6a6f70.chunk.js": "./static/js/8833.ee6a6f70.chunk.js", + "static/js/1516.73fcb9af.chunk.js": "./static/js/1516.73fcb9af.chunk.js", + "static/js/483.d65ba5d6.chunk.js": "./static/js/483.d65ba5d6.chunk.js", + "static/js/9467.206b0190.chunk.js": "./static/js/9467.206b0190.chunk.js", + "static/js/6895.69a264e5.chunk.js": "./static/js/6895.69a264e5.chunk.js", + "static/js/4874.03b6bb42.chunk.js": "./static/js/4874.03b6bb42.chunk.js", + "static/js/1191.77653544.chunk.js": "./static/js/1191.77653544.chunk.js", + "static/js/3956.338d4453.chunk.js": "./static/js/3956.338d4453.chunk.js", + "static/js/9221.bee84518.chunk.js": "./static/js/9221.bee84518.chunk.js", + "static/js/8896.7b660eaa.chunk.js": "./static/js/8896.7b660eaa.chunk.js", + "static/js/9134.f3e24a40.chunk.js": "./static/js/9134.f3e24a40.chunk.js", + "static/js/5223.cca523cd.chunk.js": "./static/js/5223.cca523cd.chunk.js", + "static/js/5661.ed95de3e.chunk.js": "./static/js/5661.ed95de3e.chunk.js", + "static/js/7134.f87a706a.chunk.js": "./static/js/7134.f87a706a.chunk.js", + "static/js/3034.11907001.chunk.js": "./static/js/3034.11907001.chunk.js", + "static/js/3138.9f03424b.chunk.js": "./static/js/3138.9f03424b.chunk.js", + "static/js/711.e6c691c6.chunk.js": "./static/js/711.e6c691c6.chunk.js", + "static/js/6901.bc8e3c58.chunk.js": "./static/js/6901.bc8e3c58.chunk.js", + "static/js/2185.e19ab290.chunk.js": "./static/js/2185.e19ab290.chunk.js", + "static/js/9968.4439cf2b.chunk.js": "./static/js/9968.4439cf2b.chunk.js", + "static/js/7494.551802e0.chunk.js": "./static/js/7494.551802e0.chunk.js", + "static/js/4738.f0e4dfe6.chunk.js": "./static/js/4738.f0e4dfe6.chunk.js", + "static/js/3989.0cbf2140.chunk.js": "./static/js/3989.0cbf2140.chunk.js", + "static/js/5702.f709e6f4.chunk.js": "./static/js/5702.f709e6f4.chunk.js", + "static/js/5759.d032a48a.chunk.js": "./static/js/5759.d032a48a.chunk.js", + "static/js/51.b53647bd.chunk.js": "./static/js/51.b53647bd.chunk.js", + "static/js/312.0339f1aa.chunk.js": "./static/js/312.0339f1aa.chunk.js", + "static/js/2032.79310ed7.chunk.js": "./static/js/2032.79310ed7.chunk.js", + "static/js/4619.0e7615ad.chunk.js": "./static/js/4619.0e7615ad.chunk.js", + "static/js/8990.013fe7bd.chunk.js": "./static/js/8990.013fe7bd.chunk.js", + "static/js/8455.b092b647.chunk.js": "./static/js/8455.b092b647.chunk.js", + "static/js/3690.7fda5327.chunk.js": "./static/js/3690.7fda5327.chunk.js", + "static/js/1604.da19242e.chunk.js": "./static/js/1604.da19242e.chunk.js", + "static/js/9952.3389689d.chunk.js": "./static/js/9952.3389689d.chunk.js", + "static/js/402.e74bfaf8.chunk.js": "./static/js/402.e74bfaf8.chunk.js", + "static/js/1705.d2123b1a.chunk.js": "./static/js/1705.d2123b1a.chunk.js", + "static/js/1581.74c2c762.chunk.js": "./static/js/1581.74c2c762.chunk.js", + "static/js/455.1d0c7cda.chunk.js": "./static/js/455.1d0c7cda.chunk.js", + "static/js/8296.e55a5bf1.chunk.js": "./static/js/8296.e55a5bf1.chunk.js", + "static/js/3509.3f62cdbf.chunk.js": "./static/js/3509.3f62cdbf.chunk.js", + "static/js/889.035fef88.chunk.js": "./static/js/889.035fef88.chunk.js", + "static/js/9088.3bc2a31e.chunk.js": "./static/js/9088.3bc2a31e.chunk.js", + "static/js/247.39dd8f3a.chunk.js": "./static/js/247.39dd8f3a.chunk.js", + "static/js/2763.ddc89d17.chunk.js": "./static/js/2763.ddc89d17.chunk.js", + "static/js/2977.e75673aa.chunk.js": "./static/js/2977.e75673aa.chunk.js", + "static/js/601.b2adb5c6.chunk.js": "./static/js/601.b2adb5c6.chunk.js", + "static/js/8265.942883a0.chunk.js": "./static/js/8265.942883a0.chunk.js", + "static/js/5061.7ff7c268.chunk.js": "./static/js/5061.7ff7c268.chunk.js", + "static/js/6521.5e62a2df.chunk.js": "./static/js/6521.5e62a2df.chunk.js", + "static/js/4669.8c7d4cb8.chunk.js": "./static/js/4669.8c7d4cb8.chunk.js", "static/media/videoBG.mp4": "./static/media/videoBG.17363418b3c2246a0e27.mp4", "static/media/loginAnimationPoster.png": "./static/media/loginAnimationPoster.9aa924bfe619e71d5d29.png", "static/media/Inter-BoldItalic.woff": "./static/media/Inter-BoldItalic.b376885042f6c961a541.woff", @@ -121,106 +120,105 @@ "static/media/placeholderimage.png": "./static/media/placeholderimage.077ea48bd1ef1f4a883f.png", "index.html": "./index.html", "main.e60e4760.css.map": "./static/css/main.e60e4760.css.map", - "main.4a881f62.js.map": "./static/js/main.4a881f62.js.map", - "1260.1bfa3ef3.chunk.js.map": "./static/js/1260.1bfa3ef3.chunk.js.map", - "6914.4cdcdbac.chunk.js.map": "./static/js/6914.4cdcdbac.chunk.js.map", - "9121.99feaddd.chunk.js.map": "./static/js/9121.99feaddd.chunk.js.map", - "1829.bb99f80d.chunk.js.map": "./static/js/1829.bb99f80d.chunk.js.map", - "6272.1dc1f3f1.chunk.js.map": "./static/js/6272.1dc1f3f1.chunk.js.map", - "5088.b53be05e.chunk.js.map": "./static/js/5088.b53be05e.chunk.js.map", - "6122.c29df041.chunk.js.map": "./static/js/6122.c29df041.chunk.js.map", - "808.ab7d4067.chunk.js.map": "./static/js/808.ab7d4067.chunk.js.map", - "8060.a5309a8c.chunk.js.map": "./static/js/8060.a5309a8c.chunk.js.map", - "9635.495d0211.chunk.js.map": "./static/js/9635.495d0211.chunk.js.map", - "2338.7e05398b.chunk.js.map": "./static/js/2338.7e05398b.chunk.js.map", - "4439.25b65874.chunk.js.map": "./static/js/4439.25b65874.chunk.js.map", - "3832.df5c5c44.chunk.js.map": "./static/js/3832.df5c5c44.chunk.js.map", - "7668.497c21fa.chunk.js.map": "./static/js/7668.497c21fa.chunk.js.map", - "2074.1f0d525f.chunk.js.map": "./static/js/2074.1f0d525f.chunk.js.map", - "3067.5b61002d.chunk.js.map": "./static/js/3067.5b61002d.chunk.js.map", - "2637.3410b817.chunk.js.map": "./static/js/2637.3410b817.chunk.js.map", - "5962.a48bdf0f.chunk.js.map": "./static/js/5962.a48bdf0f.chunk.js.map", - "701.f437ee2b.chunk.js.map": "./static/js/701.f437ee2b.chunk.js.map", - "416.35f4384d.chunk.js.map": "./static/js/416.35f4384d.chunk.js.map", - "7821.12244c04.chunk.js.map": "./static/js/7821.12244c04.chunk.js.map", - "2545.b9034e94.chunk.js.map": "./static/js/2545.b9034e94.chunk.js.map", - "8388.6f443220.chunk.js.map": "./static/js/8388.6f443220.chunk.js.map", - "4065.0d93bddc.chunk.js.map": "./static/js/4065.0d93bddc.chunk.js.map", - "5935.9a86ce62.chunk.js.map": "./static/js/5935.9a86ce62.chunk.js.map", - "4563.c7493096.chunk.js.map": "./static/js/4563.c7493096.chunk.js.map", - "191.d24fde8f.chunk.js.map": "./static/js/191.d24fde8f.chunk.js.map", - "1329.df839007.chunk.js.map": "./static/js/1329.df839007.chunk.js.map", - "7614.d747c8a5.chunk.js.map": "./static/js/7614.d747c8a5.chunk.js.map", - "1690.48a846c2.chunk.js.map": "./static/js/1690.48a846c2.chunk.js.map", - "6491.50e302e9.chunk.js.map": "./static/js/6491.50e302e9.chunk.js.map", - "4902.29338457.chunk.js.map": "./static/js/4902.29338457.chunk.js.map", - "1432.1b192c18.chunk.js.map": "./static/js/1432.1b192c18.chunk.js.map", - "3171.3ea2b377.chunk.js.map": "./static/js/3171.3ea2b377.chunk.js.map", - "8360.8ac053e0.chunk.js.map": "./static/js/8360.8ac053e0.chunk.js.map", - "6577.fa755089.chunk.js.map": "./static/js/6577.fa755089.chunk.js.map", - "3875.1266ad37.chunk.js.map": "./static/js/3875.1266ad37.chunk.js.map", - "3115.bf4040fb.chunk.js.map": "./static/js/3115.bf4040fb.chunk.js.map", - "2603.e6ac8963.chunk.js.map": "./static/js/2603.e6ac8963.chunk.js.map", - "977.92e54eab.chunk.js.map": "./static/js/977.92e54eab.chunk.js.map", - "6686.50107964.chunk.js.map": "./static/js/6686.50107964.chunk.js.map", - "9059.bfb04f0e.chunk.js.map": "./static/js/9059.bfb04f0e.chunk.js.map", - "4770.08d9efec.chunk.js.map": "./static/js/4770.08d9efec.chunk.js.map", - "6247.ecc0982e.chunk.js.map": "./static/js/6247.ecc0982e.chunk.js.map", - "4414.4553a541.chunk.js.map": "./static/js/4414.4553a541.chunk.js.map", - "8833.dd546f51.chunk.js.map": "./static/js/8833.dd546f51.chunk.js.map", - "1516.75dc9a97.chunk.js.map": "./static/js/1516.75dc9a97.chunk.js.map", - "483.8c83b198.chunk.js.map": "./static/js/483.8c83b198.chunk.js.map", - "9467.0e6dd103.chunk.js.map": "./static/js/9467.0e6dd103.chunk.js.map", - "6895.ab51144b.chunk.js.map": "./static/js/6895.ab51144b.chunk.js.map", - "4874.5e5b3042.chunk.js.map": "./static/js/4874.5e5b3042.chunk.js.map", - "1191.1f6c42ce.chunk.js.map": "./static/js/1191.1f6c42ce.chunk.js.map", - "3956.3d92ba64.chunk.js.map": "./static/js/3956.3d92ba64.chunk.js.map", - "9221.5b85a40b.chunk.js.map": "./static/js/9221.5b85a40b.chunk.js.map", - "8896.dbf5cc38.chunk.js.map": "./static/js/8896.dbf5cc38.chunk.js.map", - "9134.63488b77.chunk.js.map": "./static/js/9134.63488b77.chunk.js.map", - "5223.fbb147c5.chunk.js.map": "./static/js/5223.fbb147c5.chunk.js.map", - "5661.89c92240.chunk.js.map": "./static/js/5661.89c92240.chunk.js.map", - "7134.22af3be8.chunk.js.map": "./static/js/7134.22af3be8.chunk.js.map", - "3034.7295026b.chunk.js.map": "./static/js/3034.7295026b.chunk.js.map", - "3138.caecfaad.chunk.js.map": "./static/js/3138.caecfaad.chunk.js.map", - "711.bc7ee5ed.chunk.js.map": "./static/js/711.bc7ee5ed.chunk.js.map", - "8850.18268ff7.chunk.js.map": "./static/js/8850.18268ff7.chunk.js.map", - "2185.47993549.chunk.js.map": "./static/js/2185.47993549.chunk.js.map", - "9968.c45ff8f4.chunk.js.map": "./static/js/9968.c45ff8f4.chunk.js.map", - "7494.8d3127b2.chunk.js.map": "./static/js/7494.8d3127b2.chunk.js.map", - "4738.f09817d5.chunk.js.map": "./static/js/4738.f09817d5.chunk.js.map", - "3989.456ae7ca.chunk.js.map": "./static/js/3989.456ae7ca.chunk.js.map", - "5702.719f144e.chunk.js.map": "./static/js/5702.719f144e.chunk.js.map", - "5759.c9d43b13.chunk.js.map": "./static/js/5759.c9d43b13.chunk.js.map", - "51.21f079a0.chunk.js.map": "./static/js/51.21f079a0.chunk.js.map", - "312.a4a9011b.chunk.js.map": "./static/js/312.a4a9011b.chunk.js.map", - "2032.64ae0f99.chunk.js.map": "./static/js/2032.64ae0f99.chunk.js.map", - "4619.ac23bc25.chunk.js.map": "./static/js/4619.ac23bc25.chunk.js.map", - "8990.58d88bc9.chunk.js.map": "./static/js/8990.58d88bc9.chunk.js.map", - "8455.6e72f5ad.chunk.js.map": "./static/js/8455.6e72f5ad.chunk.js.map", - "3690.848bebec.chunk.js.map": "./static/js/3690.848bebec.chunk.js.map", - "1604.7bfdfe29.chunk.js.map": "./static/js/1604.7bfdfe29.chunk.js.map", - "9952.977159a7.chunk.js.map": "./static/js/9952.977159a7.chunk.js.map", - "402.64814df4.chunk.js.map": "./static/js/402.64814df4.chunk.js.map", - "1705.0eb547ff.chunk.js.map": "./static/js/1705.0eb547ff.chunk.js.map", - "1581.2174ac68.chunk.js.map": "./static/js/1581.2174ac68.chunk.js.map", - "455.3a91ee14.chunk.js.map": "./static/js/455.3a91ee14.chunk.js.map", - "8296.f82aeccc.chunk.js.map": "./static/js/8296.f82aeccc.chunk.js.map", - "3509.e1e73737.chunk.js.map": "./static/js/3509.e1e73737.chunk.js.map", - "889.52891a95.chunk.js.map": "./static/js/889.52891a95.chunk.js.map", - "9088.b641525f.chunk.js.map": "./static/js/9088.b641525f.chunk.js.map", - "247.69f3daa1.chunk.js.map": "./static/js/247.69f3daa1.chunk.js.map", - "2763.ced3d1e6.chunk.js.map": "./static/js/2763.ced3d1e6.chunk.js.map", - "2977.d858b026.chunk.js.map": "./static/js/2977.d858b026.chunk.js.map", - "2631.e93b9518.chunk.js.map": "./static/js/2631.e93b9518.chunk.js.map", - "601.83f062ee.chunk.js.map": "./static/js/601.83f062ee.chunk.js.map", - "8265.c2eab6fe.chunk.js.map": "./static/js/8265.c2eab6fe.chunk.js.map", - "5061.be51bf34.chunk.js.map": "./static/js/5061.be51bf34.chunk.js.map", - "6521.f929e9dd.chunk.js.map": "./static/js/6521.f929e9dd.chunk.js.map", - "7374.9d2e12d2.chunk.js.map": "./static/js/7374.9d2e12d2.chunk.js.map" + "main.f7f3913c.js.map": "./static/js/main.f7f3913c.js.map", + "1260.291b50cb.chunk.js.map": "./static/js/1260.291b50cb.chunk.js.map", + "6914.9c5fdb44.chunk.js.map": "./static/js/6914.9c5fdb44.chunk.js.map", + "9121.1e573e4c.chunk.js.map": "./static/js/9121.1e573e4c.chunk.js.map", + "1829.2aaefda6.chunk.js.map": "./static/js/1829.2aaefda6.chunk.js.map", + "6272.7c00db9b.chunk.js.map": "./static/js/6272.7c00db9b.chunk.js.map", + "5088.e2681925.chunk.js.map": "./static/js/5088.e2681925.chunk.js.map", + "6122.5f0c62fb.chunk.js.map": "./static/js/6122.5f0c62fb.chunk.js.map", + "808.db305a8e.chunk.js.map": "./static/js/808.db305a8e.chunk.js.map", + "8060.d2d3cabe.chunk.js.map": "./static/js/8060.d2d3cabe.chunk.js.map", + "9635.d9fa4193.chunk.js.map": "./static/js/9635.d9fa4193.chunk.js.map", + "2338.d41810b3.chunk.js.map": "./static/js/2338.d41810b3.chunk.js.map", + "4439.fab85879.chunk.js.map": "./static/js/4439.fab85879.chunk.js.map", + "3832.03027a58.chunk.js.map": "./static/js/3832.03027a58.chunk.js.map", + "3543.c6901e5b.chunk.js.map": "./static/js/3543.c6901e5b.chunk.js.map", + "2074.a60ce6fb.chunk.js.map": "./static/js/2074.a60ce6fb.chunk.js.map", + "3067.3ea1776d.chunk.js.map": "./static/js/3067.3ea1776d.chunk.js.map", + "2637.b1c2479f.chunk.js.map": "./static/js/2637.b1c2479f.chunk.js.map", + "5962.e82e6096.chunk.js.map": "./static/js/5962.e82e6096.chunk.js.map", + "701.4d3a4a90.chunk.js.map": "./static/js/701.4d3a4a90.chunk.js.map", + "416.3c6ca278.chunk.js.map": "./static/js/416.3c6ca278.chunk.js.map", + "7821.c63e0acc.chunk.js.map": "./static/js/7821.c63e0acc.chunk.js.map", + "2545.508d30a1.chunk.js.map": "./static/js/2545.508d30a1.chunk.js.map", + "8388.25bfdfd9.chunk.js.map": "./static/js/8388.25bfdfd9.chunk.js.map", + "4065.1550985f.chunk.js.map": "./static/js/4065.1550985f.chunk.js.map", + "5935.407e1355.chunk.js.map": "./static/js/5935.407e1355.chunk.js.map", + "4563.e3edf2d9.chunk.js.map": "./static/js/4563.e3edf2d9.chunk.js.map", + "191.1da33595.chunk.js.map": "./static/js/191.1da33595.chunk.js.map", + "1329.b71d618a.chunk.js.map": "./static/js/1329.b71d618a.chunk.js.map", + "7614.0c31f239.chunk.js.map": "./static/js/7614.0c31f239.chunk.js.map", + "1690.8063e908.chunk.js.map": "./static/js/1690.8063e908.chunk.js.map", + "6491.d0d6e818.chunk.js.map": "./static/js/6491.d0d6e818.chunk.js.map", + "4902.5f84da7e.chunk.js.map": "./static/js/4902.5f84da7e.chunk.js.map", + "1432.4da0630f.chunk.js.map": "./static/js/1432.4da0630f.chunk.js.map", + "3171.25ccb4e9.chunk.js.map": "./static/js/3171.25ccb4e9.chunk.js.map", + "8360.56659846.chunk.js.map": "./static/js/8360.56659846.chunk.js.map", + "6577.d820c471.chunk.js.map": "./static/js/6577.d820c471.chunk.js.map", + "3875.458718d4.chunk.js.map": "./static/js/3875.458718d4.chunk.js.map", + "3115.a031bcba.chunk.js.map": "./static/js/3115.a031bcba.chunk.js.map", + "2603.dca1b3d2.chunk.js.map": "./static/js/2603.dca1b3d2.chunk.js.map", + "977.a8d976d8.chunk.js.map": "./static/js/977.a8d976d8.chunk.js.map", + "6686.01ae5612.chunk.js.map": "./static/js/6686.01ae5612.chunk.js.map", + "9059.25ffd18e.chunk.js.map": "./static/js/9059.25ffd18e.chunk.js.map", + "4770.3307793f.chunk.js.map": "./static/js/4770.3307793f.chunk.js.map", + "6247.0d3bc8c3.chunk.js.map": "./static/js/6247.0d3bc8c3.chunk.js.map", + "4414.28a3e046.chunk.js.map": "./static/js/4414.28a3e046.chunk.js.map", + "8833.ee6a6f70.chunk.js.map": "./static/js/8833.ee6a6f70.chunk.js.map", + "1516.73fcb9af.chunk.js.map": "./static/js/1516.73fcb9af.chunk.js.map", + "483.d65ba5d6.chunk.js.map": "./static/js/483.d65ba5d6.chunk.js.map", + "9467.206b0190.chunk.js.map": "./static/js/9467.206b0190.chunk.js.map", + "6895.69a264e5.chunk.js.map": "./static/js/6895.69a264e5.chunk.js.map", + "4874.03b6bb42.chunk.js.map": "./static/js/4874.03b6bb42.chunk.js.map", + "1191.77653544.chunk.js.map": "./static/js/1191.77653544.chunk.js.map", + "3956.338d4453.chunk.js.map": "./static/js/3956.338d4453.chunk.js.map", + "9221.bee84518.chunk.js.map": "./static/js/9221.bee84518.chunk.js.map", + "8896.7b660eaa.chunk.js.map": "./static/js/8896.7b660eaa.chunk.js.map", + "9134.f3e24a40.chunk.js.map": "./static/js/9134.f3e24a40.chunk.js.map", + "5223.cca523cd.chunk.js.map": "./static/js/5223.cca523cd.chunk.js.map", + "5661.ed95de3e.chunk.js.map": "./static/js/5661.ed95de3e.chunk.js.map", + "7134.f87a706a.chunk.js.map": "./static/js/7134.f87a706a.chunk.js.map", + "3034.11907001.chunk.js.map": "./static/js/3034.11907001.chunk.js.map", + "3138.9f03424b.chunk.js.map": "./static/js/3138.9f03424b.chunk.js.map", + "711.e6c691c6.chunk.js.map": "./static/js/711.e6c691c6.chunk.js.map", + "6901.bc8e3c58.chunk.js.map": "./static/js/6901.bc8e3c58.chunk.js.map", + "2185.e19ab290.chunk.js.map": "./static/js/2185.e19ab290.chunk.js.map", + "9968.4439cf2b.chunk.js.map": "./static/js/9968.4439cf2b.chunk.js.map", + "7494.551802e0.chunk.js.map": "./static/js/7494.551802e0.chunk.js.map", + "4738.f0e4dfe6.chunk.js.map": "./static/js/4738.f0e4dfe6.chunk.js.map", + "3989.0cbf2140.chunk.js.map": "./static/js/3989.0cbf2140.chunk.js.map", + "5702.f709e6f4.chunk.js.map": "./static/js/5702.f709e6f4.chunk.js.map", + "5759.d032a48a.chunk.js.map": "./static/js/5759.d032a48a.chunk.js.map", + "51.b53647bd.chunk.js.map": "./static/js/51.b53647bd.chunk.js.map", + "312.0339f1aa.chunk.js.map": "./static/js/312.0339f1aa.chunk.js.map", + "2032.79310ed7.chunk.js.map": "./static/js/2032.79310ed7.chunk.js.map", + "4619.0e7615ad.chunk.js.map": "./static/js/4619.0e7615ad.chunk.js.map", + "8990.013fe7bd.chunk.js.map": "./static/js/8990.013fe7bd.chunk.js.map", + "8455.b092b647.chunk.js.map": "./static/js/8455.b092b647.chunk.js.map", + "3690.7fda5327.chunk.js.map": "./static/js/3690.7fda5327.chunk.js.map", + "1604.da19242e.chunk.js.map": "./static/js/1604.da19242e.chunk.js.map", + "9952.3389689d.chunk.js.map": "./static/js/9952.3389689d.chunk.js.map", + "402.e74bfaf8.chunk.js.map": "./static/js/402.e74bfaf8.chunk.js.map", + "1705.d2123b1a.chunk.js.map": "./static/js/1705.d2123b1a.chunk.js.map", + "1581.74c2c762.chunk.js.map": "./static/js/1581.74c2c762.chunk.js.map", + "455.1d0c7cda.chunk.js.map": "./static/js/455.1d0c7cda.chunk.js.map", + "8296.e55a5bf1.chunk.js.map": "./static/js/8296.e55a5bf1.chunk.js.map", + "3509.3f62cdbf.chunk.js.map": "./static/js/3509.3f62cdbf.chunk.js.map", + "889.035fef88.chunk.js.map": "./static/js/889.035fef88.chunk.js.map", + "9088.3bc2a31e.chunk.js.map": "./static/js/9088.3bc2a31e.chunk.js.map", + "247.39dd8f3a.chunk.js.map": "./static/js/247.39dd8f3a.chunk.js.map", + "2763.ddc89d17.chunk.js.map": "./static/js/2763.ddc89d17.chunk.js.map", + "2977.e75673aa.chunk.js.map": "./static/js/2977.e75673aa.chunk.js.map", + "601.b2adb5c6.chunk.js.map": "./static/js/601.b2adb5c6.chunk.js.map", + "8265.942883a0.chunk.js.map": "./static/js/8265.942883a0.chunk.js.map", + "5061.7ff7c268.chunk.js.map": "./static/js/5061.7ff7c268.chunk.js.map", + "6521.5e62a2df.chunk.js.map": "./static/js/6521.5e62a2df.chunk.js.map", + "4669.8c7d4cb8.chunk.js.map": "./static/js/4669.8c7d4cb8.chunk.js.map" }, "entrypoints": [ "static/css/main.e60e4760.css", - "static/js/main.4a881f62.js" + "static/js/main.f7f3913c.js" ] } \ No newline at end of file diff --git a/portal-ui/build/index.html b/portal-ui/build/index.html index 166e09fb2..5da1fe96f 100644 --- a/portal-ui/build/index.html +++ b/portal-ui/build/index.html @@ -1 +1 @@ -MinIO Console
\ No newline at end of file +MinIO Console
\ No newline at end of file diff --git a/portal-ui/build/static/js/1191.1f6c42ce.chunk.js b/portal-ui/build/static/js/1191.1f6c42ce.chunk.js deleted file mode 100644 index 7d801d695..000000000 --- a/portal-ui/build/static/js/1191.1f6c42ce.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1191],{92217:function(e,t,n){"use strict";var r=n(72791),o=n(29945),i=n(78029),c=n.n(i),a=n(27454),s=n(80184);t.Z=function(e){var t=e.value,n=e.label,i=void 0===n?"":n,l=e.tooltip,u=void 0===l?"":l,d=e.mode,p=void 0===d?"json":d,f=e.onChange,h=e.editorHeight,y=void 0===h?250:h,m=e.helptip;return(0,s.jsx)(o.pq4,{value:t,onChange:function(e){return f(e)},mode:p,tooltip:u,editorHeight:y,label:i,helpTools:(0,s.jsx)(r.Fragment,{children:(0,s.jsx)(a.Z,{tooltip:"Copy to Clipboard",children:(0,s.jsx)(c(),{text:t,children:(0,s.jsx)(o.zxk,{type:"button",id:"copy-code-mirror",icon:(0,s.jsx)(o.TIy,{}),color:"primary",variant:"regular"})})})}),helpTip:m,helpTipPlacement:"right"})}},879:function(e,t,n){"use strict";n.d(t,{D_:function(){return c},Et:function(){return o},GJ:function(){return i},yh:function(){return r}});var r={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#FFBD62"},o=function(e,t){return e<=t/2?"bad":2!==t&&e===t/2+1?"warn":e===t?"good":void 0},i=function(e){switch(e){case"offline":return"bad";case"online":return"good";default:return"warn"}},c=function(e,t){return e<=t/2?"bad":e===t/2+1?"warn":e===t?"good":void 0}},1191:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return k}});var r=n(1413),o=n(29439),i=n(72791),c=n(78687),a=n(57689),s=n(29945),l=n(23814),u=n(92217),d=n(56087),p=n(38442),f=n(75578),h=n(59114),y=n(879),m=n(80184),x={display:"grid",gridTemplateColumns:"70px 1fr",gap:15},j=function(e){var t=e.search,n=void 0===t?"":t,r=e.children,o=void 0===r?"":r,i=new RegExp("(".concat(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}(n),")"),"i"),c=String(o).split(i);return n?c.map((function(e,t){return i.test(e)?(0,m.jsx)("mark",{children:e},t):e})):o},b=function(e){var t=e.policyStatements,n=(0,i.useState)(""),r=(0,o.Z)(n,2),c=r[0],a=r[1];return(0,m.jsxs)(s.rjZ,{container:!0,children:[(0,m.jsx)(s.rjZ,{item:!0,xs:12,children:(0,m.jsxs)(s.rjZ,{container:!0,sx:{display:"flex",alignItems:"center"},children:[(0,m.jsx)(s.SYi,{content:(0,m.jsxs)(i.Fragment,{children:["Define which actions are permitted on a specified resource. Learn more about"," ",(0,m.jsx)("a",{target:"blank",href:"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html",children:"IAM conditional statements"}),"."]}),placement:"right",children:(0,m.jsx)(s.rjZ,{item:!0,xs:12,sm:6,sx:{fontWeight:"bold"},children:"Statements"})}),(0,m.jsx)(s.rjZ,{item:!0,xs:12,sm:6,sx:{display:"flex",justifyContent:"flex-end"},children:(0,m.jsx)(h.Z,{placeholder:"Search",onChange:a,value:c,sx:{maxWidth:380}})})]})}),!t&&(0,m.jsx)(i.Fragment,{children:"Policy has no statements"}),t&&(0,m.jsx)(s.rjZ,{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:t.map((function(e,t){var n=e.Effect,r="Allow"===n;return(0,m.jsxs)(s.xuv,{className:"policy-row",sx:{display:"grid",gridTemplateColumns:"1fr",gap:"15px",fontSize:"14px",padding:"10px 0 10px 0","& .label":{fontWeight:600}},children:[(0,m.jsxs)(s.xuv,{sx:x,children:[(0,m.jsx)(s.xuv,{className:"label",children:"Effect:"}),(0,m.jsxs)(s.xuv,{sx:{display:"flex",alignItems:"center","& .min-icon":{marginRight:"5px",fill:r?y.yh.GREEN:y.yh.RED,height:"14px",width:"14px"}},children:[r?(0,m.jsx)(s.E31,{}):(0,m.jsx)(s.dRf,{}),n]})]}),(0,m.jsxs)(s.rjZ,{container:!0,sx:{gap:15},children:[(0,m.jsxs)(s.rjZ,{item:!0,xs:12,sm:6,sx:x,children:[(0,m.jsx)(s.xuv,{className:"label",children:"Actions:"}),(0,m.jsx)(s.xuv,{children:e.Action&&e.Action.map((function(e,n){return(0,m.jsx)("div",{children:(0,m.jsx)(j,{search:c,children:e})},"".concat(t,"-r-").concat(n))}))})]}),(0,m.jsxs)(s.rjZ,{item:!0,xs:12,sm:6,sx:x,children:[(0,m.jsx)(s.xuv,{className:"label",children:"Resources:"}),(0,m.jsx)(s.xuv,{children:e.Resource&&e.Resource.map((function(e,n){return(0,m.jsxs)("div",{children:[" ",(0,m.jsx)(j,{search:c,children:e})]},"".concat(t,"-r-").concat(n))}))})]})]})]},"".concat(t))}))})]})},g=n(45248),v=n(87995),C=n(46078),w=n(44690),S=n(27454),O=n(47974),P=n(31776),Z=n(99670),E=(0,f.Z)(i.lazy((function(){return n.e(312).then(n.bind(n,312))}))),k=function(){var e=(0,w.TL)(),t=(0,a.s0)(),n=(0,a.UO)(),f=(0,c.v9)(C.$4),y=(0,i.useState)(null),x=(0,o.Z)(y,2),j=x[0],k=x[1],R=(0,i.useState)([]),D=(0,o.Z)(R,2),_=D[0],F=D[1],T=(0,i.useState)([]),A=(0,o.Z)(T,2),I=A[0],M=A[1],N=(0,i.useState)([]),L=(0,o.Z)(N,2),B=L[0],U=L[1],G=(0,i.useState)(!1),z=(0,o.Z)(G,2),H=z[0],K=z[1],J=(0,g.IO)(n.policyName||""),W=(0,i.useState)(""),X=(0,o.Z)(W,2),Y=X[0],Q=X[1],$=(0,i.useState)(!0),q=(0,o.Z)($,2),V=q[0],ee=q[1],te=(0,i.useState)(""),ne=(0,o.Z)(te,2),re=ne[0],oe=ne[1],ie=(0,i.useState)(!0),ce=(0,o.Z)(ie,2),ae=ce[0],se=ce[1],le=(0,i.useState)(""),ue=(0,o.Z)(le,2),de=ue[0],pe=ue[1],fe=(0,i.useState)(!0),he=(0,o.Z)(fe,2),ye=he[0],me=he[1],xe=(0,i.useState)(!1),je=(0,o.Z)(xe,2),be=je[0],ge=je[1],ve=(0,i.useState)("summary"),Ce=(0,o.Z)(ve,2),we=Ce[0],Se=Ce[1],Oe=f&&f.includes("ldap-idp")||!1,Pe=(0,p.F)(d.C3,d.K6,!0),Ze=(0,p.F)(d.C3,d.k_,!0),Ee=(0,p.F)(d.C3,d.Rs,!0),ke=(0,p.F)(d.C3,d.iw,!0),Re=(0,p.F)(d.C3,d.GD,!0),De=(0,p.F)(d.C3,d.bE,!0),_e=(0,p.F)(d.C3,d.XM,!0);(0,i.useEffect)((function(){V&&(V&&(Re?P.h.policy.policyInfo((0,g.LL)(J)).then((function(e){if(e.data){var t,n;k(e.data),Q(e?JSON.stringify(JSON.parse(null===(t=e.data)||void 0===t?void 0:t.policy),null,4):"");var r=JSON.parse(null===(n=e.data)||void 0===n?void 0:n.policy);F(r.Statement)}ee(!1)})).catch((function(t){e((0,v.Ih)(t)),ee(!1)})):ee(!1)),ae&&(Ee&&!Oe?P.h.policies.listUsersForPolicy((0,g.LL)(J)).then((function(e){var t;M(null!==(t=e.data)&&void 0!==t?t:[]),se(!1)})).catch((function(t){e((0,v.Ih)(t)),se(!1)})):se(!1)),ye&&(Pe&&!Oe?P.h.policies.listGroupsForPolicy((0,g.LL)(J)).then((function(e){var t;U(null!==(t=e.data)&&void 0!==t?t:[]),me(!1)})).catch((function(t){e((0,v.Ih)(t)),me(!1)})):me(!1)))}),[J,V,ae,ye,M,U,Q,k,se,me,Ee,Pe,Re,Oe,e]);var Fe=""!==J.trim(),Te=[{type:"view",onClick:function(e){t("".concat(d.gA.USERS,"/").concat((0,g.LL)(e)))},disableButtonFunction:function(){return!ke}}],Ae=I.filter((function(e){return e.includes(re)})),Ie=[{type:"view",onClick:function(e){t("".concat(d.gA.GROUPS,"/").concat((0,g.LL)(e)))},disableButtonFunction:function(){return!Ze}}],Me=B.filter((function(e){return e.includes(de)})),Ne=function(){se(!0),me(!0),ee(!0)};return(0,i.useEffect)((function(){e((0,v.Sc)("policy_details_summary"))}),[]),(0,m.jsxs)(i.Fragment,{children:[be&&(0,m.jsx)(E,{deleteOpen:be,selectedPolicy:J,closeDeleteModalAndRefresh:function(e){ge(!1),t(d.gA.POLICIES)}}),(0,m.jsx)(O.Z,{label:(0,m.jsx)(i.Fragment,{children:(0,m.jsx)(s.hbI,{label:"Policy",onClick:function(){return t(d.gA.POLICIES)}})}),actions:(0,m.jsx)(Z.Z,{})}),(0,m.jsxs)(s.Xgh,{children:[(0,m.jsx)(s.UHn,{icon:(0,m.jsx)(s.v42,{width:40}),title:J,subTitle:(0,m.jsx)(i.Fragment,{children:"IAM Policy"}),actions:(0,m.jsxs)(i.Fragment,{children:[(0,m.jsx)(p.s,{scopes:[d.Ft.ADMIN_DELETE_POLICY],resource:d.C3,errorProps:{disabled:!0},children:(0,m.jsx)(S.Z,{tooltip:De?"":(0,d.MK)(d.bE,"delete Policies"),children:(0,m.jsx)(s.zxk,{id:"delete-policy",label:"Delete Policy",variant:"secondary",icon:(0,m.jsx)(s.XHJ,{}),onClick:function(){ge(!0)},disabled:!De})})}),(0,m.jsx)(S.Z,{tooltip:"Refresh",children:(0,m.jsx)(s.zxk,{id:"refresh-policy",label:"Refresh",variant:"regular",icon:(0,m.jsx)(s.DuK,{}),onClick:function(){Ne()}})})]}),sx:{marginBottom:15}}),(0,m.jsx)(s.xuv,{children:(0,m.jsx)(s.mQc,{options:[{tabConfig:{label:"Summary",disabled:!Re,id:"summary"},content:(0,m.jsx)(i.Fragment,{children:(0,m.jsxs)(s.rjZ,{onMouseMove:function(){return e((0,v.Sc)("policy_details_summary"))},children:[(0,m.jsx)(s.NZf,{separator:!0,sx:{marginBottom:15},children:"Policy Summary"}),(0,m.jsx)(s.xuv,{withBorders:!0,children:(0,m.jsx)(b,{policyStatements:_})})]})})},{tabConfig:{label:"Users",disabled:!Ee||Oe,id:"users"},content:(0,m.jsx)(i.Fragment,{children:(0,m.jsxs)(s.rjZ,{onMouseMove:function(){return e((0,v.Sc)("policy_details_users"))},children:[(0,m.jsx)(s.NZf,{separator:!0,sx:{marginBottom:15},children:"Users"}),(0,m.jsxs)(s.rjZ,{container:!0,children:[I.length>0&&(0,m.jsx)(s.rjZ,{item:!0,xs:12,sx:(0,r.Z)((0,r.Z)({},l.OR.actionsTray),{},{marginBottom:15}),children:(0,m.jsx)(h.Z,{value:re,placeholder:"Search Users",id:"search-resource",onChange:function(e){oe(e)}})}),(0,m.jsx)(s.wQF,{itemActions:Te,columns:[{label:"Name",elementKey:"name"}],isLoading:ae,records:Ae,entityName:"Users with this Policy associated",idField:"name",customPaperHeight:"500px"})]})]})})},{tabConfig:{label:"Groups",disabled:!Pe||Oe,id:"groups"},content:(0,m.jsx)(i.Fragment,{children:(0,m.jsxs)(s.rjZ,{onMouseMove:function(){return e((0,v.Sc)("policy_details_groups"))},children:[(0,m.jsx)(s.NZf,{separator:!0,sx:{marginBottom:15},children:"Groups"}),(0,m.jsxs)(s.rjZ,{container:!0,children:[B.length>0&&(0,m.jsx)(s.rjZ,{item:!0,xs:12,sx:(0,r.Z)((0,r.Z)({},l.OR.actionsTray),{},{marginBottom:15}),children:(0,m.jsx)(h.Z,{value:re,placeholder:"Search Groups",id:"search-resource",onChange:function(e){pe(e)}})}),(0,m.jsx)(s.wQF,{itemActions:Ie,columns:[{label:"Name",elementKey:"name"}],isLoading:ye,records:Me,entityName:"Groups with this Policy associated",idField:"name",customPaperHeight:"500px"})]})]})})},{tabConfig:{label:"Raw Policy",disabled:!Re,id:"raw-policy"},content:(0,m.jsx)(i.Fragment,{children:(0,m.jsxs)(s.rjZ,{onMouseMove:function(){return e((0,v.Sc)("policy_details_policy"))},children:[(0,m.jsx)(s.SYi,{content:(0,m.jsx)(i.Fragment,{children:(0,m.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management/policy-based-access-control.html#policy-document-structure",children:"Guide to access policy structure"})}),placement:"right",children:(0,m.jsx)(s.NZf,{children:"Raw Policy"})}),(0,m.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(t){t.preventDefault(),H||(K(!0),_e?P.h.policies.addPolicy({name:J,policy:Y}).then((function(t){K(!1),e((0,v.y1)("Policy successfully updated")),Ne()})).catch((function(t){K(!1),e((0,v.Ih)({errorMessage:"There was an error updating the Policy ",detailedError:"There was an error updating the Policy: "+(t.error.detailedMessage||"")+". Please check Policy syntax."}))})):K(!1))},children:(0,m.jsxs)(s.rjZ,{container:!0,children:[(0,m.jsx)(s.rjZ,{item:!0,xs:12,children:(0,m.jsx)(u.Z,{value:Y,onChange:function(e){_e&&Q(e)},editorHeight:"350px",helptip:(0,m.jsx)(i.Fragment,{children:(0,m.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management/policy-based-access-control.html#policy-document-structure",children:"Guide to access policy structure"})})})}),(0,m.jsxs)(s.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-end",paddingTop:16,gap:8},children:[!j&&(0,m.jsx)(s.zxk,{type:"button",variant:"regular",id:"clear-policy",onClick:function(){Q("{}")},children:"Clear"}),(0,m.jsx)(p.s,{scopes:[d.Ft.ADMIN_CREATE_POLICY],resource:d.C3,errorProps:{disabled:!0},children:(0,m.jsx)(S.Z,{tooltip:_e?"":(0,d.MK)(d.XM,"edit a Policy"),children:(0,m.jsx)(s.zxk,{id:"save",type:"submit",variant:"callAction",color:"primary",disabled:H||!Fe||!_e,label:"Save"})})})]}),H&&(0,m.jsx)(s.rjZ,{item:!0,xs:12,children:(0,m.jsx)(s.kod,{})})]})})]})})}],currentTabOrPath:we,onTabClick:function(e){return Se(e)}})})]})]})}},76998:function(e,t,n){"use strict";var r=n(42458),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,c,a,s,l,u=!1;t||(t={}),n=t.debug||!1;try{if(c=r(),a=document.createRange(),s=document.getSelection(),(l=document.createElement("span")).textContent=e,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(l),a.selectNodeContents(l),s.addRange(a),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(a):s.removeAllRanges()),l&&document.body.removeChild(l),c()}return u}},568:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var o=a(n(72791)),i=a(n(76998)),c=["text","onCopy","options","children"];function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function d(e,t){for(var n=0;n.\n\nimport React, { Fragment } from \"react\";\nimport { Button, CodeEditor, CopyIcon } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n onChange: (value: string) => any;\n editorHeight?: string | number;\n helptip?: any;\n}\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n onChange,\n editorHeight = 250,\n helptip,\n}: ICodeWrapper) => {\n return (\n onChange(value)}\n mode={mode}\n tooltip={tooltip}\n editorHeight={editorHeight}\n label={label}\n helpTools={\n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n }\n helpTip={helptip}\n helpTipPlacement=\"right\"\n />\n );\n};\n\nexport default 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\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#FFBD62\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number,\n) => {\n if (activeDisks <= totalDrives / 2) {\n return \"bad\";\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return \"warn\";\n }\n if (activeDisks === totalDrives) {\n return \"good\";\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return \"bad\";\n case \"online\":\n return \"good\";\n default:\n return \"warn\";\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number,\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return \"bad\";\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return \"warn\";\n }\n if (activeNetwork === networkTotal) {\n return \"good\";\n }\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 React, { Fragment, useState } from \"react\";\nimport { DisabledIcon, EnabledIcon, Box, Grid, HelpTip } from \"mds\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { STATUS_COLORS } from \"../Dashboard/BasicDashboard/Utils\";\nimport { IAMStatement } from \"./types\";\n\nconst rowGridStyle = {\n display: \"grid\",\n gridTemplateColumns: \"70px 1fr\",\n gap: 15,\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}: {\n policyStatements: IAMStatement[];\n}) => {\n const [filter, setFilter] = useState(\"\");\n\n return (\n \n \n \n \n Define which actions are permitted on a specified resource.\n Learn more about{\" \"}\n \n IAM conditional statements\n \n .\n \n }\n placement=\"right\"\n >\n \n Statements\n \n \n \n \n \n \n \n {!policyStatements && Policy has no statements}\n {policyStatements && (\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 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};\n\nexport default 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 } from \"./types\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport {\n BackLink,\n Box,\n Button,\n DataTable,\n Grid,\n IAMPoliciesIcon,\n PageLayout,\n ProgressBar,\n RefreshIcon,\n ScreenTitle,\n SectionTitle,\n Tabs,\n TrashIcon,\n HelpTip,\n} from \"mds\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nimport {\n CONSOLE_UI_RESOURCE,\n createPolicyPermissions,\n deletePolicyPermissions,\n getGroupPermissions,\n IAM_PAGES,\n IAM_SCOPES,\n listGroupPermissions,\n listUsersPermissions,\n permissionTooltipHelper,\n viewPolicyPermissions,\n viewUserPermissions,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\n\nimport PolicyView from \"./PolicyView\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport {\n setErrorSnackMessage,\n setHelpName,\n setSnackBarMessage,\n} from \"../../../systemSlice\";\nimport { selFeatures } from \"../consoleSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport { Policy } from \"../../../api/consoleApi\";\nimport { api } from \"../../../api\";\nimport HelpMenu from \"../HelpMenu\";\nimport SearchBox from \"../Common/SearchBox\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst PolicyDetails = () => {\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 const [selectedTab, setSelectedTab] = useState(\"summary\");\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n listGroupPermissions,\n true,\n );\n\n const viewGroup = hasPermission(\n CONSOLE_UI_RESOURCE,\n getGroupPermissions,\n true,\n );\n\n const displayUsers = hasPermission(\n CONSOLE_UI_RESOURCE,\n listUsersPermissions,\n true,\n );\n\n const viewUser = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewUserPermissions,\n true,\n );\n\n const displayPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewPolicyPermissions,\n true,\n );\n\n const canDeletePolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n deletePolicyPermissions,\n true,\n );\n\n const canEditPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n createPolicyPermissions,\n true,\n );\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (canEditPolicy) {\n api.policies\n .addPolicy({\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n dispatch(setSnackBarMessage(\"Policy successfully updated\"));\n refreshPolicyDetails();\n })\n .catch((err) => {\n setAddLoading(false);\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"There was an error updating the Policy \",\n detailedError:\n \"There was an error updating the Policy: \" +\n (err.error.detailedMessage || \"\") +\n \". Please check Policy syntax.\",\n }),\n );\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api.policies\n .listUsersForPolicy(encodeURLString(policyName))\n .then((result) => {\n setUserList(result.data ?? []);\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.policies\n .listGroupsForPolicy(encodeURLString(policyName))\n .then((result) => {\n setGroupList(result.data ?? []);\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.policy\n .policyInfo(encodeURLString(policyName))\n .then((result) => {\n if (result.data) {\n setPolicy(result.data);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.data?.policy!), null, 4)\n : \"\",\n );\n const pol: IAMPolicy = JSON.parse(result.data?.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 const refreshPolicyDetails = () => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n };\n\n useEffect(() => {\n dispatch(setHelpName(\"policy_details_summary\"));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {deleteOpen && (\n \n )}\n \n navigate(IAM_PAGES.POLICIES)}\n />\n \n }\n actions={}\n />\n \n }\n title={policyName}\n subTitle={IAM Policy}\n actions={\n \n \n \n }\n onClick={deletePolicy}\n disabled={!canDeletePolicy}\n />\n \n \n\n \n }\n onClick={() => {\n refreshPolicyDetails();\n }}\n />\n \n \n }\n sx={{ marginBottom: 15 }}\n />\n \n \n \n dispatch(setHelpName(\"policy_details_summary\"))\n }\n >\n \n Policy Summary\n \n \n \n \n \n \n ),\n },\n {\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n id: \"users\",\n },\n content: (\n \n \n dispatch(setHelpName(\"policy_details_users\"))\n }\n >\n \n Users\n \n \n {userList.length > 0 && (\n \n {\n setFilterUsers(val);\n }}\n />\n \n )}\n \n \n \n \n ),\n },\n {\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n id: \"groups\",\n },\n content: (\n \n \n dispatch(setHelpName(\"policy_details_groups\"))\n }\n >\n \n Groups\n \n \n {groupList.length > 0 && (\n \n {\n setFilterGroups(val);\n }}\n />\n \n )}\n \n \n \n \n ),\n },\n {\n tabConfig: {\n label: \"Raw Policy\",\n disabled: !displayPolicy,\n id: \"raw-policy\",\n },\n content: (\n \n \n dispatch(setHelpName(\"policy_details_policy\"))\n }\n >\n \n \n Guide to access policy structure\n \n \n }\n placement=\"right\"\n >\n Raw Policy\n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n {\n if (canEditPolicy) {\n setPolicyDefinition(value);\n }\n }}\n editorHeight={\"350px\"}\n helptip={\n \n \n Guide to access policy structure\n \n \n }\n />\n \n \n {!policy && (\n {\n resetForm();\n }}\n >\n Clear\n \n )}\n \n \n \n \n \n \n {addLoading && (\n \n \n \n )}\n \n \n \n \n ),\n },\n ]}\n currentTabOrPath={selectedTab}\n onTabClick={(tab) => setSelectedTab(tab)}\n />\n \n \n \n );\n};\n\nexport default PolicyDetails;\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["_ref","value","_ref$label","label","_ref$tooltip","tooltip","_ref$mode","mode","onChange","_ref$editorHeight","editorHeight","helptip","_jsx","CodeEditor","helpTools","Fragment","children","TooltipWrapper","CopyToClipboard","text","Button","type","id","icon","CopyIcon","color","variant","helpTip","helpTipPlacement","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","rowGridStyle","display","gridTemplateColumns","gap","Highlight","_ref$search","search","_ref$children","txtParts","RegExp","concat","arguments","length","undefined","replace","escapeRegExp","parts","String","split","map","part","index","test","_ref2","policyStatements","_useState","useState","_useState2","_slicedToArray","filter","setFilter","_jsxs","Grid","container","item","xs","sx","alignItems","HelpTip","content","target","href","placement","sm","fontWeight","justifyContent","SearchBox","placeholder","maxWidth","borderBottom","borderTop","paddingTop","stmt","i","effect","Effect","isAllow","Box","className","fontSize","padding","marginRight","fill","height","width","EnabledIcon","DisabledIcon","Action","act","actIndex","Resource","res","resIndex","DeletePolicy","withSuspense","React","dispatch","useAppDispatch","navigate","useNavigate","params","useParams","features","useSelector","selFeatures","policy","setPolicy","_useState3","_useState4","setPolicyStatements","_useState5","_useState6","userList","setUserList","_useState7","_useState8","groupList","setGroupList","_useState9","_useState10","addLoading","setAddLoading","policyName","decodeURLString","_useState11","_useState12","policyDefinition","setPolicyDefinition","_useState13","_useState14","loadingPolicy","setLoadingPolicy","_useState15","_useState16","filterUsers","setFilterUsers","_useState17","_useState18","loadingUsers","setLoadingUsers","_useState19","_useState20","filterGroups","setFilterGroups","_useState21","_useState22","loadingGroups","setLoadingGroups","_useState23","_useState24","deleteOpen","setDeleteOpen","_useState25","_useState26","selectedTab","setSelectedTab","ldapIsEnabled","includes","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","listGroupPermissions","viewGroup","getGroupPermissions","displayUsers","listUsersPermissions","viewUser","viewUserPermissions","displayPolicy","viewPolicyPermissions","canDeletePolicy","deletePolicyPermissions","canEditPolicy","createPolicyPermissions","useEffect","api","policyInfo","encodeURLString","then","result","data","_result$data3","_result$data4","JSON","stringify","parse","pol","Statement","catch","err","setErrorSnackMessage","policies","listUsersForPolicy","_result$data","listGroupsForPolicy","_result$data2","validSave","trim","userTableActions","onClick","user","IAM_PAGES","USERS","disableButtonFunction","filteredUsers","elementItem","groupTableActions","group","GROUPS","filteredGroups","refreshPolicyDetails","setHelpName","selectedPolicy","closeDeleteModalAndRefresh","refresh","POLICIES","PageHeaderWrapper","BackLink","actions","HelpMenu","PageLayout","ScreenTitle","IAMPoliciesIcon","title","subTitle","SecureComponent","scopes","IAM_SCOPES","ADMIN_DELETE_POLICY","resource","errorProps","disabled","permissionTooltipHelper","TrashIcon","RefreshIcon","marginBottom","Tabs","options","tabConfig","onMouseMove","SectionTitle","separator","withBorders","PolicyView","_objectSpread","actionsTray","val","DataTable","itemActions","columns","elementKey","isLoading","records","entityName","idField","customPaperHeight","noValidate","autoComplete","onSubmit","e","preventDefault","addPolicy","name","_","setSnackBarMessage","errorMessage","detailedError","error","detailedMessage","CodeMirrorWrapper","ADMIN_CREATE_POLICY","ProgressBar","currentTabOrPath","onTabClick","tab","deselectCurrent","require","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","ariaHidden","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","copyKey","navigator","userAgent","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","this","self","TypeError","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","args","Array","_key","event","_this$props","elem","Children","only","_this$props2","cloneElement","PureComponent","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1191.77653544.chunk.js b/portal-ui/build/static/js/1191.77653544.chunk.js new file mode 100644 index 000000000..a47b985fd --- /dev/null +++ b/portal-ui/build/static/js/1191.77653544.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1191],{92217:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var o=r(72791),n=r(29945),i=r(78029),s=r.n(i),a=r(27454),c=r(80184);const l=e=>{let{value:t,label:r="",tooltip:i="",mode:l="json",onChange:d,editorHeight:u=250,helptip:p}=e;return(0,c.jsx)(n.pq4,{value:t,onChange:e=>d(e),mode:l,tooltip:i,editorHeight:u,label:r,helpTools:(0,c.jsx)(o.Fragment,{children:(0,c.jsx)(a.Z,{tooltip:"Copy to Clipboard",children:(0,c.jsx)(s(),{text:t,children:(0,c.jsx)(n.zxk,{type:"button",id:"copy-code-mirror",icon:(0,c.jsx)(n.TIy,{}),color:"primary",variant:"regular"})})})}),helpTip:p,helpTipPlacement:"right"})}},879:(e,t,r)=>{"use strict";r.d(t,{D_:()=>s,Et:()=>n,GJ:()=>i,yh:()=>o});const o={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#FFBD62"},n=(e,t)=>e<=t/2?"bad":2!==t&&e===t/2+1?"warn":e===t?"good":void 0,i=e=>{switch(e){case"offline":return"bad";case"online":return"good";default:return"warn"}},s=(e,t)=>e<=t/2?"bad":e===t/2+1?"warn":e===t?"good":void 0},1191:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>E});var o=r(72791),n=r(78687),i=r(57689),s=r(29945),a=r(23814),c=r(92217),l=r(56087),d=r(38442),u=r(75578),p=r(59114),h=r(879),f=r(80184);const y={display:"grid",gridTemplateColumns:"70px 1fr",gap:15},m=e=>{let{search:t="",children:r=""}=e;const o=new RegExp("(".concat(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}(t),")"),"i"),n=String(r).split(o);return t?n.map(((e,t)=>o.test(e)?(0,f.jsx)("mark",{children:e},t):e)):r},x=e=>{let{policyStatements:t}=e;const[r,n]=(0,o.useState)("");return(0,f.jsxs)(s.rjZ,{container:!0,children:[(0,f.jsx)(s.rjZ,{item:!0,xs:12,children:(0,f.jsxs)(s.rjZ,{container:!0,sx:{display:"flex",alignItems:"center"},children:[(0,f.jsx)(s.SYi,{content:(0,f.jsxs)(o.Fragment,{children:["Define which actions are permitted on a specified resource. Learn more about"," ",(0,f.jsx)("a",{target:"blank",href:"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html",children:"IAM conditional statements"}),"."]}),placement:"right",children:(0,f.jsx)(s.rjZ,{item:!0,xs:12,sm:6,sx:{fontWeight:"bold"},children:"Statements"})}),(0,f.jsx)(s.rjZ,{item:!0,xs:12,sm:6,sx:{display:"flex",justifyContent:"flex-end"},children:(0,f.jsx)(p.Z,{placeholder:"Search",onChange:n,value:r,sx:{maxWidth:380}})})]})}),!t&&(0,f.jsx)(o.Fragment,{children:"Policy has no statements"}),t&&(0,f.jsx)(s.rjZ,{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:t.map(((e,t)=>{const o=e.Effect,n="Allow"===o;return(0,f.jsxs)(s.xuv,{className:"policy-row",sx:{display:"grid",gridTemplateColumns:"1fr",gap:"15px",fontSize:"14px",padding:"10px 0 10px 0","& .label":{fontWeight:600}},children:[(0,f.jsxs)(s.xuv,{sx:y,children:[(0,f.jsx)(s.xuv,{className:"label",children:"Effect:"}),(0,f.jsxs)(s.xuv,{sx:{display:"flex",alignItems:"center","& .min-icon":{marginRight:"5px",fill:n?h.yh.GREEN:h.yh.RED,height:"14px",width:"14px"}},children:[n?(0,f.jsx)(s.E31,{}):(0,f.jsx)(s.dRf,{}),o]})]}),(0,f.jsxs)(s.rjZ,{container:!0,sx:{gap:15},children:[(0,f.jsxs)(s.rjZ,{item:!0,xs:12,sm:6,sx:y,children:[(0,f.jsx)(s.xuv,{className:"label",children:"Actions:"}),(0,f.jsx)(s.xuv,{children:e.Action&&e.Action.map(((e,o)=>(0,f.jsx)("div",{children:(0,f.jsx)(m,{search:r,children:e})},"".concat(t,"-r-").concat(o))))})]}),(0,f.jsxs)(s.rjZ,{item:!0,xs:12,sm:6,sx:y,children:[(0,f.jsx)(s.xuv,{className:"label",children:"Resources:"}),(0,f.jsx)(s.xuv,{children:e.Resource&&e.Resource.map(((e,o)=>(0,f.jsxs)("div",{children:[" ",(0,f.jsx)(m,{search:r,children:e})]},"".concat(t,"-r-").concat(o))))})]})]})]},"".concat(t))}))})]})};var j=r(45248),b=r(87995),g=r(46078),v=r(44690),C=r(27454),w=r(79844),S=r(31776),O=r(99670);const P=(0,u.Z)(o.lazy((()=>r.e(312).then(r.bind(r,312))))),E=()=>{const e=(0,v.TL)(),t=(0,i.s0)(),r=(0,i.UO)(),u=(0,n.v9)(g.$4),[h,y]=(0,o.useState)(null),[m,E]=(0,o.useState)([]),[k,R]=(0,o.useState)([]),[Z,D]=(0,o.useState)([]),[_,F]=(0,o.useState)(!1),T=(0,j.IO)(r.policyName||""),[A,I]=(0,o.useState)(""),[M,N]=(0,o.useState)(!0),[L,B]=(0,o.useState)(""),[U,G]=(0,o.useState)(!0),[z,H]=(0,o.useState)(""),[K,J]=(0,o.useState)(!0),[W,X]=(0,o.useState)(!1),[Y,Q]=(0,o.useState)("summary"),$=u&&u.includes("ldap-idp")||!1,q=(0,d.F)(l.C3,l.K6,!0),V=(0,d.F)(l.C3,l.k_,!0),ee=(0,d.F)(l.C3,l.Rs,!0),te=(0,d.F)(l.C3,l.iw,!0),re=(0,d.F)(l.C3,l.GD,!0),oe=(0,d.F)(l.C3,l.bE,!0),ne=(0,d.F)(l.C3,l.XM,!0);(0,o.useEffect)((()=>{M&&(M&&(re?S.h.policy.policyInfo((0,j.LL)(T)).then((e=>{if(e.data){var t,r;y(e.data),I(e?JSON.stringify(JSON.parse(null===(t=e.data)||void 0===t?void 0:t.policy),null,4):"");const o=JSON.parse(null===(r=e.data)||void 0===r?void 0:r.policy);E(o.Statement)}N(!1)})).catch((t=>{e((0,b.Ih)(t)),N(!1)})):N(!1)),U&&(ee&&!$?S.h.policies.listUsersForPolicy((0,j.LL)(T)).then((e=>{var t;R(null!==(t=e.data)&&void 0!==t?t:[]),G(!1)})).catch((t=>{e((0,b.Ih)(t)),G(!1)})):G(!1)),K&&(q&&!$?S.h.policies.listGroupsForPolicy((0,j.LL)(T)).then((e=>{var t;D(null!==(t=e.data)&&void 0!==t?t:[]),J(!1)})).catch((t=>{e((0,b.Ih)(t)),J(!1)})):J(!1)))}),[T,M,U,K,R,D,I,y,G,J,ee,q,re,$,e]);const ie=""!==T.trim(),se=[{type:"view",onClick:e=>{t("".concat(l.gA.USERS,"/").concat((0,j.LL)(e)))},disableButtonFunction:()=>!te}],ae=k.filter((e=>e.includes(L))),ce=[{type:"view",onClick:e=>{t("".concat(l.gA.GROUPS,"/").concat((0,j.LL)(e)))},disableButtonFunction:()=>!V}],le=Z.filter((e=>e.includes(z))),de=()=>{G(!0),J(!0),N(!0)};return(0,o.useEffect)((()=>{e((0,b.Sc)("policy_details_summary"))}),[]),(0,f.jsxs)(o.Fragment,{children:[W&&(0,f.jsx)(P,{deleteOpen:W,selectedPolicy:T,closeDeleteModalAndRefresh:e=>{X(!1),t(l.gA.POLICIES)}}),(0,f.jsx)(w.Z,{label:(0,f.jsx)(o.Fragment,{children:(0,f.jsx)(s.hbI,{label:"Policy",onClick:()=>t(l.gA.POLICIES)})}),actions:(0,f.jsx)(O.Z,{})}),(0,f.jsxs)(s.Xgh,{children:[(0,f.jsx)(s.UHn,{icon:(0,f.jsx)(s.v42,{width:40}),title:T,subTitle:(0,f.jsx)(o.Fragment,{children:"IAM Policy"}),actions:(0,f.jsxs)(o.Fragment,{children:[(0,f.jsx)(d.s,{scopes:[l.Ft.ADMIN_DELETE_POLICY],resource:l.C3,errorProps:{disabled:!0},children:(0,f.jsx)(C.Z,{tooltip:oe?"":(0,l.MK)(l.bE,"delete Policies"),children:(0,f.jsx)(s.zxk,{id:"delete-policy",label:"Delete Policy",variant:"secondary",icon:(0,f.jsx)(s.XHJ,{}),onClick:()=>{X(!0)},disabled:!oe})})}),(0,f.jsx)(C.Z,{tooltip:"Refresh",children:(0,f.jsx)(s.zxk,{id:"refresh-policy",label:"Refresh",variant:"regular",icon:(0,f.jsx)(s.DuK,{}),onClick:()=>{de()}})})]}),sx:{marginBottom:15}}),(0,f.jsx)(s.xuv,{children:(0,f.jsx)(s.mQc,{options:[{tabConfig:{label:"Summary",disabled:!re,id:"summary"},content:(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(s.rjZ,{onMouseMove:()=>e((0,b.Sc)("policy_details_summary")),children:[(0,f.jsx)(s.NZf,{separator:!0,sx:{marginBottom:15},children:"Policy Summary"}),(0,f.jsx)(s.xuv,{withBorders:!0,children:(0,f.jsx)(x,{policyStatements:m})})]})})},{tabConfig:{label:"Users",disabled:!ee||$,id:"users"},content:(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(s.rjZ,{onMouseMove:()=>e((0,b.Sc)("policy_details_users")),children:[(0,f.jsx)(s.NZf,{separator:!0,sx:{marginBottom:15},children:"Users"}),(0,f.jsxs)(s.rjZ,{container:!0,children:[k.length>0&&(0,f.jsx)(s.rjZ,{item:!0,xs:12,sx:{...a.OR.actionsTray,marginBottom:15},children:(0,f.jsx)(p.Z,{value:L,placeholder:"Search Users",id:"search-resource",onChange:e=>{B(e)}})}),(0,f.jsx)(s.wQF,{itemActions:se,columns:[{label:"Name",elementKey:"name"}],isLoading:U,records:ae,entityName:"Users with this Policy associated",idField:"name",customPaperHeight:"500px"})]})]})})},{tabConfig:{label:"Groups",disabled:!q||$,id:"groups"},content:(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(s.rjZ,{onMouseMove:()=>e((0,b.Sc)("policy_details_groups")),children:[(0,f.jsx)(s.NZf,{separator:!0,sx:{marginBottom:15},children:"Groups"}),(0,f.jsxs)(s.rjZ,{container:!0,children:[Z.length>0&&(0,f.jsx)(s.rjZ,{item:!0,xs:12,sx:{...a.OR.actionsTray,marginBottom:15},children:(0,f.jsx)(p.Z,{value:L,placeholder:"Search Groups",id:"search-resource",onChange:e=>{H(e)}})}),(0,f.jsx)(s.wQF,{itemActions:ce,columns:[{label:"Name",elementKey:"name"}],isLoading:K,records:le,entityName:"Groups with this Policy associated",idField:"name",customPaperHeight:"500px"})]})]})})},{tabConfig:{label:"Raw Policy",disabled:!re,id:"raw-policy"},content:(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(s.rjZ,{onMouseMove:()=>e((0,b.Sc)("policy_details_policy")),children:[(0,f.jsx)(s.SYi,{content:(0,f.jsx)(o.Fragment,{children:(0,f.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management/policy-based-access-control.html#policy-document-structure",children:"Guide to access policy structure"})}),placement:"right",children:(0,f.jsx)(s.NZf,{children:"Raw Policy"})}),(0,f.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),_||(F(!0),ne?S.h.policies.addPolicy({name:T,policy:A}).then((t=>{F(!1),e((0,b.y1)("Policy successfully updated")),de()})).catch((t=>{F(!1),e((0,b.Ih)({errorMessage:"There was an error updating the Policy ",detailedError:"There was an error updating the Policy: "+(t.error.detailedMessage||"")+". Please check Policy syntax."}))})):F(!1))},children:(0,f.jsxs)(s.rjZ,{container:!0,children:[(0,f.jsx)(s.rjZ,{item:!0,xs:12,children:(0,f.jsx)(c.Z,{value:A,onChange:e=>{ne&&I(e)},editorHeight:"350px",helptip:(0,f.jsx)(o.Fragment,{children:(0,f.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management/policy-based-access-control.html#policy-document-structure",children:"Guide to access policy structure"})})})}),(0,f.jsxs)(s.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-end",paddingTop:16,gap:8},children:[!h&&(0,f.jsx)(s.zxk,{type:"button",variant:"regular",id:"clear-policy",onClick:()=>{I("{}")},children:"Clear"}),(0,f.jsx)(d.s,{scopes:[l.Ft.ADMIN_CREATE_POLICY],resource:l.C3,errorProps:{disabled:!0},children:(0,f.jsx)(C.Z,{tooltip:ne?"":(0,l.MK)(l.XM,"edit a Policy"),children:(0,f.jsx)(s.zxk,{id:"save",type:"submit",variant:"callAction",color:"primary",disabled:_||!ie||!ne,label:"Save"})})})]}),_&&(0,f.jsx)(s.rjZ,{item:!0,xs:12,children:(0,f.jsx)(s.kod,{})})]})})]})})}],currentTabOrPath:Y,onTabClick:e=>Q(e)})})]})]})}},76998:(e,t,r)=>{"use strict";var o=r(42458),n={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var r,i,s,a,c,l,d=!1;t||(t={}),r=t.debug||!1;try{if(s=o(),a=document.createRange(),c=document.getSelection(),(l=document.createElement("span")).textContent=e,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",(function(o){if(o.stopPropagation(),t.format)if(o.preventDefault(),"undefined"===typeof o.clipboardData){r&&console.warn("unable to use e.clipboardData"),r&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=n[t.format]||n.default;window.clipboardData.setData(i,e)}else o.clipboardData.clearData(),o.clipboardData.setData(t.format,e);t.onCopy&&(o.preventDefault(),t.onCopy(o.clipboardData))})),document.body.appendChild(l),a.selectNodeContents(l),c.addRange(a),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(u){r&&console.error("unable to copy using execCommand: ",u),r&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(u){r&&console.error("unable to copy using clipboardData: ",u),r&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(a):c.removeAllRanges()),l&&document.body.removeChild(l),s()}return d}},568:(e,t,r)=>{"use strict";function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var n=a(r(72791)),i=a(r(76998)),s=["text","onCopy","options","children"];function a(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function u(e,t){for(var r=0;r{"use strict";var o=r(568).CopyToClipboard;o.CopyToClipboard=o,e.exports=o},42458:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],o=0;o.\n\nimport React, { Fragment } from \"react\";\nimport { Button, CodeEditor, CopyIcon } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n onChange: (value: string) => any;\n editorHeight?: string | number;\n helptip?: any;\n}\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n onChange,\n editorHeight = 250,\n helptip,\n}: ICodeWrapper) => {\n return (\n onChange(value)}\n mode={mode}\n tooltip={tooltip}\n editorHeight={editorHeight}\n label={label}\n helpTools={\n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n }\n helpTip={helptip}\n helpTipPlacement=\"right\"\n />\n );\n};\n\nexport default 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\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#FFBD62\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number,\n) => {\n if (activeDisks <= totalDrives / 2) {\n return \"bad\";\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return \"warn\";\n }\n if (activeDisks === totalDrives) {\n return \"good\";\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return \"bad\";\n case \"online\":\n return \"good\";\n default:\n return \"warn\";\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number,\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return \"bad\";\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return \"warn\";\n }\n if (activeNetwork === networkTotal) {\n return \"good\";\n }\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 React, { Fragment, useState } from \"react\";\nimport { DisabledIcon, EnabledIcon, Box, Grid, HelpTip } from \"mds\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { STATUS_COLORS } from \"../Dashboard/BasicDashboard/Utils\";\nimport { IAMStatement } from \"./types\";\n\nconst rowGridStyle = {\n display: \"grid\",\n gridTemplateColumns: \"70px 1fr\",\n gap: 15,\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}: {\n policyStatements: IAMStatement[];\n}) => {\n const [filter, setFilter] = useState(\"\");\n\n return (\n \n \n \n \n Define which actions are permitted on a specified resource.\n Learn more about{\" \"}\n \n IAM conditional statements\n \n .\n \n }\n placement=\"right\"\n >\n \n Statements\n \n \n \n \n \n \n \n {!policyStatements && Policy has no statements}\n {policyStatements && (\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 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};\n\nexport default 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 } from \"./types\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport {\n BackLink,\n Box,\n Button,\n DataTable,\n Grid,\n IAMPoliciesIcon,\n PageLayout,\n ProgressBar,\n RefreshIcon,\n ScreenTitle,\n SectionTitle,\n Tabs,\n TrashIcon,\n HelpTip,\n} from \"mds\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nimport {\n CONSOLE_UI_RESOURCE,\n createPolicyPermissions,\n deletePolicyPermissions,\n getGroupPermissions,\n IAM_PAGES,\n IAM_SCOPES,\n listGroupPermissions,\n listUsersPermissions,\n permissionTooltipHelper,\n viewPolicyPermissions,\n viewUserPermissions,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\n\nimport PolicyView from \"./PolicyView\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport {\n setErrorSnackMessage,\n setHelpName,\n setSnackBarMessage,\n} from \"../../../systemSlice\";\nimport { selFeatures } from \"../consoleSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport { Policy } from \"../../../api/consoleApi\";\nimport { api } from \"../../../api\";\nimport HelpMenu from \"../HelpMenu\";\nimport SearchBox from \"../Common/SearchBox\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst PolicyDetails = () => {\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 const [selectedTab, setSelectedTab] = useState(\"summary\");\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n listGroupPermissions,\n true,\n );\n\n const viewGroup = hasPermission(\n CONSOLE_UI_RESOURCE,\n getGroupPermissions,\n true,\n );\n\n const displayUsers = hasPermission(\n CONSOLE_UI_RESOURCE,\n listUsersPermissions,\n true,\n );\n\n const viewUser = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewUserPermissions,\n true,\n );\n\n const displayPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewPolicyPermissions,\n true,\n );\n\n const canDeletePolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n deletePolicyPermissions,\n true,\n );\n\n const canEditPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n createPolicyPermissions,\n true,\n );\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (canEditPolicy) {\n api.policies\n .addPolicy({\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n dispatch(setSnackBarMessage(\"Policy successfully updated\"));\n refreshPolicyDetails();\n })\n .catch((err) => {\n setAddLoading(false);\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"There was an error updating the Policy \",\n detailedError:\n \"There was an error updating the Policy: \" +\n (err.error.detailedMessage || \"\") +\n \". Please check Policy syntax.\",\n }),\n );\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api.policies\n .listUsersForPolicy(encodeURLString(policyName))\n .then((result) => {\n setUserList(result.data ?? []);\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.policies\n .listGroupsForPolicy(encodeURLString(policyName))\n .then((result) => {\n setGroupList(result.data ?? []);\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.policy\n .policyInfo(encodeURLString(policyName))\n .then((result) => {\n if (result.data) {\n setPolicy(result.data);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.data?.policy!), null, 4)\n : \"\",\n );\n const pol: IAMPolicy = JSON.parse(result.data?.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 const refreshPolicyDetails = () => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n };\n\n useEffect(() => {\n dispatch(setHelpName(\"policy_details_summary\"));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {deleteOpen && (\n \n )}\n \n navigate(IAM_PAGES.POLICIES)}\n />\n \n }\n actions={}\n />\n \n }\n title={policyName}\n subTitle={IAM Policy}\n actions={\n \n \n \n }\n onClick={deletePolicy}\n disabled={!canDeletePolicy}\n />\n \n \n\n \n }\n onClick={() => {\n refreshPolicyDetails();\n }}\n />\n \n \n }\n sx={{ marginBottom: 15 }}\n />\n \n \n \n dispatch(setHelpName(\"policy_details_summary\"))\n }\n >\n \n Policy Summary\n \n \n \n \n \n \n ),\n },\n {\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n id: \"users\",\n },\n content: (\n \n \n dispatch(setHelpName(\"policy_details_users\"))\n }\n >\n \n Users\n \n \n {userList.length > 0 && (\n \n {\n setFilterUsers(val);\n }}\n />\n \n )}\n \n \n \n \n ),\n },\n {\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n id: \"groups\",\n },\n content: (\n \n \n dispatch(setHelpName(\"policy_details_groups\"))\n }\n >\n \n Groups\n \n \n {groupList.length > 0 && (\n \n {\n setFilterGroups(val);\n }}\n />\n \n )}\n \n \n \n \n ),\n },\n {\n tabConfig: {\n label: \"Raw Policy\",\n disabled: !displayPolicy,\n id: \"raw-policy\",\n },\n content: (\n \n \n dispatch(setHelpName(\"policy_details_policy\"))\n }\n >\n \n \n Guide to access policy structure\n \n \n }\n placement=\"right\"\n >\n Raw Policy\n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n {\n if (canEditPolicy) {\n setPolicyDefinition(value);\n }\n }}\n editorHeight={\"350px\"}\n helptip={\n \n \n Guide to access policy structure\n \n \n }\n />\n \n \n {!policy && (\n {\n resetForm();\n }}\n >\n Clear\n \n )}\n \n \n \n \n \n \n {addLoading && (\n \n \n \n )}\n \n \n \n \n ),\n },\n ]}\n currentTabOrPath={selectedTab}\n onTabClick={(tab) => setSelectedTab(tab)}\n />\n \n \n \n );\n};\n\nexport default PolicyDetails;\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["_ref","value","label","tooltip","mode","onChange","editorHeight","helptip","_jsx","CodeEditor","helpTools","Fragment","children","TooltipWrapper","CopyToClipboard","text","Button","type","id","icon","CopyIcon","color","variant","helpTip","helpTipPlacement","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","rowGridStyle","display","gridTemplateColumns","gap","Highlight","search","txtParts","RegExp","concat","arguments","length","undefined","replace","escapeRegExp","parts","String","split","map","part","index","test","_ref2","policyStatements","filter","setFilter","useState","_jsxs","Grid","container","item","xs","sx","alignItems","HelpTip","content","target","href","placement","sm","fontWeight","justifyContent","SearchBox","placeholder","maxWidth","borderBottom","borderTop","paddingTop","stmt","i","effect","Effect","isAllow","Box","className","fontSize","padding","marginRight","fill","height","width","EnabledIcon","DisabledIcon","Action","act","actIndex","Resource","res","resIndex","DeletePolicy","withSuspense","React","PolicyDetails","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","selectedTab","setSelectedTab","ldapIsEnabled","includes","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","listGroupPermissions","viewGroup","getGroupPermissions","displayUsers","listUsersPermissions","viewUser","viewUserPermissions","displayPolicy","viewPolicyPermissions","canDeletePolicy","deletePolicyPermissions","canEditPolicy","createPolicyPermissions","useEffect","api","policyInfo","encodeURLString","then","result","data","_result$data3","_result$data4","JSON","stringify","parse","pol","Statement","catch","err","setErrorSnackMessage","policies","listUsersForPolicy","_result$data","listGroupsForPolicy","_result$data2","validSave","trim","userTableActions","onClick","user","IAM_PAGES","USERS","disableButtonFunction","filteredUsers","elementItem","groupTableActions","group","GROUPS","filteredGroups","refreshPolicyDetails","setHelpName","selectedPolicy","closeDeleteModalAndRefresh","refresh","POLICIES","PageHeaderWrapper","BackLink","actions","HelpMenu","PageLayout","ScreenTitle","IAMPoliciesIcon","title","subTitle","SecureComponent","scopes","IAM_SCOPES","ADMIN_DELETE_POLICY","resource","errorProps","disabled","permissionTooltipHelper","TrashIcon","deletePolicy","RefreshIcon","marginBottom","Tabs","options","tabConfig","onMouseMove","SectionTitle","separator","withBorders","PolicyView","actionsTray","val","DataTable","itemActions","columns","elementKey","isLoading","records","entityName","idField","customPaperHeight","noValidate","autoComplete","onSubmit","e","preventDefault","addPolicy","name","_","setSnackBarMessage","errorMessage","detailedError","error","detailedMessage","CodeMirrorWrapper","ADMIN_CREATE_POLICY","ProgressBar","currentTabOrPath","onTabClick","tab","deselectCurrent","require","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","ariaHidden","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","copyKey","navigator","userAgent","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","this","self","TypeError","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","args","Array","_key","event","_this$props","elem","Children","only","_this$props2","cloneElement","PureComponent","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1260.1bfa3ef3.chunk.js b/portal-ui/build/static/js/1260.1bfa3ef3.chunk.js deleted file mode 100644 index a62673a9c..000000000 --- a/portal-ui/build/static/js/1260.1bfa3ef3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1260],{1260:function(t,e,o){o.r(e);var n=o(72791),c=o(57689),a=o(44690),r=o(45248),u=o(87995),s=o(46078),i=o(81207),l=o(7241),f=o(80184);e.default=function(){var t=(0,a.TL)(),e=(0,c.s0)();return(0,n.useEffect)((function(){!function(){var o=function(){(0,r.Ov)(),t((0,u.wr)(!1)),t({type:"socket/OBDisconnect"}),localStorage.setItem("userLoggedIn",""),localStorage.setItem("redirect-path",""),t((0,s.lX)()),e("/login")},n=localStorage.getItem("auth-state");i.Z.invoke("POST","/api/v1/logout",{state:n}).then((function(){o()})).catch((function(t){console.error(t),o()}))}()}),[t,e]),(0,f.jsx)(l.Z,{})}}}]); -//# sourceMappingURL=1260.1bfa3ef3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1260.1bfa3ef3.chunk.js.map b/portal-ui/build/static/js/1260.1bfa3ef3.chunk.js.map deleted file mode 100644 index abf1cb135..000000000 --- a/portal-ui/build/static/js/1260.1bfa3ef3.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1260.1bfa3ef3.chunk.js","mappings":"yNA2DA,UAjCmB,WACjB,IAAMA,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MA4BjB,OA3BAC,EAAAA,EAAAA,YAAU,YACO,WACb,IAAMC,EAAgB,YACpBC,EAAAA,EAAAA,MACAN,GAASO,EAAAA,EAAAA,KAAW,IAGpBP,EAAS,CAAEQ,KAAM,wBAEjBC,aAAaC,QAAQ,eAAgB,IACrCD,aAAaC,QAAQ,gBAAiB,IACtCV,GAASW,EAAAA,EAAAA,OACTT,EAAS,SACX,EACMU,EAAQH,aAAaI,QAAQ,cACnCC,EAAAA,EACGC,OAAO,OAAO,iBAAmB,CAAEH,MAAAA,IACnCI,MAAK,WACJX,GACF,IACCY,OAAM,SAACC,GACNC,QAAQC,MAAMF,GACdb,GACF,GACJ,CACAgB,EACF,GAAG,CAACrB,EAAUE,KACPoB,EAAAA,EAAAA,KAACC,EAAAA,EAAgB,GAC1B,C","sources":["screens/LogoutPage/LogoutPage.tsx"],"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 .\n\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../store\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport { clearSession } from \"../../common/utils\";\nimport { userLogged } from \"../../systemSlice\";\nimport { resetSession } from \"../Console/consoleSlice\";\nimport api from \"../../common/api\";\nimport LoadingComponent from \"../../common/LoadingComponent\";\n\nconst LogoutPage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n useEffect(() => {\n const logout = () => {\n const deleteSession = () => {\n clearSession();\n dispatch(userLogged(false));\n\n // Disconnect OB Websocket\n dispatch({ type: \"socket/OBDisconnect\" });\n\n localStorage.setItem(\"userLoggedIn\", \"\");\n localStorage.setItem(\"redirect-path\", \"\");\n dispatch(resetSession());\n navigate(`/login`);\n };\n const state = localStorage.getItem(\"auth-state\");\n api\n .invoke(\"POST\", `/api/v1/logout`, { state })\n .then(() => {\n deleteSession();\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n deleteSession();\n });\n };\n logout();\n }, [dispatch, navigate]);\n return ;\n};\n\nexport default LogoutPage;\n"],"names":["dispatch","useAppDispatch","navigate","useNavigate","useEffect","deleteSession","clearSession","userLogged","type","localStorage","setItem","resetSession","state","getItem","api","invoke","then","catch","err","console","error","logout","_jsx","LoadingComponent"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1260.291b50cb.chunk.js b/portal-ui/build/static/js/1260.291b50cb.chunk.js new file mode 100644 index 000000000..5f5b68c19 --- /dev/null +++ b/portal-ui/build/static/js/1260.291b50cb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1260],{1260:(t,e,o)=>{o.r(e),o.d(e,{default:()=>p});var s=o(72791),a=o(57689),c=o(44690),r=o(45248),l=o(87995),n=o(46078),u=o(81207),g=o(7241),i=o(80184);const p=()=>{const t=(0,c.TL)(),e=(0,a.s0)();return(0,s.useEffect)((()=>{(()=>{const o=()=>{(0,r.Ov)(),t((0,l.wr)(!1)),t({type:"socket/OBDisconnect"}),localStorage.setItem("userLoggedIn",""),localStorage.setItem("redirect-path",""),t((0,n.lX)()),e("/login")},s=localStorage.getItem("auth-state");u.Z.invoke("POST","/api/v1/logout",{state:s}).then((()=>{o()})).catch((t=>{console.error(t),o()}))})()}),[t,e]),(0,i.jsx)(g.Z,{})}}}]); +//# sourceMappingURL=1260.291b50cb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1260.291b50cb.chunk.js.map b/portal-ui/build/static/js/1260.291b50cb.chunk.js.map new file mode 100644 index 000000000..c88ea1f4b --- /dev/null +++ b/portal-ui/build/static/js/1260.291b50cb.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1260.291b50cb.chunk.js","mappings":"0OA0BA,MAiCA,EAjCmBA,KACjB,MAAMC,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MA4BjB,OA3BAC,EAAAA,EAAAA,YAAU,KACOC,MACb,MAAMC,EAAgBA,MACpBC,EAAAA,EAAAA,MACAP,GAASQ,EAAAA,EAAAA,KAAW,IAGpBR,EAAS,CAAES,KAAM,wBAEjBC,aAAaC,QAAQ,eAAgB,IACrCD,aAAaC,QAAQ,gBAAiB,IACtCX,GAASY,EAAAA,EAAAA,OACTV,EAAS,SAAS,EAEdW,EAAQH,aAAaI,QAAQ,cACnCC,EAAAA,EACGC,OAAO,OAAO,iBAAmB,CAAEH,UACnCI,MAAK,KACJX,GAAe,IAEhBY,OAAOC,IACNC,QAAQC,MAAMF,GACdb,GAAe,GACf,EAEND,EAAQ,GACP,CAACL,EAAUE,KACPoB,EAAAA,EAAAA,KAACC,EAAAA,EAAgB,GAAG,C","sources":["screens/LogoutPage/LogoutPage.tsx"],"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 .\n\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../store\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport { clearSession } from \"../../common/utils\";\nimport { userLogged } from \"../../systemSlice\";\nimport { resetSession } from \"../Console/consoleSlice\";\nimport api from \"../../common/api\";\nimport LoadingComponent from \"../../common/LoadingComponent\";\n\nconst LogoutPage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n useEffect(() => {\n const logout = () => {\n const deleteSession = () => {\n clearSession();\n dispatch(userLogged(false));\n\n // Disconnect OB Websocket\n dispatch({ type: \"socket/OBDisconnect\" });\n\n localStorage.setItem(\"userLoggedIn\", \"\");\n localStorage.setItem(\"redirect-path\", \"\");\n dispatch(resetSession());\n navigate(`/login`);\n };\n const state = localStorage.getItem(\"auth-state\");\n api\n .invoke(\"POST\", `/api/v1/logout`, { state })\n .then(() => {\n deleteSession();\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n deleteSession();\n });\n };\n logout();\n }, [dispatch, navigate]);\n return ;\n};\n\nexport default LogoutPage;\n"],"names":["LogoutPage","dispatch","useAppDispatch","navigate","useNavigate","useEffect","logout","deleteSession","clearSession","userLogged","type","localStorage","setItem","resetSession","state","getItem","api","invoke","then","catch","err","console","error","_jsx","LoadingComponent"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1329.b71d618a.chunk.js b/portal-ui/build/static/js/1329.b71d618a.chunk.js new file mode 100644 index 000000000..58faae4b7 --- /dev/null +++ b/portal-ui/build/static/js/1329.b71d618a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1329],{51270:(e,t,n)=>{n.d(t,{Z:()=>d});var s=n(72791),i=n(29945),a=n(87995),o=n(44690),r=n(9505),l=n(23508),c=n(80184);const d=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,idp:d,idpType:u}=e;const p=(0,o.TL)(),[f,x]=(0,r.Z)((e=>{t(!0),p((0,a.cN)(!0===e.restart))}),(e=>p((0,a.Ih)(e))));if(!d)return null;const j="_"===d?"Default":d;return(0,c.jsx)(l.Z,{title:"Delete ".concat(j),confirmText:"Delete",isOpen:n,titleIcon:(0,c.jsx)(i.NvT,{}),isLoading:f,onConfirm:()=>{x("DELETE","/api/v1/idp/".concat(u,"/").concat(d))},onClose:()=>t(!1),confirmButtonProps:{disabled:f},confirmationContent:(0,c.jsxs)(s.Fragment,{children:["Are you sure you want to delete IDP ",(0,c.jsx)("b",{children:j})," ","configuration? ",(0,c.jsx)("br",{})]})})}},31329:(e,t,n)=>{n.r(t),n.d(t,{default:()=>m});var s=n(72791),i=n(29945),a=n(57689),o=n(31776),r=n(82342),l=n(44690),c=n(56087),d=n(38442),u=n(87995),p=n(23814),f=n(27454),x=n(51270),j=n(79844),C=n(99670),h=n(80184);const D=e=>{let{idpType:t}=e;const n=(0,l.TL)(),D=(0,a.s0)(),[m,y]=(0,s.useState)(!1),[b,F]=(0,s.useState)(""),[_,A]=(0,s.useState)(!1),[I,T]=(0,s.useState)([]),g=(0,d.F)(c.C3,[c.Ft.ADMIN_CONFIG_UPDATE]),N=(0,d.F)(c.C3,[c.Ft.ADMIN_CONFIG_UPDATE]),E=(0,d.F)(c.C3,[c.Ft.ADMIN_CONFIG_UPDATE]);(0,s.useEffect)((()=>{P()}),[]),(0,s.useEffect)((()=>{_&&(E?o.h.idp.listConfigurations(t).then((e=>{A(!1),e.data.results&&T(e.data.results.map((e=>(e.name="_"===e.name?"Default":e.name,e.enabled=!0===e.enabled?"Enabled":"Disabled",e))))})).catch((e=>{A(!1),n((0,u.Ih)((0,r.g)(e.error)))})):A(!1))}),[_,A,T,n,E,t]);const P=()=>{A(!0)},k=[{type:"view",onClick:e=>{let n="Default"===e.name?"_":e.name;D("/identity/idp/".concat(t,"/configurations/").concat(n))},disableButtonFunction:()=>!N},{type:"delete",onClick:e=>{y(!0),F(e="Default"===e?"_":e)},sendOnlyId:!0,disableButtonFunction:e=>!g||"Default"===e}];return(0,s.useEffect)((()=>{n((0,u.Sc)("idp_configs"))}),[]),(0,h.jsxs)(s.Fragment,{children:[m&&(0,h.jsx)(x.Z,{deleteOpen:m,idp:b,idpType:t,closeDeleteModalAndRefresh:async e=>{y(!1),e&&P()}}),(0,h.jsx)(j.Z,{label:"".concat(t.toUpperCase()," Configurations"),actions:(0,h.jsx)(C.Z,{})}),(0,h.jsx)(i.Xgh,{children:(0,h.jsxs)(i.rjZ,{container:!0,children:[(0,h.jsxs)(i.rjZ,{item:!0,xs:12,sx:{...p.OR.actionsTray,justifyContent:"flex-end",gap:8},children:[(0,h.jsx)(d.s,{scopes:[c.Ft.ADMIN_CONFIG_UPDATE],resource:c.C3,errorProps:{disabled:!0},children:(0,h.jsx)(f.Z,{tooltip:"Refresh",children:(0,h.jsx)(i.zxk,{id:"refresh-keys",variant:"regular",icon:(0,h.jsx)(i.DuK,{}),onClick:()=>A(!0)})})}),(0,h.jsx)(d.s,{scopes:[c.Ft.ADMIN_CONFIG_UPDATE],resource:c.C3,errorProps:{disabled:!0},children:(0,h.jsx)(f.Z,{tooltip:"Create ".concat(t," configuration"),children:(0,h.jsx)(i.zxk,{id:"create-idp",label:"Create Configuration",variant:"callAction",icon:(0,h.jsx)(i.dtP,{}),onClick:()=>D("/identity/idp/".concat(t,"/configurations/add-idp"))})})})]}),(0,h.jsx)(i.rjZ,{item:!0,xs:12,children:(0,h.jsx)(d.s,{scopes:[c.Ft.ADMIN_CONFIG_UPDATE],resource:c.C3,errorProps:{disabled:!0},children:(0,h.jsx)(i.wQF,{itemActions:k,columns:[{label:"Name",elementKey:"name"},{label:"Type",elementKey:"type"},{label:"Enabled",elementKey:"enabled"}],isLoading:_,records:I,entityName:"Keys",idField:"name"})})})]})})]})},m=()=>(0,h.jsx)(D,{idpType:"openid"})}}]); +//# sourceMappingURL=1329.b71d618a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1329.b71d618a.chunk.js.map b/portal-ui/build/static/js/1329.b71d618a.chunk.js.map new file mode 100644 index 000000000..962ced278 --- /dev/null +++ b/portal-ui/build/static/js/1329.b71d618a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1329.b71d618a.chunk.js","mappings":"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","sources":["screens/Console/IDP/DeleteIDPConfigurationModal.tsx","screens/Console/IDP/IDPConfigurations.tsx","screens/Console/IDP/IDPOpenIDConfigurations.tsx"],"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 .\n\nimport React, { Fragment } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteIDPConfigurationModalProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n idp: string;\n idpType: string;\n}\n\nconst DeleteIDPConfigurationModal = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n idp,\n idpType,\n}: IDeleteIDPConfigurationModalProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = (res: any) => {\n closeDeleteModalAndRefresh(true);\n dispatch(setServerNeedsRestart(res.restart === true));\n };\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!idp) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/idp/${idpType}/${idp}`);\n };\n\n const displayName = idp === \"_\" ? \"Default\" : idp;\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: deleteLoading,\n }}\n confirmationContent={\n \n Are you sure you want to delete IDP {displayName}{\" \"}\n configuration?
\n
\n }\n />\n );\n};\n\nexport default DeleteIDPConfigurationModal;\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 { AddIcon, Button, PageLayout, RefreshIcon, Grid, DataTable } from \"mds\";\nimport { useNavigate } from \"react-router-dom\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { useAppDispatch } from \"../../../store\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport DeleteIDPConfigurationModal from \"./DeleteIDPConfigurationModal\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\n\ntype IDPConfigurationsProps = {\n idpType: string;\n};\n\nconst IDPConfigurations = ({ idpType }: IDPConfigurationsProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedIDP, setSelectedIDP] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [records, setRecords] = useState([]);\n\n const deleteIDP = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CONFIG_UPDATE,\n ]);\n\n const viewIDP = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CONFIG_UPDATE,\n ]);\n\n const displayIDPs = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CONFIG_UPDATE,\n ]);\n\n useEffect(() => {\n fetchRecords();\n }, []);\n\n useEffect(() => {\n if (loading) {\n if (displayIDPs) {\n api.idp\n .listConfigurations(idpType)\n .then((res) => {\n setLoading(false);\n if (res.data.results) {\n setRecords(\n res.data.results.map((r: any) => {\n r.name = r.name === \"_\" ? \"Default\" : r.name;\n r.enabled = r.enabled === true ? \"Enabled\" : \"Disabled\";\n return r;\n }),\n );\n }\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n } else {\n setLoading(false);\n }\n }\n }, [loading, setLoading, setRecords, dispatch, displayIDPs, idpType]);\n\n const fetchRecords = () => {\n setLoading(true);\n };\n\n const confirmDeleteIDP = (idp: string) => {\n setDeleteOpen(true);\n idp = idp === \"Default\" ? \"_\" : idp;\n setSelectedIDP(idp);\n };\n\n const viewAction = (idp: any) => {\n let name = idp.name === \"Default\" ? \"_\" : idp.name;\n navigate(`/identity/idp/${idpType}/configurations/${name}`);\n };\n\n const closeDeleteModalAndRefresh = async (refresh: boolean) => {\n setDeleteOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !viewIDP,\n },\n {\n type: \"delete\",\n onClick: confirmDeleteIDP,\n sendOnlyId: true,\n disableButtonFunction: (idp: string) => !deleteIDP || idp === \"Default\",\n },\n ];\n\n useEffect(() => {\n dispatch(setHelpName(\"idp_configs\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {deleteOpen && (\n \n )}\n }\n />\n \n \n \n \n \n }\n onClick={() => setLoading(true)}\n />\n \n \n \n \n }\n onClick={() =>\n navigate(`/identity/idp/${idpType}/configurations/add-idp`)\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IDPConfigurations;\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 IDPConfigurations from \"./IDPConfigurations\";\n\nconst IDPOpenIDConfigurations = () => {\n return ;\n};\n\nexport default IDPOpenIDConfigurations;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","idp","idpType","dispatch","useAppDispatch","deleteLoading","invokeDeleteApi","useApi","res","setServerNeedsRestart","restart","err","setErrorSnackMessage","displayName","_jsx","ConfirmDialog","title","concat","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","onClose","confirmButtonProps","disabled","confirmationContent","_jsxs","Fragment","children","navigate","useNavigate","setDeleteOpen","useState","selectedIDP","setSelectedIDP","loading","setLoading","records","setRecords","deleteIDP","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","ADMIN_CONFIG_UPDATE","viewIDP","displayIDPs","useEffect","fetchRecords","api","listConfigurations","then","data","results","map","r","name","enabled","catch","errorToHandler","error","tableActions","type","onClick","disableButtonFunction","sendOnlyId","setHelpName","DeleteIDPConfigurationModal","async","refresh","PageHeaderWrapper","label","toUpperCase","actions","HelpMenu","PageLayout","Grid","container","item","xs","sx","actionsTray","justifyContent","gap","SecureComponent","scopes","resource","errorProps","TooltipWrapper","tooltip","Button","id","variant","icon","RefreshIcon","AddIcon","DataTable","itemActions","columns","elementKey","entityName","idField","IDPOpenIDConfigurations","IDPConfigurations"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1329.df839007.chunk.js b/portal-ui/build/static/js/1329.df839007.chunk.js deleted file mode 100644 index 353dbfc98..000000000 --- a/portal-ui/build/static/js/1329.df839007.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1329],{51270:function(e,n,t){var i=t(29439),r=t(72791),o=t(29945),s=t(87995),c=t(44690),a=t(9505),u=t(23508),l=t(80184);n.Z=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,d=e.idp,f=e.idpType,p=(0,c.TL)(),x=(0,a.Z)((function(e){n(!0),p((0,s.cN)(!0===e.restart))}),(function(e){return p((0,s.Ih)(e))})),j=(0,i.Z)(x,2),C=j[0],h=j[1];if(!d)return null;var D="_"===d?"Default":d;return(0,l.jsx)(u.Z,{title:"Delete ".concat(D),confirmText:"Delete",isOpen:t,titleIcon:(0,l.jsx)(o.NvT,{}),isLoading:C,onConfirm:function(){h("DELETE","/api/v1/idp/".concat(f,"/").concat(d))},onClose:function(){return n(!1)},confirmButtonProps:{disabled:C},confirmationContent:(0,l.jsxs)(r.Fragment,{children:["Are you sure you want to delete IDP ",(0,l.jsx)("b",{children:D})," ","configuration? ",(0,l.jsx)("br",{})]})})}},31329:function(e,n,t){t.r(n),t.d(n,{default:function(){return Z}});var i=t(72791),r=t(1413),o=t(74165),s=t(15861),c=t(29439),a=t(29945),u=t(57689),l=t(31776),d=t(82342),f=t(44690),p=t(56087),x=t(38442),j=t(87995),C=t(23814),h=t(27454),D=t(51270),m=t(47974),y=t(99670),b=t(80184),F=function(e){var n=e.idpType,t=(0,f.TL)(),F=(0,u.s0)(),Z=(0,i.useState)(!1),_=(0,c.Z)(Z,2),A=_[0],I=_[1],T=(0,i.useState)(""),g=(0,c.Z)(T,2),N=g[0],v=g[1],E=(0,i.useState)(!1),k=(0,c.Z)(E,2),P=k[0],O=k[1],M=(0,i.useState)([]),w=(0,c.Z)(M,2),U=w[0],G=w[1],K=(0,x.F)(p.C3,[p.Ft.ADMIN_CONFIG_UPDATE]),L=(0,x.F)(p.C3,[p.Ft.ADMIN_CONFIG_UPDATE]),S=(0,x.F)(p.C3,[p.Ft.ADMIN_CONFIG_UPDATE]);(0,i.useEffect)((function(){R()}),[]),(0,i.useEffect)((function(){P&&(S?l.h.idp.listConfigurations(n).then((function(e){O(!1),e.data.results&&G(e.data.results.map((function(e){return e.name="_"===e.name?"Default":e.name,e.enabled=!0===e.enabled?"Enabled":"Disabled",e})))})).catch((function(e){O(!1),t((0,j.Ih)((0,d.g)(e.error)))})):O(!1))}),[P,O,G,t,S,n]);var R=function(){O(!0)},B=function(){var e=(0,s.Z)((0,o.Z)().mark((function e(n){return(0,o.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:I(!1),n&&R();case 2:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),z=[{type:"view",onClick:function(e){var t="Default"===e.name?"_":e.name;F("/identity/idp/".concat(n,"/configurations/").concat(t))},disableButtonFunction:function(){return!L}},{type:"delete",onClick:function(e){I(!0),v(e="Default"===e?"_":e)},sendOnlyId:!0,disableButtonFunction:function(e){return!K||"Default"===e}}];return(0,i.useEffect)((function(){t((0,j.Sc)("idp_configs"))}),[]),(0,b.jsxs)(i.Fragment,{children:[A&&(0,b.jsx)(D.Z,{deleteOpen:A,idp:N,idpType:n,closeDeleteModalAndRefresh:B}),(0,b.jsx)(m.Z,{label:"".concat(n.toUpperCase()," Configurations"),actions:(0,b.jsx)(y.Z,{})}),(0,b.jsx)(a.Xgh,{children:(0,b.jsxs)(a.rjZ,{container:!0,children:[(0,b.jsxs)(a.rjZ,{item:!0,xs:12,sx:(0,r.Z)((0,r.Z)({},C.OR.actionsTray),{},{justifyContent:"flex-end",gap:8}),children:[(0,b.jsx)(x.s,{scopes:[p.Ft.ADMIN_CONFIG_UPDATE],resource:p.C3,errorProps:{disabled:!0},children:(0,b.jsx)(h.Z,{tooltip:"Refresh",children:(0,b.jsx)(a.zxk,{id:"refresh-keys",variant:"regular",icon:(0,b.jsx)(a.DuK,{}),onClick:function(){return O(!0)}})})}),(0,b.jsx)(x.s,{scopes:[p.Ft.ADMIN_CONFIG_UPDATE],resource:p.C3,errorProps:{disabled:!0},children:(0,b.jsx)(h.Z,{tooltip:"Create ".concat(n," configuration"),children:(0,b.jsx)(a.zxk,{id:"create-idp",label:"Create Configuration",variant:"callAction",icon:(0,b.jsx)(a.dtP,{}),onClick:function(){return F("/identity/idp/".concat(n,"/configurations/add-idp"))}})})})]}),(0,b.jsx)(a.rjZ,{item:!0,xs:12,children:(0,b.jsx)(x.s,{scopes:[p.Ft.ADMIN_CONFIG_UPDATE],resource:p.C3,errorProps:{disabled:!0},children:(0,b.jsx)(a.wQF,{itemActions:z,columns:[{label:"Name",elementKey:"name"},{label:"Type",elementKey:"type"},{label:"Enabled",elementKey:"enabled"}],isLoading:P,records:U,entityName:"Keys",idField:"name"})})})]})})]})},Z=function(){return(0,b.jsx)(F,{idpType:"openid"})}}}]); -//# sourceMappingURL=1329.df839007.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1329.df839007.chunk.js.map b/portal-ui/build/static/js/1329.df839007.chunk.js.map deleted file mode 100644 index 108b5a525..000000000 --- a/portal-ui/build/static/js/1329.df839007.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1329.df839007.chunk.js","mappings":"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","sources":["screens/Console/IDP/DeleteIDPConfigurationModal.tsx","screens/Console/IDP/IDPConfigurations.tsx","screens/Console/IDP/IDPOpenIDConfigurations.tsx"],"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 .\n\nimport React, { Fragment } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteIDPConfigurationModalProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n idp: string;\n idpType: string;\n}\n\nconst DeleteIDPConfigurationModal = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n idp,\n idpType,\n}: IDeleteIDPConfigurationModalProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = (res: any) => {\n closeDeleteModalAndRefresh(true);\n dispatch(setServerNeedsRestart(res.restart === true));\n };\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!idp) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/idp/${idpType}/${idp}`);\n };\n\n const displayName = idp === \"_\" ? \"Default\" : idp;\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: deleteLoading,\n }}\n confirmationContent={\n \n Are you sure you want to delete IDP {displayName}{\" \"}\n configuration?
\n
\n }\n />\n );\n};\n\nexport default DeleteIDPConfigurationModal;\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 { AddIcon, Button, PageLayout, RefreshIcon, Grid, DataTable } from \"mds\";\nimport { useNavigate } from \"react-router-dom\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { useAppDispatch } from \"../../../store\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport DeleteIDPConfigurationModal from \"./DeleteIDPConfigurationModal\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\n\ntype IDPConfigurationsProps = {\n idpType: string;\n};\n\nconst IDPConfigurations = ({ idpType }: IDPConfigurationsProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedIDP, setSelectedIDP] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [records, setRecords] = useState([]);\n\n const deleteIDP = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CONFIG_UPDATE,\n ]);\n\n const viewIDP = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CONFIG_UPDATE,\n ]);\n\n const displayIDPs = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CONFIG_UPDATE,\n ]);\n\n useEffect(() => {\n fetchRecords();\n }, []);\n\n useEffect(() => {\n if (loading) {\n if (displayIDPs) {\n api.idp\n .listConfigurations(idpType)\n .then((res) => {\n setLoading(false);\n if (res.data.results) {\n setRecords(\n res.data.results.map((r: any) => {\n r.name = r.name === \"_\" ? \"Default\" : r.name;\n r.enabled = r.enabled === true ? \"Enabled\" : \"Disabled\";\n return r;\n }),\n );\n }\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n } else {\n setLoading(false);\n }\n }\n }, [loading, setLoading, setRecords, dispatch, displayIDPs, idpType]);\n\n const fetchRecords = () => {\n setLoading(true);\n };\n\n const confirmDeleteIDP = (idp: string) => {\n setDeleteOpen(true);\n idp = idp === \"Default\" ? \"_\" : idp;\n setSelectedIDP(idp);\n };\n\n const viewAction = (idp: any) => {\n let name = idp.name === \"Default\" ? \"_\" : idp.name;\n navigate(`/identity/idp/${idpType}/configurations/${name}`);\n };\n\n const closeDeleteModalAndRefresh = async (refresh: boolean) => {\n setDeleteOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !viewIDP,\n },\n {\n type: \"delete\",\n onClick: confirmDeleteIDP,\n sendOnlyId: true,\n disableButtonFunction: (idp: string) => !deleteIDP || idp === \"Default\",\n },\n ];\n\n useEffect(() => {\n dispatch(setHelpName(\"idp_configs\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {deleteOpen && (\n \n )}\n }\n />\n \n \n \n \n \n }\n onClick={() => setLoading(true)}\n />\n \n \n \n \n }\n onClick={() =>\n navigate(`/identity/idp/${idpType}/configurations/add-idp`)\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IDPConfigurations;\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 IDPConfigurations from \"./IDPConfigurations\";\n\nconst IDPOpenIDConfigurations = () => {\n return ;\n};\n\nexport default IDPOpenIDConfigurations;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","idp","idpType","dispatch","useAppDispatch","_useApi","useApi","res","setServerNeedsRestart","restart","err","setErrorSnackMessage","_useApi2","_slicedToArray","deleteLoading","invokeDeleteApi","displayName","_jsx","ConfirmDialog","title","concat","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onClose","confirmButtonProps","disabled","confirmationContent","_jsxs","Fragment","children","navigate","useNavigate","_useState","useState","_useState2","setDeleteOpen","_useState3","_useState4","selectedIDP","setSelectedIDP","_useState5","_useState6","loading","setLoading","_useState7","_useState8","records","setRecords","deleteIDP","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","ADMIN_CONFIG_UPDATE","viewIDP","displayIDPs","useEffect","fetchRecords","api","listConfigurations","then","data","results","map","r","name","enabled","catch","errorToHandler","error","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","refresh","wrap","_context","prev","next","stop","_x","apply","arguments","tableActions","type","onClick","disableButtonFunction","sendOnlyId","setHelpName","DeleteIDPConfigurationModal","PageHeaderWrapper","label","toUpperCase","actions","HelpMenu","PageLayout","Grid","container","item","xs","sx","_objectSpread","actionsTray","justifyContent","gap","SecureComponent","scopes","resource","errorProps","TooltipWrapper","tooltip","Button","id","variant","icon","RefreshIcon","AddIcon","DataTable","itemActions","columns","elementKey","entityName","idField","IDPConfigurations"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1432.1b192c18.chunk.js b/portal-ui/build/static/js/1432.1b192c18.chunk.js deleted file mode 100644 index 469964915..000000000 --- a/portal-ui/build/static/js/1432.1b192c18.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1432,4770],{59447:function(e,n,t){var i=t(93433),o=t(29439),a=t(72791),r=t(26181),l=t.n(r),s=t(29945),c=t(80184);n.Z=function(e){var n=e.elements,t=e.name,r=e.label,u=e.tooltip,d=void 0===u?"":u,f=e.commonPlaceholder,p=void 0===f?"":f,h=e.onChange,m=e.withBorder,v=void 0!==m&&m,x=(0,a.useState)([""]),g=(0,o.Z)(x,2),b=g[0],y=g[1],j=(0,a.createRef)();(0,a.useEffect)((function(){if(1===b.length&&""===b[0]&&n&&""!==n){var e=n.split(",");e.push(""),y(e)}}),[n,b]),(0,a.useEffect)((function(){if(b.length>1){var e=j.current;e&&e.scrollIntoView(!1)}}),[b,j]);var k=(0,a.useCallback)((function(e){h(e)}),[h]),_=(0,a.useRef)(!0);(0,a.useEffect)((function(){if(_.current)_.current=!1;else{var e=b.filter((function(e){return""!==e.trim()})).join(",");k(e)}}),[b]);var C=function(e){e.persist();var n=(0,i.Z)(b),t=l()(e.target,"dataset.index","0");n[parseInt(t)]=e.target.value,y(n)},S=b.map((function(e,n){return(0,c.jsx)(s.Wzg,{id:"".concat(t,"-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:b[n],onChange:C,index:n,placeholder:p,overlayIcon:n===b.length-1?(0,c.jsx)(s.dtP,{}):null,overlayAction:function(){!function(e){if(""!==e[e.length-1].trim()){var n=(0,i.Z)(e);n.push(""),y(n)}}(b)}},"csv-multi-".concat(t,"-").concat(n.toString()))}));return(0,c.jsx)(a.Fragment,{children:(0,c.jsxs)(s.xuv,{sx:{display:"flex"},className:"inputItem",children:[(0,c.jsxs)(s.AZs,{sx:{alignItems:"flex-start"},children:[(0,c.jsx)("span",{children:r}),""!==d&&(0,c.jsx)(s.xuv,{sx:{marginLeft:5,display:"flex",alignItems:"center","& .min-icon":{width:13}},children:(0,c.jsx)(s.ua7,{tooltip:d,placement:"top",children:(0,c.jsx)(s.xuv,{className:d,children:(0,c.jsx)(s.byK,{})})})})]}),(0,c.jsxs)(s.xuv,{withBorders:v,sx:{width:"100%",overflowY:"auto",height:150,position:"relative"},children:[S,(0,c.jsx)("div",{ref:j})]})]})})}},11432:function(e,n,t){t.r(n),t.d(n,{default:function(){return B}});var i=t(74165),o=t(15861),a=t(29439),r=t(72791),l=t(29945),s=t(58493),c=t(57689),u=t(26181),d=t.n(u),f=t(78687),p=t(31776),h=t(82342),m=t(87995),v=t(44690),x=t(93433),g=t(56028),b=t(23814),y=t(80184),j=function(e){var n=e.open,t=e.type,i=e.onCloseEndpoint,o=(0,r.useState)(""),s=(0,a.Z)(o,2),c=s[0],u=s[1],d=(0,r.useState)(""),f=(0,a.Z)(d,2),j=f[0],k=f[1],_=(0,r.useState)(""),C=(0,a.Z)(_,2),S=C[0],w=C[1],E=(0,r.useState)(!1),Z=(0,a.Z)(E,2),A=Z[0],I=Z[1],T=(0,r.useState)(["name","endpoint"]),q=(0,a.Z)(T,2),L=q[0],D=q[1],N=(0,r.useState)(["name","endpoint","auth-token"]),R=(0,a.Z)(N,2),z=R[0],W=R[1],P=(0,v.TL)(),F=function(e){W(z.filter((function(n){return n!==e})))},B=function(e,n){L.includes(e)&&n?D(L.filter((function(n){return n!==e}))):n||L.includes(e)||D([].concat((0,x.Z)(L),[e]))},M="Add new Webhook",O=(0,y.jsx)(l.tYf,{});switch(t){case"logger_webhook":M="New Logger Webhook",O=(0,y.jsx)(l.zD0,{});break;case"audit_webhook":M="New Audit Webhook",O=(0,y.jsx)(l.Pd4,{})}return(0,y.jsx)(r.Fragment,{children:(0,y.jsxs)(g.Z,{modalOpen:n,title:M,onClose:i,titleIcon:O,children:[(0,y.jsxs)(l.ltY,{containerPadding:!1,withBorders:!1,children:[(0,y.jsx)(l.Wzg,{id:"name",name:"name",onChange:function(e){F("name"),u(e.target.value),B("name",e.target.validity.valid)},error:L.includes("name")&&!z.includes("name")?"Invalid Name":"",label:"Name",value:c,pattern:"^(?=.*[a-zA-Z0-9]).{1,}$",required:!0}),(0,y.jsx)(l.Wzg,{id:"endpoint",name:"endpoint",onChange:function(e){F("endpoint"),k(e.target.value),B("endpoint",e.target.validity.valid)},error:L.includes("endpoint")&&!z.includes("endpoint")?"Invalid Endpoint set":"",label:"Endpoint",value:j,pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-.\\/]*)?$",required:!0}),(0,y.jsx)(l.Wzg,{id:"auth-token",name:"auth-token",onChange:function(e){F("auth-token"),w(e.target.value)},label:"Auth Token",value:S})]}),A&&(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{marginBottom:10},children:(0,y.jsx)(l.kod,{})}),(0,y.jsxs)(l.rjZ,{item:!0,xs:12,sx:b.ID.modalButtonBar,children:[(0,y.jsx)(l.zxk,{id:"reset",type:"button",variant:"regular",disabled:A,onClick:i,label:"Cancel",sx:{marginRight:10}}),(0,y.jsx)(l.zxk,{id:"save-lifecycle",type:"submit",variant:"callAction",color:"primary",disabled:A||0!==L.length,label:"Save",onClick:function(){if(!A&&0===L.length)if(""!==c.trim())if(""!==j.trim()){I(!0);var e={key_values:[{key:"endpoint",value:j},{key:"auth_token",value:S}],arn_resource_id:c};p.h.configs.setConfig(t,e).then((function(e){I(!1),P((0,m.cN)(e.data.restart||!1)),e.data.restart||P((0,m.y1)("Configuration saved successfully")),i(),P((0,m.Ie)(!0))})).catch((function(e){I(!1),P((0,m.Ih)((0,h.g)(e.error)))}))}else D([].concat((0,x.Z)(L),["endpoint"]));else D([].concat((0,x.Z)(L),["name"]))}})]})]})})},k=t(23508),_=function(e){var n=e.modalOpen,t=e.onClose,i=e.selectedARN,o=(0,r.useState)(!1),s=(0,a.Z)(o,2),c=s[0],u=s[1],d=(0,v.TL)();(0,r.useEffect)((function(){c&&p.h.configs.resetConfig(i).then((function(){u(!1),d((0,m.cN)(!0)),d((0,m.Ie)(!0)),t()})).catch((function(e){u(!1),d((0,m.Ih)((0,h.g)(e.error)))}))}),[c,d,t,i]);var f=!i.includes(":"),x="Are you sure you want to delete the Configured Endpoint";return f&&(x="Are you sure you want to reset the Default"),(0,y.jsx)(k.Z,{title:f?"Reset Default Webhook":"Delete Webhook",confirmText:f?"Reset":"Delete",isOpen:n,isLoading:c,onConfirm:function(){u(!0)},titleIcon:(0,y.jsx)(l.NvT,{}),onClose:t,confirmationContent:(0,y.jsxs)(r.Fragment,{children:["".concat(x," "),(0,y.jsx)("strong",{children:i}),"?"]})})},C=function(e){var n,t,i,o,c,u,d=e.open,f=e.type,j=e.endpointInfo,k=e.onCloseEndpoint,_=(0,r.useState)(""),C=(0,a.Z)(_,2),S=C[0],w=C[1],E=(0,r.useState)(""),Z=(0,a.Z)(E,2),A=Z[0],I=Z[1],T=(0,r.useState)(""),q=(0,a.Z)(T,2),L=q[0],D=q[1],N=(0,r.useState)("on"),R=(0,a.Z)(N,2),z=R[0],W=R[1],P=(0,r.useState)(!1),F=(0,a.Z)(P,2),B=F[0],M=F[1],O=(0,r.useState)([]),K=(0,a.Z)(O,2),Y=K[0],V=K[1],H=(0,v.TL)();(0,r.useEffect)((function(){if(j){var e=j.key_values.find((function(e){return"endpoint"===e.key})),n=j.key_values.find((function(e){return"auth_token"===e.key})),t=j.key_values.find((function(e){return"enable"===e.key})),i=[];if(e){var o=e.value;""===o?i.push("endpoint"):I(o)}if(n){var a=n.value;""===a?i.push("auth-token"):D(a)}t&&"off"===t.value&&W(t.value),w(j.name||""),V(i)}}),[j]);var U=!S.includes(":"),G=j.key_values.filter((function(e){return!!e.env_override})),$=(0,s.F_)(G),J="Edit Webhook",Q=(0,y.jsx)(l.tYf,{});switch(f){case"logger_webhook":J="Edit ".concat(U?" the Default ":"","Logger Webhook"),Q=(0,y.jsx)(l.zD0,{});break;case"audit_webhook":J="Edit ".concat(U?" the Default ":"","Audit Webhook"),Q=(0,y.jsx)(l.Pd4,{})}return G.length>0&&(J="View env variable Webhook"),(0,y.jsx)(r.Fragment,{children:(0,y.jsx)(g.Z,{modalOpen:d,title:"".concat(J).concat(U?"":" - ".concat(S)),onClose:k,titleIcon:Q,children:(0,y.jsx)(l.ltY,{withBorders:!1,containerPadding:!1,children:G.length>0?(0,y.jsxs)(r.Fragment,{children:[(0,y.jsx)(l.bSr,{label:"Enabled",sx:{width:"100%"},actionButton:(0,y.jsx)(l.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,y.jsx)(l.ua7,{tooltip:$.enable?"This value is set from the ".concat((null===(n=$.enable)||void 0===n?void 0:n.overrideEnv)||"N/A"," environment variable"):"",placement:"left",children:(0,y.jsx)(l.zD0,{style:{width:20}})})}),children:(null===(t=$.enable)||void 0===t?void 0:t.value)||"-"}),(0,y.jsx)(l.bSr,{label:"Endpoint",sx:{width:"100%"},actionButton:(0,y.jsx)(l.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,y.jsx)(l.ua7,{tooltip:$.enable?"This value is set from the ".concat((null===(i=$.endpoint)||void 0===i?void 0:i.overrideEnv)||"N/A"," environment variable"):"",placement:"left",children:(0,y.jsx)(l.zD0,{style:{width:20}})})}),children:(null===(o=$.endpoint)||void 0===o?void 0:o.value)||"-"}),(0,y.jsx)(l.bSr,{label:"Auth Token",sx:{width:"100%"},actionButton:(0,y.jsx)(l.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,y.jsx)(l.ua7,{tooltip:$.enable?"This value is set from the ".concat((null===(c=$.auth_token)||void 0===c?void 0:c.overrideEnv)||"N/A"," environment variable"):"",placement:"left",children:(0,y.jsx)(l.zD0,{style:{width:20}})})}),children:(null===(u=$.auth_token)||void 0===u?void 0:u.value)||"-"})]}):(0,y.jsxs)(r.Fragment,{children:[(0,y.jsx)(l.rsf,{onChange:function(e){var n=e.target.checked?"on":"off";W(n)},id:"endpoint_enabled",name:"endpoint_enabled",label:"Enabled",value:"switch_on",checked:"on"===z}),(0,y.jsx)(l.Wzg,{id:"endpoint",name:"endpoint",onChange:function(e){I(e.target.value),function(e,n){Y.includes(e)&&n?V(Y.filter((function(n){return n!==e}))):n||Y.includes(e)||V([].concat((0,x.Z)(Y),[e]))}("endpoint",e.target.validity.valid)},error:Y.includes("endpoint")?"Invalid Endpoint set":"",label:"Endpoint",value:A,pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-.\\/]*)?$",required:!0}),(0,y.jsx)(l.Wzg,{id:"auth-token",name:"auth-token",onChange:function(e){D(e.target.value)},label:"Auth Token",value:L}),B&&(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{marginBottom:10},children:(0,y.jsx)(l.kod,{})}),(0,y.jsxs)(l.rjZ,{item:!0,sx:b.ID.modalButtonBar,children:[(0,y.jsx)(l.zxk,{id:"reset",type:"button",variant:"regular",disabled:B,onClick:k,label:"Cancel"}),(0,y.jsx)(l.zxk,{id:"save-lifecycle",type:"submit",variant:"callAction",color:"primary",disabled:B||0!==Y.length,label:"Update",onClick:function(){if(!B&&0===Y.length)if(A&&""!==A.trim()){M(!0);var e={key_values:[{key:"endpoint",value:A},{key:"auth_token",value:L},{key:"enable",value:z}]};p.h.configs.setConfig(S,e).then((function(e){M(!1),H((0,m.cN)(e.data.restart||!1)),e.data.restart||H((0,m.y1)("Configuration saved successfully")),k(),H((0,m.Ie)(!0))})).catch((function(e){M(!1),H((0,m.Ih)((0,h.g)(e.error)))}))}else V([].concat((0,x.Z)(Y),["endpoint"]))}})]})]})})})})},S=function(e){e.setResetConfigurationOpen;var n=e.WebhookSettingslist,t=e.type,i=(0,r.useState)(!1),o=(0,a.Z)(i,2),s=o[0],c=o[1],u=(0,r.useState)(!1),d=(0,a.Z)(u,2),f=d[0],p=d[1],h=(0,r.useState)(!1),m=(0,a.Z)(h,2),v=m[0],x=m[1],g=(0,r.useState)(""),b=(0,a.Z)(g,2),k=b[0],S=b[1],w=(0,r.useState)(null),E=(0,a.Z)(w,2),Z=E[0],A=E[1],I=[{type:"view",onClick:function(e){e.name&&(x(!0),A(e))}},{type:"delete",onClick:function(e){e.name&&(p(!0),S(e.name))},disableButtonFunction:function(e){var t=n.find((function(n){return n.name===e}));if(t){var i,o=null===(i=t.key_values)||void 0===i?void 0:i.filter((function(e){return!!e.env_override}));return!!(o&&o.length>0)}return!1}}];return(0,y.jsxs)(l.rjZ,{container:!0,children:[s&&(0,y.jsx)(j,{open:s,type:t,onCloseEndpoint:function(){c(!1)}}),f&&(0,y.jsx)(_,{modalOpen:f,onClose:function(){p(!1),S("")},selectedARN:k,type:t}),v&&Z&&(0,y.jsx)(C,{open:v,type:t,endpointInfo:Z,onCloseEndpoint:function(){x(!1),A(null)}}),(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-end"},children:(0,y.jsx)(l.zxk,{id:"newWebhook",variant:"callAction",onClick:function(){c(!0)},children:"New Endpoint"})}),(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{padding:"0 10px 10px"},children:(0,y.jsxs)(r.Fragment,{children:[(0,y.jsx)("h3",{children:"Currently Configured Endpoints"}),(0,y.jsx)(l.wQF,{columns:[{label:"Status",elementKey:"key_values",renderFunction:function(e){var n=e.find((function(e){return"enable"===e.key}));if(null!==n&&void 0!==n&&n.env_override){var t=null!==n&&void 0!==n&&n.env_override.value&&"on"!==(null===n||void 0===n?void 0:n.env_override.value)&&null!==n&&void 0!==n&&n.env_override.value?"Disabled":"Enabled";return(0,y.jsxs)(l.rjZ,{container:!0,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyItems:"start",fontSize:"8px"},children:[(0,y.jsx)(l.zD0,{style:{fill:"#052F51",width:"14px"}}),t?"Enabled":"Disabled"]})}return n&&"on"!==n.value&&n.value?(0,y.jsxs)(l.rjZ,{container:!0,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyItems:"start",fontSize:"8px"},children:[(0,y.jsx)(l.qwj,{style:{fill:"#C83B51",width:14,height:14}}),"Disabled"]}):(0,y.jsxs)(l.rjZ,{container:!0,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyItems:"start",fontSize:"8px"},children:[(0,y.jsx)(l.Yp9,{style:{fill:"#4CCB92",width:14,height:14}}),"Enabled"]})},width:50},{label:"Name",elementKey:"name"},{label:"Endpoint",elementKey:"key_values",renderFunction:function(e){var n=e.find((function(e){return"endpoint"===e.key}));return n?n.env_override?n.env_override.value:n.value:""}}],itemActions:I,idField:"name",isLoading:!1,records:n,entityName:"endpoints",customPaperHeight:"calc(100vh - 750px)"})]})})]})},w=t(94770),E=t(90767),Z=function(e){var n=e.selectedConfiguration,t=e.className,i=void 0===t?"":t,o=(0,v.TL)(),u=(0,c.s0)(),x=(0,c.TH)().pathname,g=void 0===x?"":x,b=g.substring(g.lastIndexOf("/")+1);b="settings"===b?"region":b;var j=(0,r.useState)([]),k=(0,a.Z)(j,2),_=k[0],C=k[1],Z=(0,r.useState)(!1),A=(0,a.Z)(Z,2),I=A[0],T=A[1],q=(0,r.useState)([]),L=(0,a.Z)(q,2),D=L[0],N=L[1],R=(0,r.useState)([]),z=(0,a.Z)(R,2),W=z[0],P=z[1],F=(0,r.useState)(!1),B=(0,a.Z)(F,2),M=B[0],O=B[1],K=(0,r.useState)({}),Y=(0,a.Z)(K,2),V=Y[0],H=Y[1],U=(0,f.v9)((function(e){return e.system.loadingConfigurations}));(0,r.useEffect)((function(){o((0,m.Ie)(!0))}),[b,o]),(0,r.useEffect)((function(){if(U){var e=d()(n,"configuration_id",!1);if(e)return void p.h.configs.configInfo(e).then((function(n){P(n.data);var t=d()(n.data[0],"key_values",[]),i=s.DP[e].map((function(e){var n=t.find((function(n){return n.key===e.name})),i=(null===n||void 0===n?void 0:n.value)||"";return{key:e.name,value:e.customValueProcess?e.customValueProcess(i):i,env_override:null===n||void 0===n?void 0:n.env_override}}));N(i),H((0,s.F_)(i)),o((0,m.Ie)(!1))})).catch((function(e){o((0,m.Ie)(!1)),o((0,m.Ih)((0,h.g)(e.error)))}));o((0,m.Ie)(!1))}}),[U,n,o]),(0,r.useEffect)((function(){if(I){var e={key_values:(0,s.DD)(_)};p.h.configs.setConfig(n.configuration_id,e).then((function(e){T(!1),o((0,m.cN)(e.data.restart||!1)),o((0,m.Ie)(!0)),e.data.restart||o((0,m.y1)("Configuration saved successfully"))})).catch((function(e){T(!1),o((0,m.Ih)((0,h.g)(e.error)))}))}}),[I,o,n,_,u]);var G=(0,r.useCallback)((function(e){C(e)}),[C]),$=function(){O(!0)};return(0,y.jsx)(r.Fragment,{children:(0,y.jsxs)("div",{onMouseMove:function(){o((0,m.Sc)("settings_".concat(n.configuration_label)))},children:[M&&(0,y.jsx)(E.Z,{configurationName:n.configuration_id,closeResetModalAndRefresh:function(e){O(!1),o((0,m.cN)(e)),e&&o((0,m.Ie)(!0))},resetOpen:M}),U?(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{textAlign:"center",paddingTop:"15px"},children:(0,y.jsx)(l.aNw,{})}):(0,y.jsx)(l.xuv,{sx:{padding:"15px",height:"100%"},children:"logger_webhook"===n.configuration_id||"audit_webhook"===n.configuration_id?(0,y.jsx)(S,{WebhookSettingslist:W,setResetConfigurationOpen:$,type:n.configuration_id}):(0,y.jsx)(r.Fragment,{children:(0,y.jsxs)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),T(!0)},className:i,style:{height:"100%",display:"flex",flexFlow:"column"},children:[(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{display:"grid",gridTemplateColumns:"1fr",gap:"10px"},children:(0,y.jsx)(w.default,{fields:s.DP[n.configuration_id],onChange:G,defaultVals:D,overrideEnv:V})}),(0,y.jsxs)(l.rjZ,{item:!0,xs:12,sx:{paddingTop:"15px ",textAlign:"right",maxHeight:"60px",display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[(0,y.jsx)(l.zxk,{type:"button",id:"restore-defaults",variant:"secondary",onClick:$,label:"Restore Defaults"}),"\xa0 \xa0",(0,y.jsx)(l.zxk,{id:"save",type:"submit",variant:"callAction",disabled:I,label:"Save"})]})]})})})]})})},A=function(){var e=(0,c.TH)().pathname,n=void 0===e?"":e,t=n.substring(n.lastIndexOf("/")+1),i=s.bx.find((function(e){return e.configuration_id===t})),o="".concat(t);return(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{height:"100%","& .identity_ldap, .api":{"& label":{minWidth:220,marginRight:0}}},children:i&&(0,y.jsx)(Z,{className:"".concat(o),selectedConfiguration:i})})},I=t(56087),T=t(47974),q=t(9505),L=t(45248),D=t(99779),N=t(27454),R=function(){var e=(0,f.I0)(),n=(0,q.Z)((function(e){(0,L.zZ)(new Blob([window.atob(e.value)]),"minio-server-config-".concat(D.ou.now().toFormat("LL-dd-yyyy-HH-mm-ss"),".conf"))}),(function(n){e((0,m.Ih)(n))})),t=(0,a.Z)(n,2),i=t[0],o=t[1];return(0,y.jsx)(N.Z,{tooltip:"Warning! The resulting file will contain server configuration information in plain text",children:(0,y.jsx)(l.zxk,{id:"export-config",onClick:function(){o("GET","api/v1/configs/export")},icon:(0,y.jsx)(l.rG2,{}),label:"Export",variant:"regular",disabled:i})})},z=function(){var e=(0,c.s0)(),n=(0,f.I0)(),t=(0,f.v9)((function(e){return e.system.serverNeedsRestart})),i=(0,r.useState)(void 0),o=(0,a.Z)(i,2),s=o[0],u=o[1],d=(0,r.useRef)(null),p=(0,q.Z)((function(e){n((0,m.cN)(!0)),u(!0)}),(function(e){n((0,m.Ih)(e))})),h=(0,a.Z)(p,2),v=h[0],x=h[1];(0,r.useEffect)((function(){!t&&s&&e(0)}),[t,s,e]);return(0,y.jsxs)(r.Fragment,{children:[(0,y.jsx)("input",{type:"file",onChange:function(e){if(null!==e&&void 0!==e&&null!==e.target.files&&void 0!==e.target.files){e.preventDefault();var n=(0,a.Z)(e.target.files,1)[0],t=new FormData,i=new Blob([n],{type:n.type});t.append("file",i,n.name),x("POST","api/v1/configs/import",t),e.target.value=""}},style:{display:"none"},ref:d}),(0,y.jsx)(N.Z,{tooltip:"The file must be valid and should have valid config values",children:(0,y.jsx)(l.zxk,{id:"import-config",onClick:function(){d&&d.current&&d.current.click()},icon:(0,y.jsx)(l._8t,{}),label:"Import",variant:"regular",disabled:v})})]})},W=t(99670),P=["region"],F=["cache"],B=function(){var e=(0,c.TH)().pathname,n=void 0===e?"":e,t=(0,v.TL)(),u=(0,c.s0)(),d=(0,r.useState)([]),f=(0,a.Z)(d,2),x=f[0],g=f[1],b=(0,r.useCallback)((0,o.Z)((0,i.Z)().mark((function e(){return(0,i.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:p.h.configs.listConfig().then((function(e){var n;if(e&&null!==e&&void 0!==e&&e.data&&null!==e&&void 0!==e&&null!==(n=e.data)&&void 0!==n&&n.configurations){var t,i=((null===e||void 0===e||null===(t=e.data)||void 0===t?void 0:t.configurations)||[]).reduce((function(e,n){var t=n.key,i=void 0===t?"":t;return F.includes(i)||e.push(i),e}),[]);g(i)}})).catch((function(e){t((0,m.Ih)((0,h.g)(e)))}));case 1:case"end":return e.stop()}}),e)}))),[t]);(0,r.useEffect)((function(){b(),t((0,m.Sc)("settings_Region"))}),[]);var j=s.bx.filter((function(e){var n=e.configuration_id;return P.includes(n)||x.includes(n)||!x.length}));return(0,y.jsxs)(r.Fragment,{children:[(0,y.jsx)(T.Z,{label:"Settings",actions:(0,y.jsx)(W.Z,{})}),(0,y.jsxs)(l.Xgh,{children:[(0,y.jsxs)(l.rjZ,{item:!0,xs:12,id:"settings-container",children:[(0,y.jsx)(l.UHn,{icon:(0,y.jsx)(l.ewm,{}),title:"MinIO Configuration:",actions:(0,y.jsxs)(l.xuv,{sx:{display:"flex",gap:10},children:[(0,y.jsx)(z,{}),(0,y.jsx)(R,{})]}),sx:{marginBottom:15}}),(0,y.jsx)(l.mQc,{currentTabOrPath:n,onTabClick:function(e){u(e)},useRouteTabs:!0,options:j.map((function(e){var n,t=e.configuration_id,i=e.configuration_label,o=e.icon;return{tabConfig:{id:"settings-tab-".concat(i),label:i,value:t,icon:o,to:(n=t,"".concat(I.gA.SETTINGS,"/").concat(n))}}})),routes:(0,y.jsxs)(c.Z5,{children:[j.map((function(e){return(0,y.jsx)(c.AW,{path:"".concat(e.configuration_id),element:(0,y.jsx)(A,{})},"configItem-".concat(e.configuration_label))})),(0,y.jsx)(c.AW,{path:"/",element:(0,y.jsx)(c.Fg,{to:"".concat(I.gA.SETTINGS,"/region")})})]})})]}),(0,y.jsx)(l.rjZ,{item:!0,xs:12,sx:{paddingTop:"15px"},children:(0,y.jsx)(l.KfX,{title:"Learn more about Configurations",iconComponent:(0,y.jsx)(l.ewm,{}),help:(0,y.jsxs)(r.Fragment,{children:["MinIO supports a variety of configurations ranging from encryption, compression, region, notifications, etc.",(0,y.jsx)("br",{}),(0,y.jsx)("br",{}),"You can learn more at our"," ",(0,y.jsx)("a",{href:"https://min.io/docs/minio/linux/reference/minio-mc-admin/mc-admin-config.html?ref=con#id4",target:"_blank",rel:"noopener",children:"documentation"}),"."]})})})]})]})}},58493:function(e,n,t){t.d(n,{DD:function(){return u},DP:function(){return c},F_:function(){return f},_0:function(){return d},bx:function(){return s}});var i=t(4942),o=t(1413),a=t(93433),r=(t(72791),t(29945)),l=t(80184),s=[{icon:(0,l.jsx)(r.N1D,{}),configuration_id:"region",configuration_label:"Region"},{icon:(0,l.jsx)(r.jG4,{}),configuration_id:"compression",configuration_label:"Compression"},{icon:(0,l.jsx)(r.dNJ,{}),configuration_id:"api",configuration_label:"API"},{icon:(0,l.jsx)(r.JOn,{}),configuration_id:"heal",configuration_label:"Heal"},{icon:(0,l.jsx)(r.oTr,{}),configuration_id:"scanner",configuration_label:"Scanner"},{icon:(0,l.jsx)(r._m8,{}),configuration_id:"etcd",configuration_label:"Etcd"},{icon:(0,l.jsx)(r.zD0,{}),configuration_id:"logger_webhook",configuration_label:"Logger Webhook"},{icon:(0,l.jsx)(r.Pd4,{}),configuration_id:"audit_webhook",configuration_label:"Audit Webhook"},{icon:(0,l.jsx)(r.I$E,{}),configuration_id:"audit_kafka",configuration_label:"Audit Kafka"}],c={region:[{name:"name",required:!0,label:"Server Location",tooltip:'Name of the location of the server e.g. "us-west-rack2"',type:"string",placeholder:"e.g. us-west-rack-2"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],compression:[{name:"extensions",required:!1,label:"Extensions",tooltip:'Extensions to compress e.g. ".txt", ".log" or ".csv" - you can write one per field',type:"csv",placeholder:"Enter an Extension",withBorder:!0},{name:"mime_types",required:!1,label:"Mime Types",tooltip:'Mime types e.g. "text/*", "application/json" or "application/xml" - you can write one per field',type:"csv",placeholder:"Enter a Mime Type",withBorder:!0}],api:[{name:"requests_max",required:!1,label:"Requests Max",tooltip:"Maximum number of concurrent requests, e.g. '1600'",type:"number",placeholder:"Enter Requests Max"},{name:"cors_allow_origin",required:!1,label:"Cors Allow Origin",tooltip:"List of origins allowed for CORS requests",type:"csv",placeholder:"Enter allowed origin e.g. https://example.com"},{name:"replication_workers",required:!1,label:"Replication Workers",tooltip:"Number of replication workers, defaults to 100",type:"number",placeholder:"Enter Replication Workers"},{name:"replication_failed_workers",required:!1,label:"Replication Failed Workers",tooltip:"Number of replication workers for recently failed replicas, defaults to 4",type:"number",placeholder:"Enter Replication Failed Workers"}],heal:[{name:"bitrotscan",required:!1,label:"Bitrot Scan",tooltip:"Perform bitrot scan on disks when checking objects during scanner",type:"on|off"},{name:"max_sleep",required:!1,label:"Max Sleep",tooltip:"Maximum sleep duration between objects to slow down heal operation, e.g. 2s",type:"duration",placeholder:"Enter Max Sleep Duration"},{name:"max_io",required:!1,label:"Max IO",tooltip:"Maximum IO requests allowed between objects to slow down heal operation, e.g. 3",type:"number",placeholder:"Enter Max IO"}],scanner:[{name:"delay",required:!1,label:"Delay Multiplier",tooltip:"Scanner delay multiplier, defaults to '10.0'",type:"number",placeholder:"Enter Delay"},{name:"max_wait",required:!1,label:"Max Wait",tooltip:"Maximum wait time between operations, defaults to '15s'",type:"duration",placeholder:"Enter Max Wait"},{name:"cycle",required:!1,label:"Cycle",tooltip:"Time duration between scanner cycles, defaults to '1m'",type:"duration",placeholder:"Enter Cycle"}],etcd:[{name:"endpoints",required:!0,label:"Endpoints",tooltip:'List of etcd endpoints e.g. "http://localhost:2379" - you can write one per field',type:"csv",placeholder:"Enter Endpoint"},{name:"path_prefix",required:!1,label:"Path Prefix",tooltip:'Namespace prefix to isolate tenants e.g. "customer1/"',type:"string",placeholder:"Enter Path Prefix"},{name:"coredns_path",required:!1,label:"Coredns Path",tooltip:'Shared bucket DNS records, default is "/skydns"',type:"string",placeholder:"Enter Coredns Path"},{name:"client_cert",required:!1,label:"Client Cert",tooltip:"Client cert for mTLS authentication",type:"string",placeholder:"Enter Client Cert"},{name:"client_cert_key",required:!1,label:"Client Cert Key",tooltip:"Client cert key for mTLS authentication",type:"string",placeholder:"Enter Client Cert Key"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],logger_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}],audit_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}],audit_kafka:[{name:"enable",required:!1,label:"Enable",tooltip:"Enable audit_kafka target",type:"on|off",customValueProcess:function(e){return""===e||"on"===e?"on":"off"}},{name:"brokers",required:!0,label:"Brokers",type:"csv",placeholder:"Enter Kafka Broker"},{name:"topic",required:!1,label:"Topic",type:"string",placeholder:"Enter Kafka Topic",tooltip:"Kafka topic used for bucket notifications"},{name:"sasl",required:!1,label:"Use SASL",tooltip:"Enable SASL (Simple Authentication and Security Layer) authentication",type:"on|off"},{name:"sasl_username",required:!1,label:"SASL Username",type:"string",placeholder:"Enter SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication"},{name:"sasl_password",required:!1,label:"SASL Password",type:"password",placeholder:"Enter SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication"},{name:"sasl_mechanism",required:!1,label:"SASL Mechanism",type:"string",placeholder:"Enter SASL Mechanism",tooltip:"SASL authentication mechanism"},{name:"tls",required:!1,label:"Use TLS",tooltip:"Enable TLS (Transport Layer Security)",type:"on|off"},{name:"tls_skip_verify",required:!1,label:"Skip TLS Verification",tooltip:"Trust server TLS without verification",type:"on|off"},{name:"client_tls_cert",required:!1,label:"Client Cert",tooltip:"Client cert for mTLS authentication",type:"string",placeholder:"Enter Client Cert"},{name:"client_tls_key",required:!1,label:"Client Cert Key",tooltip:"Client cert key for mTLS authentication",type:"string",placeholder:"Enter Client Cert Key"},{name:"tls_client_auth",required:!1,label:"TLS Client Auth",tooltip:"ClientAuth determines the Kafka server's policy for TLS client authorization",type:"string"},{name:"version",required:!1,label:"Version",tooltip:"Specify the version of the Kafka cluster",type:"string"}]},u=function(e){return e.filter((function(e){return""!==e.value}))},d=function(e,n,t){var i=e.target,o=i.value,r=i.checked,l=(0,a.Z)(t);return r?l.push(o):l=l.filter((function(e){return e!==o})),n(l),l},f=function(e){var n={};return e.forEach((function(e){if(e.env_override){var t={value:e.env_override.value||"",overrideEnv:e.env_override.name||""};n=(0,o.Z)((0,o.Z)({},n),{},(0,i.Z)({},e.key,t))}})),n}},94770:function(e,n,t){t.r(n),t.d(n,{valueDef:function(){return c}});var i=t(93433),o=t(29439),a=t(72791),r=t(29945),l=t(59447),s=t(80184),c=function(e,n,t){var i="on|off"===n?"off":"";if(t.length>0){var o=t.find((function(n){return n.key===e}));o&&(i=o.value||"")}return i};n.default=function(e){var n=e.onChange,t=e.fields,u=e.defaultVals,d=e.overrideEnv,f=(0,a.useState)([]),p=(0,o.Z)(f,2),h=p[0],m=p[1],v=t||[],x=u||[];(0,a.useEffect)((function(){var e=t.map((function(e){return{key:e.name,value:c(e.name,e.type,x)}}));m(e)}),[t,u]),(0,a.useEffect)((function(){n(h)}),[h]);var g=function(e,n,t){var o=(0,i.Z)(h);n=n.trim(),o[t]={key:e,value:n},m(o)},b=function(e,n){var t=h[n];if(t){var i=null===d||void 0===d?void 0:d["".concat(t.key)];if(i)return(0,s.jsx)(r.bSr,{label:e.label,actionButton:(0,s.jsx)(r.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,s.jsx)(r.ua7,{tooltip:"This value is set from the ".concat(i.overrideEnv," environment variable"),placement:"left",children:(0,s.jsx)(r.zD0,{style:{width:20}})})}),sx:{width:"100%"},children:i.value})}switch(e.type){case"on|off":var o=t?t.value:"off";return(0,s.jsx)(r.rsf,{onChange:function(t){var i=t.target.checked?"on":"off";g(e.name,i,n)},id:e.name,name:e.name,label:e.label,value:"switch_on",tooltip:e.tooltip,checked:"on"===o});case"csv":return(0,s.jsx)(l.Z,{elements:t?t.value:"",label:e.label,name:e.name,onChange:function(t){var i="";i=Array.isArray(t)?t.join(","):t,g(e.name,i,n)},tooltip:e.tooltip,commonPlaceholder:e.placeholder,withBorder:!0});case"comment":return(0,s.jsx)(r.q5m,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:t?t.value:"",onChange:function(t){return g(e.name,t.target.value,n)},placeholder:e.placeholder});default:return(0,s.jsx)(r.Wzg,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:t?t.value:"",onChange:function(t){return g(e.name,t.target.value,n)},placeholder:e.placeholder})}};return(0,s.jsx)(r.ltY,{withBorders:!1,containerPadding:!1,children:v.map((function(e,n){return(0,s.jsx)(a.Fragment,{children:b(e,n)},e.name)}))})}},90767:function(e,n,t){var i=t(29439),o=t(72791),a=t(31776),r=t(82342),l=t(23508),s=t(29945),c=t(87995),u=t(44690),d=t(80184);n.Z=function(e){var n=e.configurationName,t=e.closeResetModalAndRefresh,f=e.resetOpen,p=(0,u.TL)(),h=(0,o.useState)(!1),m=(0,i.Z)(h,2),v=m[0],x=m[1];(0,o.useEffect)((function(){v&&a.h.configs.resetConfig(n).then((function(){x(!1),t(!0)})).catch((function(e){x(!1),p((0,c.Ih)((0,r.g)(e.error)))}))}),[t,n,v,p]);return(0,d.jsx)(l.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:f,titleIcon:(0,d.jsx)(s.NvT,{}),isLoading:v,onConfirm:function(){x(!0)},onClose:function(){t(!1)},confirmationContent:(0,d.jsxs)(o.Fragment,{children:[v&&(0,d.jsx)(s.kod,{}),(0,d.jsxs)(o.Fragment,{children:["Are you sure you want to restore these configurations to default values?",(0,d.jsx)("br",{}),(0,d.jsx)("b",{style:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"},children:"Please note that this may cause your system to not be accessible"})]})]})})}}}]); -//# sourceMappingURL=1432.1b192c18.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1432.1b192c18.chunk.js.map b/portal-ui/build/static/js/1432.1b192c18.chunk.js.map deleted file mode 100644 index da71b61d3..000000000 --- a/portal-ui/build/static/js/1432.1b192c18.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1432.1b192c18.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CSVMultiSelector/CSVMultiSelector.tsx","screens/Console/EventDestinations/WebhookSettings/AddEndpointModal.tsx","screens/Console/EventDestinations/WebhookSettings/DeleteWebhookEndpoint.tsx","screens/Console/EventDestinations/WebhookSettings/EditWebhookEndpoint.tsx","screens/Console/EventDestinations/WebhookSettings/WebhookSettings.tsx","screens/Console/EventDestinations/CustomForms/EditConfiguration.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationForm.tsx","screens/Console/Configurations/ConfigurationPanels/ExportConfigButton.tsx","screens/Console/Configurations/ConfigurationPanels/ImportConfigButton.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationOptions.tsx","screens/Console/Configurations/utils.tsx","screens/Console/EventDestinations/ConfTargetGeneric.tsx","screens/Console/EventDestinations/CustomForms/ResetConfigurationModal.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 .\nimport React, {\n ChangeEvent,\n createRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n Fragment,\n} from \"react\";\nimport get from \"lodash/get\";\nimport { AddIcon, Box, HelpIcon, InputBox, InputLabel, Tooltip } from \"mds\";\n\ninterface ICSVMultiSelector {\n elements: string;\n name: string;\n label: string;\n tooltip?: string;\n commonPlaceholder?: string;\n withBorder?: boolean;\n onChange: (elements: string) => void;\n}\n\nconst CSVMultiSelector = ({\n elements,\n name,\n label,\n tooltip = \"\",\n commonPlaceholder = \"\",\n onChange,\n withBorder = false,\n}: ICSVMultiSelector) => {\n const [currentElements, setCurrentElements] = useState([\"\"]);\n const bottomList = createRef();\n\n // Use effect to get the initial values from props\n useEffect(() => {\n if (\n currentElements.length === 1 &&\n currentElements[0] === \"\" &&\n elements &&\n elements !== \"\"\n ) {\n const elementsSplit = elements.split(\",\");\n elementsSplit.push(\"\");\n\n setCurrentElements(elementsSplit);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elements, currentElements]);\n\n // Use effect to send new values to onChange\n useEffect(() => {\n if (currentElements.length > 1) {\n const refScroll = bottomList.current;\n if (refScroll) {\n refScroll.scrollIntoView(false);\n }\n }\n }, [currentElements, bottomList]);\n\n const onChangeCallback = useCallback(\n (newString: string) => {\n onChange(newString);\n },\n [onChange],\n );\n\n // We avoid multiple re-renders / hang issue typing too fast\n const firstUpdate = useRef(true);\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n const elementsString = currentElements\n .filter((element) => element.trim() !== \"\")\n .join(\",\");\n\n onChangeCallback(elementsString);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentElements]);\n\n // If the last input is not empty, we add a new one\n const addEmptyLine = (elementsUp: string[]) => {\n if (elementsUp[elementsUp.length - 1].trim() !== \"\") {\n const cpList = [...elementsUp];\n cpList.push(\"\");\n setCurrentElements(cpList);\n }\n };\n\n // Onchange function for input box, we get the dataset-index & only update that value in the array\n const onChangeElement = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentElements];\n const index = get(e.target, \"dataset.index\", \"0\");\n const indexNum = parseInt(index);\n updatedElement[indexNum] = e.target.value;\n\n setCurrentElements(updatedElement);\n };\n\n const inputs = currentElements.map((element, index) => {\n return (\n : null}\n overlayAction={() => {\n addEmptyLine(currentElements);\n }}\n />\n );\n });\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n \n \n \n \n \n \n \n )}\n \n \n {inputs}\n
\n \n \n \n );\n};\nexport default CSVMultiSelector;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport {\n Button,\n ConsoleIcon,\n FormLayout,\n Grid,\n InputBox,\n PendingItemsIcon,\n ProgressBar,\n WebhookIcon,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\n\ninterface IEndpointModal {\n open: boolean;\n type: string;\n onCloseEndpoint: () => void;\n}\n\nconst AddEndpointModal = ({ open, type, onCloseEndpoint }: IEndpointModal) => {\n const [name, setName] = useState(\"\");\n const [endpoint, setEndpoint] = useState(\"\");\n const [authToken, setAuthToken] = useState(\"\");\n const [saving, setSaving] = useState(false);\n const [invalidInputs, setInvalidInput] = useState([\n \"name\",\n \"endpoint\",\n ]);\n const [initialInputs, setInitialInputs] = useState([\n \"name\",\n \"endpoint\",\n \"auth-token\",\n ]);\n\n const dispatch = useAppDispatch();\n\n const saveWebhook = () => {\n if (saving) {\n return;\n }\n\n if (invalidInputs.length !== 0) {\n return;\n }\n\n if (name.trim() === \"\") {\n setInvalidInput([...invalidInputs, \"name\"]);\n\n return;\n }\n\n if (endpoint.trim() === \"\") {\n setInvalidInput([...invalidInputs, \"endpoint\"]);\n\n return;\n }\n\n setSaving(true);\n\n const payload = {\n key_values: [\n {\n key: \"endpoint\",\n value: endpoint,\n },\n {\n key: \"auth_token\",\n value: authToken,\n },\n ],\n arn_resource_id: name,\n };\n\n api.configs\n .setConfig(type, payload)\n .then((res) => {\n setSaving(false);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n\n onCloseEndpoint();\n dispatch(configurationIsLoading(true));\n })\n .catch((err) => {\n setSaving(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const initializeInput = (name: string) => {\n setInitialInputs(initialInputs.filter((item) => item !== name));\n };\n\n const validateInput = (name: string, valid: boolean) => {\n if (invalidInputs.includes(name) && valid) {\n setInvalidInput(invalidInputs.filter((item) => item !== name));\n return;\n }\n\n if (!valid && !invalidInputs.includes(name)) {\n setInvalidInput([...invalidInputs, name]);\n }\n };\n\n let title = \"Add new Webhook\";\n let icon = ;\n\n switch (type) {\n case \"logger_webhook\":\n title = \"New Logger Webhook\";\n icon = ;\n break;\n case \"audit_webhook\":\n title = \"New Audit Webhook\";\n icon = ;\n break;\n }\n\n return (\n \n \n \n ) => {\n initializeInput(\"name\");\n setName(event.target.value);\n validateInput(\"name\", event.target.validity.valid);\n }}\n error={\n invalidInputs.includes(\"name\") && !initialInputs.includes(\"name\")\n ? \"Invalid Name\"\n : \"\"\n }\n label=\"Name\"\n value={name}\n pattern={\"^(?=.*[a-zA-Z0-9]).{1,}$\"}\n required\n />\n ) => {\n initializeInput(\"endpoint\");\n setEndpoint(event.target.value);\n validateInput(\"endpoint\", event.target.validity.valid);\n }}\n error={\n invalidInputs.includes(\"endpoint\") &&\n !initialInputs.includes(\"endpoint\")\n ? \"Invalid Endpoint set\"\n : \"\"\n }\n label=\"Endpoint\"\n value={endpoint}\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?(\\\\/[a-zA-Z0-9\\\\-.\\\\/]*)?$\"\n }\n required\n />\n ) => {\n initializeInput(\"auth-token\");\n setAuthToken(event.target.value);\n }}\n label=\"Auth Token\"\n value={authToken}\n />\n \n {saving && (\n \n \n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default AddEndpointModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, Fragment } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IDeleteWebhookEndpoint {\n modalOpen: boolean;\n onClose: () => void;\n selectedARN: string;\n type: string;\n}\n\nconst DeleteWebhookEndpoint = ({\n modalOpen,\n onClose,\n selectedARN,\n}: IDeleteWebhookEndpoint) => {\n const [deleteLoading, setDeleteLoading] = useState(false);\n\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (deleteLoading) {\n api.configs\n .resetConfig(selectedARN)\n .then(() => {\n setDeleteLoading(false);\n dispatch(setServerNeedsRestart(true));\n dispatch(configurationIsLoading(true));\n onClose();\n })\n .catch((err) => {\n setDeleteLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [deleteLoading, dispatch, onClose, selectedARN]);\n\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n const defaultWH = !selectedARN.includes(\":\");\n\n let message = \"Are you sure you want to delete the Configured Endpoint\";\n\n // Main webhook, we just reset\n if (defaultWH) {\n message = \"Are you sure you want to reset the Default\";\n }\n\n return (\n }\n onClose={onClose}\n confirmationContent={\n \n {`${message} `}\n {selectedARN}?\n \n }\n />\n );\n};\n\nexport default DeleteWebhookEndpoint;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 {\n Button,\n ConsoleIcon,\n FormLayout,\n Grid,\n InputBox,\n PendingItemsIcon,\n ProgressBar,\n ReadBox,\n Switch,\n Tooltip,\n WebhookIcon,\n} from \"mds\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\nimport { IConfigurationSys } from \"../../Configurations/types\";\nimport { overrideFields } from \"../../Configurations/utils\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IEndpointModal {\n open: boolean;\n type: string;\n endpointInfo: IConfigurationSys;\n onCloseEndpoint: () => void;\n}\n\nconst EditEndpointModal = ({\n open,\n type,\n endpointInfo,\n onCloseEndpoint,\n}: IEndpointModal) => {\n const [name, setName] = useState(\"\");\n const [endpoint, setEndpoint] = useState(\"\");\n const [authToken, setAuthToken] = useState(\"\");\n const [endpointState, setEndpointState] = useState(\"on\");\n const [saving, setSaving] = useState(false);\n const [invalidInputs, setInvalidInput] = useState([]);\n\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (endpointInfo) {\n const endpointLocate = endpointInfo.key_values.find(\n (key) => key.key === \"endpoint\",\n );\n const tokenLocate = endpointInfo.key_values.find(\n (key) => key.key === \"auth_token\",\n );\n const enable = endpointInfo.key_values.find(\n (key) => key.key === \"enable\",\n );\n\n let invalidInputs: string[] = [];\n\n if (endpointLocate) {\n const endpointValue = endpointLocate.value;\n\n if (endpointValue === \"\") {\n invalidInputs.push(\"endpoint\");\n } else {\n setEndpoint(endpointValue);\n }\n }\n\n if (tokenLocate) {\n const tokenValue = tokenLocate.value;\n\n if (tokenValue === \"\") {\n invalidInputs.push(\"auth-token\");\n } else {\n setAuthToken(tokenValue);\n }\n }\n\n if (enable) {\n if (enable.value === \"off\") {\n setEndpointState(enable.value);\n }\n }\n\n setName(endpointInfo.name || \"\");\n setInvalidInput(invalidInputs);\n }\n }, [endpointInfo]);\n\n const updateWebhook = () => {\n if (saving) {\n return;\n }\n\n if (invalidInputs.length !== 0) {\n return;\n }\n\n if (!endpoint || endpoint.trim() === \"\") {\n setInvalidInput([...invalidInputs, \"endpoint\"]);\n\n return;\n }\n\n setSaving(true);\n\n const payload = {\n key_values: [\n {\n key: \"endpoint\",\n value: endpoint,\n },\n {\n key: \"auth_token\",\n value: authToken,\n },\n {\n key: \"enable\",\n value: endpointState,\n },\n ],\n };\n\n api.configs\n .setConfig(name, payload)\n .then((res) => {\n setSaving(false);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n\n onCloseEndpoint();\n dispatch(configurationIsLoading(true));\n })\n .catch((err) => {\n setSaving(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const validateInput = (name: string, valid: boolean) => {\n if (invalidInputs.includes(name) && valid) {\n setInvalidInput(invalidInputs.filter((item) => item !== name));\n return;\n }\n\n if (!valid && !invalidInputs.includes(name)) {\n setInvalidInput([...invalidInputs, name]);\n }\n };\n\n const defaultWH = !name.includes(\":\");\n const hasOverride = endpointInfo.key_values.filter(\n (itm) => !!itm.env_override,\n );\n\n const overrideValues = overrideFields(hasOverride);\n\n let title = \"Edit Webhook\";\n let icon = ;\n\n switch (type) {\n case \"logger_webhook\":\n title = `Edit ${defaultWH ? \" the Default \" : \"\"}Logger Webhook`;\n icon = ;\n break;\n case \"audit_webhook\":\n title = `Edit ${defaultWH ? \" the Default \" : \"\"}Audit Webhook`;\n icon = ;\n break;\n }\n\n if (hasOverride.length > 0) {\n title = \"View env variable Webhook\";\n }\n\n return (\n \n \n \n {hasOverride.length > 0 ? (\n \n \n \n \n \n \n }\n >\n {overrideValues.enable?.value || \"-\"}\n \n \n \n \n \n \n }\n >\n {overrideValues.endpoint?.value || \"-\"}\n \n \n \n \n \n \n }\n >\n {overrideValues.auth_token?.value || \"-\"}\n \n \n ) : (\n \n ) => {\n const value = e.target.checked ? \"on\" : \"off\";\n setEndpointState(value);\n }}\n id={\"endpoint_enabled\"}\n name={\"endpoint_enabled\"}\n label={\"Enabled\"}\n value={\"switch_on\"}\n checked={endpointState === \"on\"}\n />\n ) => {\n setEndpoint(event.target.value);\n validateInput(\"endpoint\", event.target.validity.valid);\n }}\n error={\n invalidInputs.includes(\"endpoint\")\n ? \"Invalid Endpoint set\"\n : \"\"\n }\n label=\"Endpoint\"\n value={endpoint}\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?(\\\\/[a-zA-Z0-9\\\\-.\\\\/]*)?$\"\n }\n required\n />\n ) => {\n setAuthToken(event.target.value);\n }}\n label=\"Auth Token\"\n value={authToken}\n />\n {saving && (\n \n \n \n )}\n \n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default EditEndpointModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport { IConfigurationSys, IElementValue } from \"../../Configurations/types\";\nimport {\n Button,\n ConsoleIcon,\n DataTable,\n Grid,\n TierOfflineIcon,\n TierOnlineIcon,\n} from \"mds\";\nimport AddEndpointModal from \"./AddEndpointModal\";\nimport DeleteWebhookEndpoint from \"./DeleteWebhookEndpoint\";\nimport EditWebhookEndpoint from \"./EditWebhookEndpoint\";\nimport { Configuration } from \"api/consoleApi\";\n\ninterface WebhookSettingsProps {\n WebhookSettingslist: Configuration[];\n setResetConfigurationOpen: () => void;\n type: string;\n}\n\nconst WebhookSettings = ({\n setResetConfigurationOpen,\n WebhookSettingslist,\n type,\n}: WebhookSettingsProps) => {\n const [newEndpointOpen, setNewEndpointOpen] = useState(false);\n const [deleteWebhookOpen, setDeleteWebhookOpen] = useState(false);\n const [editWebhookOpen, setEditWebhookOpen] = useState(false);\n const [selectedARN, setSelectedARN] = useState(\"\");\n const [selectedEndpoint, setSelectedEndpoint] =\n useState(null);\n\n const renderEndpoint = (item: IElementValue[]) => {\n const endpointFilter = item.find((itm) => itm.key === \"endpoint\");\n\n if (endpointFilter) {\n if (endpointFilter.env_override) {\n return endpointFilter.env_override.value;\n }\n\n return endpointFilter.value;\n }\n\n return \"\";\n };\n\n const renderWebhookStatus = (item: IElementValue[]) => {\n const EnableFilter = item.find((itm) => itm.key === \"enable\");\n\n if (EnableFilter?.env_override) {\n const overrideEnabled =\n !EnableFilter?.env_override.value ||\n EnableFilter?.env_override.value === \"on\" ||\n !EnableFilter?.env_override.value\n ? \"Enabled\"\n : \"Disabled\";\n return (\n \n \n {overrideEnabled ? \"Enabled\" : \"Disabled\"}\n \n );\n }\n\n // If enable is not set, then enabled by default\n if (!EnableFilter || EnableFilter.value === \"on\" || !EnableFilter.value) {\n return (\n \n \n Enabled\n \n );\n }\n\n return (\n \n \n Disabled\n \n );\n };\n\n const onCloseDelete = () => {\n setDeleteWebhookOpen(false);\n setSelectedARN(\"\");\n };\n\n const onCloseEditWebhook = () => {\n setEditWebhookOpen(false);\n setSelectedEndpoint(null);\n };\n\n const actions = [\n {\n type: \"view\",\n onClick: (item: IConfigurationSys) => {\n if (item.name) {\n setEditWebhookOpen(true);\n setSelectedEndpoint(item);\n }\n },\n },\n {\n type: \"delete\",\n onClick: (item: IConfigurationSys) => {\n if (item.name) {\n setDeleteWebhookOpen(true);\n setSelectedARN(item.name);\n }\n },\n disableButtonFunction: (item: string) => {\n const wHook = WebhookSettingslist.find(\n (element) => element.name === item,\n );\n\n if (wHook) {\n const hasOverride = wHook.key_values?.filter(\n (itm) => !!itm.env_override,\n );\n\n // Has override values, we cannot delete.\n if (hasOverride && hasOverride.length > 0) {\n return true;\n }\n\n return false;\n }\n return false;\n },\n },\n ];\n return (\n \n {newEndpointOpen && (\n {\n setNewEndpointOpen(false);\n }}\n />\n )}\n {deleteWebhookOpen && (\n \n )}\n {editWebhookOpen && selectedEndpoint && (\n \n )}\n \n {\n setNewEndpointOpen(true);\n }}\n >\n New Endpoint\n \n \n \n \n

Currently Configured Endpoints

\n \n
\n
\n
\n );\n};\nexport default WebhookSettings;\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 get from \"lodash/get\";\nimport { Box, Button, Grid, Loader } from \"mds\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { Configuration, ConfigurationKV } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport {\n fieldsConfigurations,\n overrideFields,\n removeEmptyFields,\n} from \"../../Configurations/utils\";\nimport {\n IConfigurationElement,\n IElementValue,\n IOverrideEnv,\n KVField,\n} from \"../../Configurations/types\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setHelpName,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport WebhookSettings from \"../WebhookSettings/WebhookSettings\";\nimport ConfTargetGeneric from \"../ConfTargetGeneric\";\nimport ResetConfigurationModal from \"./ResetConfigurationModal\";\n\ninterface IAddNotificationEndpointProps {\n selectedConfiguration: IConfigurationElement;\n className?: string;\n}\n\nconst EditConfiguration = ({\n selectedConfiguration,\n className = \"\",\n}: IAddNotificationEndpointProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const { pathname = \"\" } = useLocation();\n\n let selConfigTab = pathname.substring(pathname.lastIndexOf(\"/\") + 1);\n selConfigTab = selConfigTab === \"settings\" ? \"region\" : selConfigTab;\n\n //Local States\n const [valuesObj, setValueObj] = useState([]);\n const [saving, setSaving] = useState(false);\n const [configValues, setConfigValues] = useState([]);\n const [configSubsysList, setConfigSubsysList] = useState([]);\n const [resetConfigurationOpen, setResetConfigurationOpen] =\n useState(false);\n const [overrideEnvs, setOverrideEnvs] = useState({});\n\n const loadingConfig = useSelector(\n (state: AppState) => state.system.loadingConfigurations,\n );\n\n useEffect(() => {\n dispatch(configurationIsLoading(true));\n }, [selConfigTab, dispatch]);\n\n useEffect(() => {\n if (loadingConfig) {\n const configId = get(selectedConfiguration, \"configuration_id\", false);\n\n if (configId) {\n api.configs\n .configInfo(configId)\n .then((res) => {\n setConfigSubsysList(res.data);\n let values: ConfigurationKV[] = get(res.data[0], \"key_values\", []);\n\n const fieldsConfig: KVField[] = fieldsConfigurations[configId];\n\n const keyVals: IElementValue[] = fieldsConfig.map((field) => {\n const includedValue = values.find(\n (element: ConfigurationKV) => element.key === field.name,\n );\n const customValue = includedValue?.value || \"\";\n\n return {\n key: field.name,\n value: field.customValueProcess\n ? field.customValueProcess(customValue)\n : customValue,\n env_override: includedValue?.env_override,\n };\n });\n\n setConfigValues(keyVals);\n setOverrideEnvs(overrideFields(keyVals));\n dispatch(configurationIsLoading(false));\n })\n .catch((err) => {\n dispatch(configurationIsLoading(false));\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n\n return;\n }\n dispatch(configurationIsLoading(false));\n }\n }, [loadingConfig, selectedConfiguration, dispatch]);\n\n useEffect(() => {\n if (saving) {\n const payload = {\n key_values: removeEmptyFields(valuesObj),\n };\n api.configs\n .setConfig(selectedConfiguration.configuration_id, payload)\n .then((res) => {\n setSaving(false);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n dispatch(configurationIsLoading(true));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n setSaving(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [saving, dispatch, selectedConfiguration, valuesObj, navigate]);\n\n //Fetch Actions\n const submitForm = (event: React.FormEvent) => {\n event.preventDefault();\n setSaving(true);\n };\n\n const onValueChange = useCallback(\n (newValue: IElementValue[]) => {\n setValueObj(newValue);\n },\n [setValueObj],\n );\n\n const continueReset = (restart: boolean) => {\n setResetConfigurationOpen(false);\n dispatch(setServerNeedsRestart(restart));\n if (restart) {\n dispatch(configurationIsLoading(true));\n }\n };\n\n const resetConfigurationMOpen = () => {\n setResetConfigurationOpen(true);\n };\n\n return (\n \n {\n dispatch(\n setHelpName(\n `settings_${selectedConfiguration.configuration_label}`,\n ),\n );\n }}\n >\n {resetConfigurationOpen && (\n \n )}\n {loadingConfig ? (\n \n \n \n ) : (\n \n {selectedConfiguration.configuration_id === \"logger_webhook\" ||\n selectedConfiguration.configuration_id === \"audit_webhook\" ? (\n \n ) : (\n \n \n \n \n \n \n \n    \n \n \n \n \n )}\n \n )}\n
\n
\n );\n};\n\nexport default EditConfiguration;\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 { useLocation } from \"react-router-dom\";\nimport { Grid } from \"mds\";\nimport { configurationElements } from \"../utils\";\nimport EditConfiguration from \"../../EventDestinations/CustomForms/EditConfiguration\";\n\nconst ConfigurationsList = () => {\n const { pathname = \"\" } = useLocation();\n\n const configName = pathname.substring(pathname.lastIndexOf(\"/\") + 1);\n\n const validActiveConfig = configurationElements.find(\n (element) => element.configuration_id === configName,\n );\n const containerClassName = `${configName}`;\n return (\n \n {validActiveConfig && (\n \n )}\n \n );\n};\n\nexport default ConfigurationsList;\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 { Button, UploadIcon } from \"mds\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport { performDownload } from \"../../../../common/utils\";\nimport { DateTime } from \"luxon\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useDispatch } from \"react-redux\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\n\nconst ExportConfigButton = () => {\n const dispatch = useDispatch();\n const [isReqLoading, invokeApi] = useApi(\n (res: any) => {\n //base64 encoded information so decode before downloading.\n performDownload(\n new Blob([window.atob(res.value)]),\n `minio-server-config-${DateTime.now().toFormat(\n \"LL-dd-yyyy-HH-mm-ss\",\n )}.conf`,\n );\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n return (\n \n {\n invokeApi(\"GET\", `api/v1/configs/export`);\n }}\n icon={}\n label={\"Export\"}\n variant={\"regular\"}\n disabled={isReqLoading}\n />\n \n );\n};\n\nexport default ExportConfigButton;\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, useRef, useState } from \"react\";\nimport { Button, DownloadIcon } from \"mds\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../../systemSlice\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AppState } from \"../../../../store\";\n\nconst ImportConfigButton = () => {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const needsRestart = useSelector(\n (state: AppState) => state.system.serverNeedsRestart,\n );\n\n const [refreshPage, setRefreshPage] = useState(\n undefined,\n );\n const fileUpload = useRef(null);\n\n const [isReqLoading, invokeApi] = useApi(\n (res: any) => {\n //base64 encoded information so decode before downloading.\n dispatch(setServerNeedsRestart(true)); //import should refreshPage as per mc.\n setRefreshPage(true);\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n useEffect(() => {\n if (!needsRestart && refreshPage) {\n navigate(0); // refresh the page.\n }\n }, [needsRestart, refreshPage, navigate]);\n\n const handleUploadButton = (e: any) => {\n if (\n e === null ||\n e === undefined ||\n e.target.files === null ||\n e.target.files === undefined\n ) {\n return;\n }\n e.preventDefault();\n const [fileToUpload] = e.target.files;\n\n const formData = new FormData();\n const blobFile = new Blob([fileToUpload], { type: fileToUpload.type });\n\n formData.append(\"file\", blobFile, fileToUpload.name);\n // @ts-ignore\n invokeApi(\"POST\", `api/v1/configs/import`, formData);\n\n e.target.value = \"\";\n };\n\n return (\n \n \n \n {\n if (fileUpload && fileUpload.current) {\n fileUpload.current.click();\n }\n }}\n icon={}\n label={\"Import\"}\n variant={\"regular\"}\n disabled={isReqLoading}\n />\n \n \n );\n};\n\nexport default ImportConfigButton;\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 {\n Box,\n Grid,\n HelpBox,\n PageLayout,\n ScreenTitle,\n SettingsIcon,\n Tabs,\n} from \"mds\";\n\nimport { configurationElements } from \"../utils\";\nimport {\n Navigate,\n Route,\n Routes,\n useLocation,\n useNavigate,\n} from \"react-router-dom\";\n\nimport ConfigurationForm from \"./ConfigurationForm\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport ExportConfigButton from \"./ExportConfigButton\";\nimport ImportConfigButton from \"./ImportConfigButton\";\n\nimport HelpMenu from \"../../HelpMenu\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { api } from \"../../../../api\";\nimport { IElement } from \"../types\";\nimport { errorToHandler } from \"../../../../api/errors\";\n\nconst getRoutePath = (path: string) => {\n return `${IAM_PAGES.SETTINGS}/${path}`;\n};\n\n// region is not part of config subsystem list.\nconst NON_SUB_SYS_CONFIG_ITEMS = [\"region\"];\nconst IGNORED_CONFIG_SUB_SYS = [\"cache\"]; // cache config is not supported.\n\nconst ConfigurationOptions = () => {\n const { pathname = \"\" } = useLocation();\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [configSubSysList, setConfigSubSysList] = useState([]);\n const fetchConfigSubSysList = useCallback(async () => {\n api.configs\n .listConfig() // get a list of available config subsystems.\n .then((res) => {\n if (res && res?.data && res?.data?.configurations) {\n const confSubSysList = (res?.data?.configurations || []).reduce(\n (acc: string[], { key = \"\" }) => {\n if (!IGNORED_CONFIG_SUB_SYS.includes(key)) {\n acc.push(key);\n }\n return acc;\n },\n [],\n );\n\n setConfigSubSysList(confSubSysList);\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err)));\n });\n }, [dispatch]);\n\n useEffect(() => {\n fetchConfigSubSysList();\n dispatch(setHelpName(\"settings_Region\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const availableConfigSubSys = configurationElements.filter(\n ({ configuration_id }: IElement) => {\n return (\n NON_SUB_SYS_CONFIG_ITEMS.includes(configuration_id) ||\n configSubSysList.includes(configuration_id) ||\n !configSubSysList.length\n );\n },\n );\n\n return (\n \n } />\n \n \n }\n title={\"MinIO Configuration:\"}\n actions={\n \n \n \n \n }\n sx={{ marginBottom: 15 }}\n />\n {\n navigate(path);\n }}\n useRouteTabs\n options={availableConfigSubSys.map((element) => {\n const { configuration_id, configuration_label, icon } = element;\n return {\n tabConfig: {\n id: `settings-tab-${configuration_label}`,\n label: configuration_label,\n value: configuration_id,\n icon: icon,\n to: getRoutePath(configuration_id),\n },\n };\n })}\n routes={\n \n {availableConfigSubSys.map((element) => (\n }\n />\n ))}\n }\n />\n \n }\n />\n \n \n }\n help={\n \n MinIO supports a variety of configurations ranging from\n encryption, compression, region, notifications, etc.\n
\n
\n You can learn more at our{\" \"}\n \n documentation\n \n .\n
\n }\n />\n
\n
\n
\n );\n};\n\nexport default ConfigurationOptions;\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 from \"react\";\nimport { IElement, IElementValue, IOverrideEnv, OverrideValue } from \"./types\";\nimport {\n CodeIcon,\n CompressIcon,\n ConsoleIcon,\n FindReplaceIcon,\n FirstAidIcon,\n KeyIcon,\n LogsIcon,\n PendingItemsIcon,\n PublicIcon,\n} from \"mds\";\n\nexport const configurationElements: IElement[] = [\n {\n icon: ,\n configuration_id: \"region\",\n configuration_label: \"Region\",\n },\n {\n icon: ,\n configuration_id: \"compression\",\n configuration_label: \"Compression\",\n },\n {\n icon: ,\n configuration_id: \"api\",\n configuration_label: \"API\",\n },\n {\n icon: ,\n configuration_id: \"heal\",\n configuration_label: \"Heal\",\n },\n {\n icon: ,\n configuration_id: \"scanner\",\n configuration_label: \"Scanner\",\n },\n {\n icon: ,\n configuration_id: \"etcd\",\n configuration_label: \"Etcd\",\n },\n {\n icon: ,\n configuration_id: \"logger_webhook\",\n configuration_label: \"Logger Webhook\",\n },\n {\n icon: ,\n configuration_id: \"audit_webhook\",\n configuration_label: \"Audit Webhook\",\n },\n {\n icon: ,\n configuration_id: \"audit_kafka\",\n configuration_label: \"Audit Kafka\",\n },\n];\n\nexport const fieldsConfigurations: any = {\n region: [\n {\n name: \"name\",\n required: true,\n label: \"Server Location\",\n tooltip: 'Name of the location of the server e.g. \"us-west-rack2\"',\n type: \"string\",\n placeholder: \"e.g. us-west-rack-2\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n compression: [\n {\n name: \"extensions\",\n required: false,\n label: \"Extensions\",\n tooltip:\n 'Extensions to compress e.g. \".txt\", \".log\" or \".csv\" - you can write one per field',\n type: \"csv\",\n placeholder: \"Enter an Extension\",\n withBorder: true,\n },\n {\n name: \"mime_types\",\n required: false,\n label: \"Mime Types\",\n tooltip:\n 'Mime types e.g. \"text/*\", \"application/json\" or \"application/xml\" - you can write one per field',\n type: \"csv\",\n placeholder: \"Enter a Mime Type\",\n withBorder: true,\n },\n ],\n api: [\n {\n name: \"requests_max\",\n required: false,\n label: \"Requests Max\",\n tooltip: \"Maximum number of concurrent requests, e.g. '1600'\",\n type: \"number\",\n placeholder: \"Enter Requests Max\",\n },\n {\n name: \"cors_allow_origin\",\n required: false,\n label: \"Cors Allow Origin\",\n tooltip: \"List of origins allowed for CORS requests\",\n type: \"csv\",\n placeholder: \"Enter allowed origin e.g. https://example.com\",\n },\n {\n name: \"replication_workers\",\n required: false,\n label: \"Replication Workers\",\n tooltip: \"Number of replication workers, defaults to 100\",\n type: \"number\",\n placeholder: \"Enter Replication Workers\",\n },\n {\n name: \"replication_failed_workers\",\n required: false,\n label: \"Replication Failed Workers\",\n tooltip:\n \"Number of replication workers for recently failed replicas, defaults to 4\",\n type: \"number\",\n placeholder: \"Enter Replication Failed Workers\",\n },\n ],\n heal: [\n {\n name: \"bitrotscan\",\n required: false,\n label: \"Bitrot Scan\",\n tooltip:\n \"Perform bitrot scan on disks when checking objects during scanner\",\n type: \"on|off\",\n },\n {\n name: \"max_sleep\",\n required: false,\n label: \"Max Sleep\",\n tooltip:\n \"Maximum sleep duration between objects to slow down heal operation, e.g. 2s\",\n type: \"duration\",\n placeholder: \"Enter Max Sleep Duration\",\n },\n {\n name: \"max_io\",\n required: false,\n label: \"Max IO\",\n tooltip:\n \"Maximum IO requests allowed between objects to slow down heal operation, e.g. 3\",\n type: \"number\",\n placeholder: \"Enter Max IO\",\n },\n ],\n scanner: [\n {\n name: \"delay\",\n required: false,\n label: \"Delay Multiplier\",\n tooltip: \"Scanner delay multiplier, defaults to '10.0'\",\n type: \"number\",\n placeholder: \"Enter Delay\",\n },\n {\n name: \"max_wait\",\n required: false,\n label: \"Max Wait\",\n tooltip: \"Maximum wait time between operations, defaults to '15s'\",\n type: \"duration\",\n placeholder: \"Enter Max Wait\",\n },\n {\n name: \"cycle\",\n required: false,\n label: \"Cycle\",\n tooltip: \"Time duration between scanner cycles, defaults to '1m'\",\n type: \"duration\",\n placeholder: \"Enter Cycle\",\n },\n ],\n etcd: [\n {\n name: \"endpoints\",\n required: true,\n label: \"Endpoints\",\n tooltip:\n 'List of etcd endpoints e.g. \"http://localhost:2379\" - you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"path_prefix\",\n required: false,\n label: \"Path Prefix\",\n tooltip: 'Namespace prefix to isolate tenants e.g. \"customer1/\"',\n type: \"string\",\n placeholder: \"Enter Path Prefix\",\n },\n {\n name: \"coredns_path\",\n required: false,\n label: \"Coredns Path\",\n tooltip: 'Shared bucket DNS records, default is \"/skydns\"',\n type: \"string\",\n placeholder: \"Enter Coredns Path\",\n },\n {\n name: \"client_cert\",\n required: false,\n label: \"Client Cert\",\n tooltip: \"Client cert for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_cert_key\",\n required: false,\n label: \"Client Cert Key\",\n tooltip: \"Client cert key for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert Key\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n logger_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n audit_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n audit_kafka: [\n {\n name: \"enable\",\n required: false,\n label: \"Enable\",\n tooltip: \"Enable audit_kafka target\",\n type: \"on|off\",\n customValueProcess: (origValue: string) => {\n return origValue === \"\" || origValue === \"on\" ? \"on\" : \"off\";\n },\n },\n {\n name: \"brokers\",\n required: true,\n label: \"Brokers\",\n type: \"csv\",\n placeholder: \"Enter Kafka Broker\",\n },\n {\n name: \"topic\",\n required: false,\n label: \"Topic\",\n type: \"string\",\n placeholder: \"Enter Kafka Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n },\n {\n name: \"sasl\",\n required: false,\n label: \"Use SASL\",\n tooltip:\n \"Enable SASL (Simple Authentication and Security Layer) authentication\",\n type: \"on|off\",\n },\n {\n name: \"sasl_username\",\n required: false,\n label: \"SASL Username\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n },\n {\n name: \"sasl_password\",\n required: false,\n label: \"SASL Password\",\n type: \"password\",\n placeholder: \"Enter SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n },\n {\n name: \"sasl_mechanism\",\n required: false,\n label: \"SASL Mechanism\",\n type: \"string\",\n placeholder: \"Enter SASL Mechanism\",\n tooltip: \"SASL authentication mechanism\",\n },\n {\n name: \"tls\",\n required: false,\n label: \"Use TLS\",\n tooltip: \"Enable TLS (Transport Layer Security)\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n required: false,\n label: \"Skip TLS Verification\",\n tooltip: \"Trust server TLS without verification\",\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n required: false,\n label: \"Client Cert\",\n tooltip: \"Client cert for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_tls_key\",\n required: false,\n label: \"Client Cert Key\",\n tooltip: \"Client cert key for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert Key\",\n },\n {\n name: \"tls_client_auth\",\n required: false,\n label: \"TLS Client Auth\",\n tooltip:\n \"ClientAuth determines the Kafka server's policy for TLS client authorization\",\n type: \"string\",\n },\n {\n name: \"version\",\n required: false,\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster\",\n type: \"string\",\n },\n ],\n};\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const selectSAs = (\n e: React.ChangeEvent,\n setSelectedSAs: Function,\n selectedSAs: string[],\n) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedSAs]; // We clone the selectedSAs array\n if (checked) {\n // If the user has checked this field we need to push this to selectedSAs\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedSAs(elements);\n return elements;\n};\n\nexport const overrideFields = (formFields: IElementValue[]): IOverrideEnv => {\n let overrideReturn: IOverrideEnv = {};\n\n formFields.forEach((envItem) => {\n // it has override values, we construct the value\n if (envItem.env_override) {\n const value: OverrideValue = {\n value: envItem.env_override.value || \"\",\n overrideEnv: envItem.env_override.name || \"\",\n };\n\n overrideReturn = { ...overrideReturn, [envItem.key]: value };\n }\n });\n\n return overrideReturn;\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, useEffect, useState } from \"react\";\nimport {\n CommentBox,\n ConsoleIcon,\n FormLayout,\n Grid,\n InputBox,\n ReadBox,\n Switch,\n Tooltip,\n} from \"mds\";\nimport { IElementValue, IOverrideEnv, KVField } from \"../Configurations/types\";\nimport CSVMultiSelector from \"../Common/FormComponents/CSVMultiSelector/CSVMultiSelector\";\n\ninterface IConfGenericProps {\n onChange: (newValue: IElementValue[]) => void;\n fields: KVField[];\n defaultVals?: IElementValue[];\n overrideEnv?: IOverrideEnv;\n}\n\n// Function to get defined values,\n//we make this because the backed sometimes don't return all the keys when there is an initial configuration\nexport const valueDef = (\n key: string,\n type: string,\n defaults: IElementValue[],\n) => {\n let defValue = type === \"on|off\" ? \"off\" : \"\";\n\n if (defaults.length > 0) {\n const storedConfig = defaults.find((element) => element.key === key);\n\n if (storedConfig) {\n defValue = storedConfig.value || \"\";\n }\n }\n\n return defValue;\n};\n\nconst ConfTargetGeneric = ({\n onChange,\n fields,\n defaultVals,\n overrideEnv,\n}: IConfGenericProps) => {\n const [valueHolder, setValueHolder] = useState([]);\n const fieldsElements = !fields ? [] : fields;\n const defValList = !defaultVals ? [] : defaultVals;\n\n // Effect to create all the values to hold\n useEffect(() => {\n const values: IElementValue[] = fields.map((field) => {\n const stateInsert: IElementValue = {\n key: field.name,\n value: valueDef(field.name, field.type, defValList),\n };\n return stateInsert;\n });\n\n setValueHolder(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, defaultVals]);\n\n useEffect(() => {\n onChange(valueHolder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueHolder]);\n\n const setValueElement = (key: string, value: string, index: number) => {\n const valuesDup = [...valueHolder];\n value = value.trim();\n valuesDup[index] = { key, value };\n\n setValueHolder(valuesDup);\n };\n\n const fieldDefinition = (field: KVField, item: number) => {\n const holderItem = valueHolder[item];\n\n if (holderItem) {\n // Override Value with env var, we display generic string component\n const override = overrideEnv?.[`${holderItem.key}`];\n\n if (override) {\n return (\n \n \n \n \n \n }\n sx={{ width: \"100%\" }}\n >\n {override.value}\n \n );\n }\n }\n\n switch (field.type) {\n case \"on|off\":\n const value = holderItem ? holderItem.value : \"off\";\n\n return (\n ) => {\n const value = e.target.checked ? \"on\" : \"off\";\n setValueElement(field.name, value, item);\n }}\n id={field.name}\n name={field.name}\n label={field.label}\n value={\"switch_on\"}\n tooltip={field.tooltip}\n checked={value === \"on\"}\n />\n );\n case \"csv\":\n return (\n {\n let valCh = \"\";\n\n if (Array.isArray(value)) {\n valCh = value.join(\",\");\n } else {\n valCh = value;\n }\n\n setValueElement(field.name, valCh, item);\n }}\n tooltip={field.tooltip}\n commonPlaceholder={field.placeholder}\n withBorder={true}\n />\n );\n case \"comment\":\n return (\n setValueElement(field.name, e.target.value, item)}\n placeholder={field.placeholder}\n />\n );\n default:\n return (\n ) =>\n setValueElement(field.name, e.target.value, item)\n }\n placeholder={field.placeholder}\n />\n );\n }\n };\n\n return (\n \n {fieldsElements.map((field, item) => (\n {fieldDefinition(field, item)}\n ))}\n \n );\n};\n\nexport default ConfTargetGeneric;\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 { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\nimport { ConfirmDeleteIcon, ProgressBar } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IResetConfiguration {\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n configurationName,\n closeResetModalAndRefresh,\n resetOpen,\n}: IResetConfiguration) => {\n const dispatch = useAppDispatch();\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api.configs\n .resetConfig(configurationName)\n .then(() => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err) => {\n setResetLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [closeResetModalAndRefresh, configurationName, resetLoading, dispatch]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n
\n \n Please note that this may cause your system to not be accessible\n \n
\n
\n }\n />\n );\n};\n\nexport default ResetConfigurationModal;\n"],"names":["_ref","elements","name","label","_ref$tooltip","tooltip","_ref$commonPlaceholde","commonPlaceholder","onChange","_ref$withBorder","withBorder","_useState","useState","_useState2","_slicedToArray","currentElements","setCurrentElements","bottomList","createRef","useEffect","length","elementsSplit","split","push","refScroll","current","scrollIntoView","onChangeCallback","useCallback","newString","firstUpdate","useRef","elementsString","filter","element","trim","join","onChangeElement","e","persist","updatedElement","_toConsumableArray","index","get","target","parseInt","value","inputs","map","_jsx","InputBox","id","concat","toString","placeholder","overlayIcon","AddIcon","overlayAction","elementsUp","cpList","addEmptyLine","Fragment","children","_jsxs","Box","sx","display","className","InputLabel","alignItems","marginLeft","width","Tooltip","placement","HelpIcon","withBorders","overflowY","height","position","ref","open","type","onCloseEndpoint","setName","_useState3","_useState4","endpoint","setEndpoint","_useState5","_useState6","authToken","setAuthToken","_useState7","_useState8","saving","setSaving","_useState9","_useState10","invalidInputs","setInvalidInput","_useState11","_useState12","initialInputs","setInitialInputs","dispatch","useAppDispatch","initializeInput","item","validateInput","valid","includes","title","icon","WebhookIcon","ConsoleIcon","PendingItemsIcon","ModalWrapper","modalOpen","onClose","titleIcon","FormLayout","containerPadding","event","validity","error","pattern","required","Grid","xs","marginBottom","ProgressBar","modalStyleUtils","modalButtonBar","Button","variant","disabled","onClick","marginRight","color","payload","key_values","key","arn_resource_id","api","configs","setConfig","then","res","setServerNeedsRestart","data","restart","setSnackBarMessage","configurationIsLoading","catch","err","setErrorSnackMessage","errorToHandler","selectedARN","deleteLoading","setDeleteLoading","resetConfig","defaultWH","message","ConfirmDialog","confirmText","isOpen","isLoading","onConfirm","ConfirmDeleteIcon","confirmationContent","_overrideValues$enabl","_overrideValues$enabl2","_overrideValues$endpo","_overrideValues$endpo2","_overrideValues$auth_","_overrideValues$auth_2","endpointInfo","endpointState","setEndpointState","endpointLocate","find","tokenLocate","enable","endpointValue","tokenValue","hasOverride","itm","env_override","overrideValues","overrideFields","ReadBox","actionButton","justifyContent","paddingRight","overrideEnv","style","auth_token","Switch","checked","setResetConfigurationOpen","WebhookSettingslist","newEndpointOpen","setNewEndpointOpen","deleteWebhookOpen","setDeleteWebhookOpen","editWebhookOpen","setEditWebhookOpen","setSelectedARN","selectedEndpoint","setSelectedEndpoint","actions","disableButtonFunction","wHook","_wHook$key_values","container","AddEndpointModal","DeleteWebhookEndpoint","EditWebhookEndpoint","padding","DataTable","columns","elementKey","renderFunction","EnableFilter","overrideEnabled","flexDirection","justifyItems","fontSize","fill","TierOfflineIcon","TierOnlineIcon","endpointFilter","itemActions","idField","records","entityName","customPaperHeight","selectedConfiguration","_ref$className","navigate","useNavigate","_useLocation$pathname","useLocation","pathname","selConfigTab","substring","lastIndexOf","valuesObj","setValueObj","configValues","setConfigValues","configSubsysList","setConfigSubsysList","resetConfigurationOpen","overrideEnvs","setOverrideEnvs","loadingConfig","useSelector","state","system","loadingConfigurations","configId","configInfo","values","keyVals","fieldsConfigurations","field","includedValue","customValue","customValueProcess","removeEmptyFields","configuration_id","onValueChange","newValue","resetConfigurationMOpen","onMouseMove","setHelpName","configuration_label","ResetConfigurationModal","configurationName","closeResetModalAndRefresh","resetOpen","textAlign","paddingTop","Loader","WebhookSettings","noValidate","onSubmit","preventDefault","flexFlow","gridTemplateColumns","gap","ConfTargetGeneric","fields","defaultVals","maxHeight","configName","validActiveConfig","configurationElements","containerClassName","minWidth","EditConfiguration","useDispatch","_useApi","useApi","performDownload","Blob","window","atob","DateTime","now","toFormat","_useApi2","isReqLoading","invokeApi","TooltipWrapper","UploadIcon","needsRestart","serverNeedsRestart","undefined","refreshPage","setRefreshPage","fileUpload","files","fileToUpload","formData","FormData","blobFile","append","click","DownloadIcon","NON_SUB_SYS_CONFIG_ITEMS","IGNORED_CONFIG_SUB_SYS","configSubSysList","setConfigSubSysList","fetchConfigSubSysList","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","listConfig","_res$data","configurations","_res$data2","confSubSysList","reduce","acc","_ref2","_ref2$key","stop","availableConfigSubSys","_ref3","PageHeaderWrapper","HelpMenu","PageLayout","ScreenTitle","SettingsIcon","ImportConfigButton","ExportConfigButton","Tabs","currentTabOrPath","onTabClick","path","useRouteTabs","options","tabConfig","to","IAM_PAGES","SETTINGS","routes","Routes","Route","ConfigurationForm","Navigate","HelpBox","iconComponent","help","href","rel","PublicIcon","CompressIcon","CodeIcon","FirstAidIcon","FindReplaceIcon","KeyIcon","LogsIcon","region","compression","heal","scanner","etcd","multiline","logger_webhook","audit_webhook","audit_kafka","origValue","formFields","selectSAs","setSelectedSAs","selectedSAs","targetD","overrideReturn","forEach","envItem","_objectSpread","_defineProperty","valueDef","defaults","defValue","storedConfig","valueHolder","setValueHolder","fieldsElements","defValList","setValueElement","valuesDup","fieldDefinition","holderItem","override","CSVMultiSelector","valCh","Array","isArray","CommentBox","resetLoading","setResetLoading","maxWidth","whiteSpace","wordWrap"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1432.4da0630f.chunk.js b/portal-ui/build/static/js/1432.4da0630f.chunk.js new file mode 100644 index 000000000..dd9d05f7c --- /dev/null +++ b/portal-ui/build/static/js/1432.4da0630f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1432,4770],{59447:(e,t,n)=>{n.d(t,{Z:()=>s});var i=n(72791),o=n(26181),a=n.n(o),l=n(29945),r=n(80184);const s=e=>{let{elements:t,name:n,label:o,tooltip:s="",commonPlaceholder:c="",onChange:d,withBorder:u=!1}=e;const[p,h]=(0,i.useState)([""]),f=(0,i.createRef)();(0,i.useEffect)((()=>{if(1===p.length&&""===p[0]&&t&&""!==t){const e=t.split(",");e.push(""),h(e)}}),[t,p]),(0,i.useEffect)((()=>{if(p.length>1){const e=f.current;e&&e.scrollIntoView(!1)}}),[p,f]);const m=(0,i.useCallback)((e=>{d(e)}),[d]),x=(0,i.useRef)(!0);(0,i.useEffect)((()=>{if(x.current)return void(x.current=!1);const e=p.filter((e=>""!==e.trim())).join(",");m(e)}),[p]);const g=e=>{e.persist();let t=[...p];const n=a()(e.target,"dataset.index","0");t[parseInt(n)]=e.target.value,h(t)},v=p.map(((e,t)=>(0,r.jsx)(l.Wzg,{id:"".concat(n,"-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:p[t],onChange:g,index:t,placeholder:c,overlayIcon:t===p.length-1?(0,r.jsx)(l.dtP,{}):null,overlayAction:()=>{(e=>{if(""!==e[e.length-1].trim()){const t=[...e];t.push(""),h(t)}})(p)}},"csv-multi-".concat(n,"-").concat(t.toString()))));return(0,r.jsx)(i.Fragment,{children:(0,r.jsxs)(l.xuv,{sx:{display:"flex"},className:"inputItem",children:[(0,r.jsxs)(l.AZs,{sx:{alignItems:"flex-start"},children:[(0,r.jsx)("span",{children:o}),""!==s&&(0,r.jsx)(l.xuv,{sx:{marginLeft:5,display:"flex",alignItems:"center","& .min-icon":{width:13}},children:(0,r.jsx)(l.ua7,{tooltip:s,placement:"top",children:(0,r.jsx)(l.xuv,{className:s,children:(0,r.jsx)(l.byK,{})})})})]}),(0,r.jsxs)(l.xuv,{withBorders:u,sx:{width:"100%",overflowY:"auto",height:150,position:"relative"},children:[v,(0,r.jsx)("div",{ref:f})]})]})})}},11432:(e,t,n)=>{n.r(t),n.d(t,{default:()=>z});var i=n(72791),o=n(29945),a=n(58493),l=n(57689),r=n(26181),s=n.n(r),c=n(78687),d=n(31776),u=n(82342),p=n(87995),h=n(44690),f=n(56028),m=n(23814),x=n(80184);const g=e=>{let{open:t,type:n,onCloseEndpoint:a}=e;const[l,r]=(0,i.useState)(""),[s,c]=(0,i.useState)(""),[g,v]=(0,i.useState)(""),[b,y]=(0,i.useState)(!1),[j,k]=(0,i.useState)(["name","endpoint"]),[_,C]=(0,i.useState)(["name","endpoint","auth-token"]),S=(0,h.TL)(),w=e=>{C(_.filter((t=>t!==e)))},E=(e,t)=>{j.includes(e)&&t?k(j.filter((t=>t!==e))):t||j.includes(e)||k([...j,e])};let A="Add new Webhook",I=(0,x.jsx)(o.tYf,{});switch(n){case"logger_webhook":A="New Logger Webhook",I=(0,x.jsx)(o.zD0,{});break;case"audit_webhook":A="New Audit Webhook",I=(0,x.jsx)(o.Pd4,{})}return(0,x.jsx)(i.Fragment,{children:(0,x.jsxs)(f.Z,{modalOpen:t,title:A,onClose:a,titleIcon:I,children:[(0,x.jsxs)(o.ltY,{containerPadding:!1,withBorders:!1,children:[(0,x.jsx)(o.Wzg,{id:"name",name:"name",onChange:e=>{w("name"),r(e.target.value),E("name",e.target.validity.valid)},error:j.includes("name")&&!_.includes("name")?"Invalid Name":"",label:"Name",value:l,pattern:"^(?=.*[a-zA-Z0-9]).{1,}$",required:!0}),(0,x.jsx)(o.Wzg,{id:"endpoint",name:"endpoint",onChange:e=>{w("endpoint"),c(e.target.value),E("endpoint",e.target.validity.valid)},error:j.includes("endpoint")&&!_.includes("endpoint")?"Invalid Endpoint set":"",label:"Endpoint",value:s,pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-.\\/]*)?$",required:!0}),(0,x.jsx)(o.Wzg,{id:"auth-token",name:"auth-token",onChange:e=>{w("auth-token"),v(e.target.value)},label:"Auth Token",value:g})]}),b&&(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{marginBottom:10},children:(0,x.jsx)(o.kod,{})}),(0,x.jsxs)(o.rjZ,{item:!0,xs:12,sx:m.ID.modalButtonBar,children:[(0,x.jsx)(o.zxk,{id:"reset",type:"button",variant:"regular",disabled:b,onClick:a,label:"Cancel",sx:{marginRight:10}}),(0,x.jsx)(o.zxk,{id:"save-lifecycle",type:"submit",variant:"callAction",color:"primary",disabled:b||0!==j.length,label:"Save",onClick:()=>{if(b)return;if(0!==j.length)return;if(""===l.trim())return void k([...j,"name"]);if(""===s.trim())return void k([...j,"endpoint"]);y(!0);const e={key_values:[{key:"endpoint",value:s},{key:"auth_token",value:g}],arn_resource_id:l};d.h.configs.setConfig(n,e).then((e=>{y(!1),S((0,p.cN)(e.data.restart||!1)),e.data.restart||S((0,p.y1)("Configuration saved successfully")),a(),S((0,p.Ie)(!0))})).catch((e=>{y(!1),S((0,p.Ih)((0,u.g)(e.error)))}))}})]})]})})};var v=n(23508);const b=e=>{let{modalOpen:t,onClose:n,selectedARN:a}=e;const[l,r]=(0,i.useState)(!1),s=(0,h.TL)();(0,i.useEffect)((()=>{l&&d.h.configs.resetConfig(a).then((()=>{r(!1),s((0,p.cN)(!0)),s((0,p.Ie)(!0)),n()})).catch((e=>{r(!1),s((0,p.Ih)((0,u.g)(e.error)))}))}),[l,s,n,a]);const c=!a.includes(":");let f="Are you sure you want to delete the Configured Endpoint";return c&&(f="Are you sure you want to reset the Default"),(0,x.jsx)(v.Z,{title:c?"Reset Default Webhook":"Delete Webhook",confirmText:c?"Reset":"Delete",isOpen:t,isLoading:l,onConfirm:()=>{r(!0)},titleIcon:(0,x.jsx)(o.NvT,{}),onClose:n,confirmationContent:(0,x.jsxs)(i.Fragment,{children:["".concat(f," "),(0,x.jsx)("strong",{children:a}),"?"]})})},y=e=>{var t,n,l,r,s,c;let{open:g,type:v,endpointInfo:b,onCloseEndpoint:y}=e;const[j,k]=(0,i.useState)(""),[_,C]=(0,i.useState)(""),[S,w]=(0,i.useState)(""),[E,A]=(0,i.useState)("on"),[I,T]=(0,i.useState)(!1),[q,L]=(0,i.useState)([]),Z=(0,h.TL)();(0,i.useEffect)((()=>{if(b){const e=b.key_values.find((e=>"endpoint"===e.key)),t=b.key_values.find((e=>"auth_token"===e.key)),n=b.key_values.find((e=>"enable"===e.key));let i=[];if(e){const t=e.value;""===t?i.push("endpoint"):C(t)}if(t){const e=t.value;""===e?i.push("auth-token"):w(e)}n&&"off"===n.value&&A(n.value),k(b.name||""),L(i)}}),[b]);const D=!j.includes(":"),N=b.key_values.filter((e=>!!e.env_override)),R=(0,a.F_)(N);let z="Edit Webhook",W=(0,x.jsx)(o.tYf,{});switch(v){case"logger_webhook":z="Edit ".concat(D?" the Default ":"","Logger Webhook"),W=(0,x.jsx)(o.zD0,{});break;case"audit_webhook":z="Edit ".concat(D?" the Default ":"","Audit Webhook"),W=(0,x.jsx)(o.Pd4,{})}return N.length>0&&(z="View env variable Webhook"),(0,x.jsx)(i.Fragment,{children:(0,x.jsx)(f.Z,{modalOpen:g,title:"".concat(z).concat(D?"":" - ".concat(j)),onClose:y,titleIcon:W,children:(0,x.jsx)(o.ltY,{withBorders:!1,containerPadding:!1,children:N.length>0?(0,x.jsxs)(i.Fragment,{children:[(0,x.jsx)(o.bSr,{label:"Enabled",sx:{width:"100%"},actionButton:(0,x.jsx)(o.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,x.jsx)(o.ua7,{tooltip:R.enable?"This value is set from the ".concat((null===(t=R.enable)||void 0===t?void 0:t.overrideEnv)||"N/A"," environment variable"):"",placement:"left",children:(0,x.jsx)(o.zD0,{style:{width:20}})})}),children:(null===(n=R.enable)||void 0===n?void 0:n.value)||"-"}),(0,x.jsx)(o.bSr,{label:"Endpoint",sx:{width:"100%"},actionButton:(0,x.jsx)(o.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,x.jsx)(o.ua7,{tooltip:R.enable?"This value is set from the ".concat((null===(l=R.endpoint)||void 0===l?void 0:l.overrideEnv)||"N/A"," environment variable"):"",placement:"left",children:(0,x.jsx)(o.zD0,{style:{width:20}})})}),children:(null===(r=R.endpoint)||void 0===r?void 0:r.value)||"-"}),(0,x.jsx)(o.bSr,{label:"Auth Token",sx:{width:"100%"},actionButton:(0,x.jsx)(o.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,x.jsx)(o.ua7,{tooltip:R.enable?"This value is set from the ".concat((null===(s=R.auth_token)||void 0===s?void 0:s.overrideEnv)||"N/A"," environment variable"):"",placement:"left",children:(0,x.jsx)(o.zD0,{style:{width:20}})})}),children:(null===(c=R.auth_token)||void 0===c?void 0:c.value)||"-"})]}):(0,x.jsxs)(i.Fragment,{children:[(0,x.jsx)(o.rsf,{onChange:e=>{const t=e.target.checked?"on":"off";A(t)},id:"endpoint_enabled",name:"endpoint_enabled",label:"Enabled",value:"switch_on",checked:"on"===E}),(0,x.jsx)(o.Wzg,{id:"endpoint",name:"endpoint",onChange:e=>{C(e.target.value),((e,t)=>{q.includes(e)&&t?L(q.filter((t=>t!==e))):t||q.includes(e)||L([...q,e])})("endpoint",e.target.validity.valid)},error:q.includes("endpoint")?"Invalid Endpoint set":"",label:"Endpoint",value:_,pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-.\\/]*)?$",required:!0}),(0,x.jsx)(o.Wzg,{id:"auth-token",name:"auth-token",onChange:e=>{w(e.target.value)},label:"Auth Token",value:S}),I&&(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{marginBottom:10},children:(0,x.jsx)(o.kod,{})}),(0,x.jsxs)(o.rjZ,{item:!0,sx:m.ID.modalButtonBar,children:[(0,x.jsx)(o.zxk,{id:"reset",type:"button",variant:"regular",disabled:I,onClick:y,label:"Cancel"}),(0,x.jsx)(o.zxk,{id:"save-lifecycle",type:"submit",variant:"callAction",color:"primary",disabled:I||0!==q.length,label:"Update",onClick:()=>{if(I)return;if(0!==q.length)return;if(!_||""===_.trim())return void L([...q,"endpoint"]);T(!0);const e={key_values:[{key:"endpoint",value:_},{key:"auth_token",value:S},{key:"enable",value:E}]};d.h.configs.setConfig(j,e).then((e=>{T(!1),Z((0,p.cN)(e.data.restart||!1)),e.data.restart||Z((0,p.y1)("Configuration saved successfully")),y(),Z((0,p.Ie)(!0))})).catch((e=>{T(!1),Z((0,p.Ih)((0,u.g)(e.error)))}))}})]})]})})})})},j=e=>{let{setResetConfigurationOpen:t,WebhookSettingslist:n,type:a}=e;const[l,r]=(0,i.useState)(!1),[s,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(""),[f,m]=(0,i.useState)(null),v=[{type:"view",onClick:e=>{e.name&&(u(!0),m(e))}},{type:"delete",onClick:e=>{e.name&&(c(!0),h(e.name))},disableButtonFunction:e=>{const t=n.find((t=>t.name===e));if(t){var i;const e=null===(i=t.key_values)||void 0===i?void 0:i.filter((e=>!!e.env_override));return!!(e&&e.length>0)}return!1}}];return(0,x.jsxs)(o.rjZ,{container:!0,children:[l&&(0,x.jsx)(g,{open:l,type:a,onCloseEndpoint:()=>{r(!1)}}),s&&(0,x.jsx)(b,{modalOpen:s,onClose:()=>{c(!1),h("")},selectedARN:p,type:a}),d&&f&&(0,x.jsx)(y,{open:d,type:a,endpointInfo:f,onCloseEndpoint:()=>{u(!1),m(null)}}),(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-end"},children:(0,x.jsx)(o.zxk,{id:"newWebhook",variant:"callAction",onClick:()=>{r(!0)},children:"New Endpoint"})}),(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{padding:"0 10px 10px"},children:(0,x.jsxs)(i.Fragment,{children:[(0,x.jsx)("h3",{children:"Currently Configured Endpoints"}),(0,x.jsx)(o.wQF,{columns:[{label:"Status",elementKey:"key_values",renderFunction:e=>{const t=e.find((e=>"enable"===e.key));if(null!==t&&void 0!==t&&t.env_override){const e=null!==t&&void 0!==t&&t.env_override.value&&"on"!==(null===t||void 0===t?void 0:t.env_override.value)&&null!==t&&void 0!==t&&t.env_override.value?"Disabled":"Enabled";return(0,x.jsxs)(o.rjZ,{container:!0,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyItems:"start",fontSize:"8px"},children:[(0,x.jsx)(o.zD0,{style:{fill:"#052F51",width:"14px"}}),e?"Enabled":"Disabled"]})}return t&&"on"!==t.value&&t.value?(0,x.jsxs)(o.rjZ,{container:!0,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyItems:"start",fontSize:"8px"},children:[(0,x.jsx)(o.qwj,{style:{fill:"#C83B51",width:14,height:14}}),"Disabled"]}):(0,x.jsxs)(o.rjZ,{container:!0,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyItems:"start",fontSize:"8px"},children:[(0,x.jsx)(o.Yp9,{style:{fill:"#4CCB92",width:14,height:14}}),"Enabled"]})},width:50},{label:"Name",elementKey:"name"},{label:"Endpoint",elementKey:"key_values",renderFunction:e=>{const t=e.find((e=>"endpoint"===e.key));return t?t.env_override?t.env_override.value:t.value:""}}],itemActions:v,idField:"name",isLoading:!1,records:n,entityName:"endpoints",customPaperHeight:"calc(100vh - 750px)"})]})})]})};var k=n(94770),_=n(90767);const C=e=>{let{selectedConfiguration:t,className:n=""}=e;const r=(0,h.TL)(),f=(0,l.s0)(),{pathname:m=""}=(0,l.TH)();let g=m.substring(m.lastIndexOf("/")+1);g="settings"===g?"region":g;const[v,b]=(0,i.useState)([]),[y,C]=(0,i.useState)(!1),[S,w]=(0,i.useState)([]),[E,A]=(0,i.useState)([]),[I,T]=(0,i.useState)(!1),[q,L]=(0,i.useState)({}),Z=(0,c.v9)((e=>e.system.loadingConfigurations));(0,i.useEffect)((()=>{r((0,p.Ie)(!0))}),[g,r]),(0,i.useEffect)((()=>{if(Z){const e=s()(t,"configuration_id",!1);if(e)return void d.h.configs.configInfo(e).then((t=>{A(t.data);let n=s()(t.data[0],"key_values",[]);const i=a.DP[e].map((e=>{const t=n.find((t=>t.key===e.name)),i=(null===t||void 0===t?void 0:t.value)||"";return{key:e.name,value:e.customValueProcess?e.customValueProcess(i):i,env_override:null===t||void 0===t?void 0:t.env_override}}));w(i),L((0,a.F_)(i)),r((0,p.Ie)(!1))})).catch((e=>{r((0,p.Ie)(!1)),r((0,p.Ih)((0,u.g)(e.error)))}));r((0,p.Ie)(!1))}}),[Z,t,r]),(0,i.useEffect)((()=>{if(y){const e={key_values:(0,a.DD)(v)};d.h.configs.setConfig(t.configuration_id,e).then((e=>{C(!1),r((0,p.cN)(e.data.restart||!1)),r((0,p.Ie)(!0)),e.data.restart||r((0,p.y1)("Configuration saved successfully"))})).catch((e=>{C(!1),r((0,p.Ih)((0,u.g)(e.error)))}))}}),[y,r,t,v,f]);const D=(0,i.useCallback)((e=>{b(e)}),[b]),N=()=>{T(!0)};return(0,x.jsx)(i.Fragment,{children:(0,x.jsxs)("div",{onMouseMove:()=>{r((0,p.Sc)("settings_".concat(t.configuration_label)))},children:[I&&(0,x.jsx)(_.Z,{configurationName:t.configuration_id,closeResetModalAndRefresh:e=>{T(!1),r((0,p.cN)(e)),e&&r((0,p.Ie)(!0))},resetOpen:I}),Z?(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{textAlign:"center",paddingTop:"15px"},children:(0,x.jsx)(o.aNw,{})}):(0,x.jsx)(o.xuv,{sx:{padding:"15px",height:"100%"},children:"logger_webhook"===t.configuration_id||"audit_webhook"===t.configuration_id?(0,x.jsx)(j,{WebhookSettingslist:E,setResetConfigurationOpen:N,type:t.configuration_id}):(0,x.jsx)(i.Fragment,{children:(0,x.jsxs)("form",{noValidate:!0,onSubmit:e=>{e.preventDefault(),C(!0)},className:n,style:{height:"100%",display:"flex",flexFlow:"column"},children:[(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{display:"grid",gridTemplateColumns:"1fr",gap:"10px"},children:(0,x.jsx)(k.default,{fields:a.DP[t.configuration_id],onChange:D,defaultVals:S,overrideEnv:q})}),(0,x.jsxs)(o.rjZ,{item:!0,xs:12,sx:{paddingTop:"15px ",textAlign:"right",maxHeight:"60px",display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[(0,x.jsx)(o.zxk,{type:"button",id:"restore-defaults",variant:"secondary",onClick:N,label:"Restore Defaults"}),"\xa0 \xa0",(0,x.jsx)(o.zxk,{id:"save",type:"submit",variant:"callAction",disabled:y,label:"Save"})]})]})})})]})})},S=()=>{const{pathname:e=""}=(0,l.TH)(),t=e.substring(e.lastIndexOf("/")+1),n=a.bx.find((e=>e.configuration_id===t)),i="".concat(t);return(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{height:"100%","& .identity_ldap, .api":{"& label":{minWidth:220,marginRight:0}}},children:n&&(0,x.jsx)(C,{className:"".concat(i),selectedConfiguration:n})})};var w=n(56087),E=n(79844),A=n(9505),I=n(45248),T=n(99779),q=n(27454);const L=()=>{const e=(0,c.I0)(),[t,n]=(0,A.Z)((e=>{(0,I.zZ)(new Blob([window.atob(e.value)]),"minio-server-config-".concat(T.ou.now().toFormat("LL-dd-yyyy-HH-mm-ss"),".conf"))}),(t=>{e((0,p.Ih)(t))}));return(0,x.jsx)(q.Z,{tooltip:"Warning! The resulting file will contain server configuration information in plain text",children:(0,x.jsx)(o.zxk,{id:"export-config",onClick:()=>{n("GET","api/v1/configs/export")},icon:(0,x.jsx)(o.rG2,{}),label:"Export",variant:"regular",disabled:t})})},Z=()=>{const e=(0,l.s0)(),t=(0,c.I0)(),n=(0,c.v9)((e=>e.system.serverNeedsRestart)),[a,r]=(0,i.useState)(void 0),s=(0,i.useRef)(null),[d,u]=(0,A.Z)((e=>{t((0,p.cN)(!0)),r(!0)}),(e=>{t((0,p.Ih)(e))}));(0,i.useEffect)((()=>{!n&&a&&e(0)}),[n,a,e]);return(0,x.jsxs)(i.Fragment,{children:[(0,x.jsx)("input",{type:"file",onChange:e=>{if(null===e||void 0===e||null===e.target.files||void 0===e.target.files)return;e.preventDefault();const[t]=e.target.files,n=new FormData,i=new Blob([t],{type:t.type});n.append("file",i,t.name),u("POST","api/v1/configs/import",n),e.target.value=""},style:{display:"none"},ref:s}),(0,x.jsx)(q.Z,{tooltip:"The file must be valid and should have valid config values",children:(0,x.jsx)(o.zxk,{id:"import-config",onClick:()=>{s&&s.current&&s.current.click()},icon:(0,x.jsx)(o._8t,{}),label:"Import",variant:"regular",disabled:d})})]})};var D=n(99670);const N=["region"],R=["cache"],z=()=>{const{pathname:e=""}=(0,l.TH)(),t=(0,h.TL)(),n=(0,l.s0)(),[r,s]=(0,i.useState)([]),c=(0,i.useCallback)((async()=>{d.h.configs.listConfig().then((e=>{var t;if(e&&null!==e&&void 0!==e&&e.data&&null!==e&&void 0!==e&&null!==(t=e.data)&&void 0!==t&&t.configurations){var n;const t=((null===e||void 0===e||null===(n=e.data)||void 0===n?void 0:n.configurations)||[]).reduce(((e,t)=>{let{key:n=""}=t;return R.includes(n)||e.push(n),e}),[]);s(t)}})).catch((e=>{t((0,p.Ih)((0,u.g)(e)))}))}),[t]);(0,i.useEffect)((()=>{c(),t((0,p.Sc)("settings_Region"))}),[]);const f=a.bx.filter((e=>{let{configuration_id:t}=e;return N.includes(t)||r.includes(t)||!r.length}));return(0,x.jsxs)(i.Fragment,{children:[(0,x.jsx)(E.Z,{label:"Settings",actions:(0,x.jsx)(D.Z,{})}),(0,x.jsxs)(o.Xgh,{children:[(0,x.jsxs)(o.rjZ,{item:!0,xs:12,id:"settings-container",children:[(0,x.jsx)(o.UHn,{icon:(0,x.jsx)(o.ewm,{}),title:"MinIO Configuration:",actions:(0,x.jsxs)(o.xuv,{sx:{display:"flex",gap:10},children:[(0,x.jsx)(Z,{}),(0,x.jsx)(L,{})]}),sx:{marginBottom:15}}),(0,x.jsx)(o.mQc,{currentTabOrPath:e,onTabClick:e=>{n(e)},useRouteTabs:!0,options:f.map((e=>{const{configuration_id:t,configuration_label:n,icon:i}=e;return{tabConfig:{id:"settings-tab-".concat(n),label:n,value:t,icon:i,to:(o=t,"".concat(w.gA.SETTINGS,"/").concat(o))}};var o})),routes:(0,x.jsxs)(l.Z5,{children:[f.map((e=>(0,x.jsx)(l.AW,{path:"".concat(e.configuration_id),element:(0,x.jsx)(S,{})},"configItem-".concat(e.configuration_label)))),(0,x.jsx)(l.AW,{path:"/",element:(0,x.jsx)(l.Fg,{to:"".concat(w.gA.SETTINGS,"/region")})})]})})]}),(0,x.jsx)(o.rjZ,{item:!0,xs:12,sx:{paddingTop:"15px"},children:(0,x.jsx)(o.KfX,{title:"Learn more about Configurations",iconComponent:(0,x.jsx)(o.ewm,{}),help:(0,x.jsxs)(i.Fragment,{children:["MinIO supports a variety of configurations ranging from encryption, compression, region, notifications, etc.",(0,x.jsx)("br",{}),(0,x.jsx)("br",{}),"You can learn more at our"," ",(0,x.jsx)("a",{href:"https://min.io/docs/minio/linux/reference/minio-mc-admin/mc-admin-config.html?ref=con#id4",target:"_blank",rel:"noopener",children:"documentation"}),"."]})})})]})]})}},58493:(e,t,n)=>{n.d(t,{DD:()=>r,DP:()=>l,F_:()=>c,_0:()=>s,bx:()=>a});n(72791);var i=n(29945),o=n(80184);const a=[{icon:(0,o.jsx)(i.N1D,{}),configuration_id:"region",configuration_label:"Region"},{icon:(0,o.jsx)(i.jG4,{}),configuration_id:"compression",configuration_label:"Compression"},{icon:(0,o.jsx)(i.dNJ,{}),configuration_id:"api",configuration_label:"API"},{icon:(0,o.jsx)(i.JOn,{}),configuration_id:"heal",configuration_label:"Heal"},{icon:(0,o.jsx)(i.oTr,{}),configuration_id:"scanner",configuration_label:"Scanner"},{icon:(0,o.jsx)(i._m8,{}),configuration_id:"etcd",configuration_label:"Etcd"},{icon:(0,o.jsx)(i.zD0,{}),configuration_id:"logger_webhook",configuration_label:"Logger Webhook"},{icon:(0,o.jsx)(i.Pd4,{}),configuration_id:"audit_webhook",configuration_label:"Audit Webhook"},{icon:(0,o.jsx)(i.I$E,{}),configuration_id:"audit_kafka",configuration_label:"Audit Kafka"}],l={region:[{name:"name",required:!0,label:"Server Location",tooltip:'Name of the location of the server e.g. "us-west-rack2"',type:"string",placeholder:"e.g. us-west-rack-2"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",placeholder:"Enter custom notes if any"}],compression:[{name:"extensions",required:!1,label:"Extensions",tooltip:'Extensions to compress e.g. ".txt", ".log" or ".csv" - you can write one per field',type:"csv",placeholder:"Enter an Extension",withBorder:!0},{name:"mime_types",required:!1,label:"Mime Types",tooltip:'Mime types e.g. "text/*", "application/json" or "application/xml" - you can write one per field',type:"csv",placeholder:"Enter a Mime Type",withBorder:!0}],api:[{name:"requests_max",required:!1,label:"Requests Max",tooltip:"Maximum number of concurrent requests, e.g. '1600'",type:"number",placeholder:"Enter Requests Max"},{name:"cors_allow_origin",required:!1,label:"Cors Allow Origin",tooltip:"List of origins allowed for CORS requests",type:"csv",placeholder:"Enter allowed origin e.g. https://example.com"},{name:"replication_workers",required:!1,label:"Replication Workers",tooltip:"Number of replication workers, defaults to 100",type:"number",placeholder:"Enter Replication Workers"},{name:"replication_failed_workers",required:!1,label:"Replication Failed Workers",tooltip:"Number of replication workers for recently failed replicas, defaults to 4",type:"number",placeholder:"Enter Replication Failed Workers"}],heal:[{name:"bitrotscan",required:!1,label:"Bitrot Scan",tooltip:"Perform bitrot scan on disks when checking objects during scanner",type:"on|off"},{name:"max_sleep",required:!1,label:"Max Sleep",tooltip:"Maximum sleep duration between objects to slow down heal operation, e.g. 2s",type:"duration",placeholder:"Enter Max Sleep Duration"},{name:"max_io",required:!1,label:"Max IO",tooltip:"Maximum IO requests allowed between objects to slow down heal operation, e.g. 3",type:"number",placeholder:"Enter Max IO"}],scanner:[{name:"delay",required:!1,label:"Delay Multiplier",tooltip:"Scanner delay multiplier, defaults to '10.0'",type:"number",placeholder:"Enter Delay"},{name:"max_wait",required:!1,label:"Max Wait",tooltip:"Maximum wait time between operations, defaults to '15s'",type:"duration",placeholder:"Enter Max Wait"},{name:"cycle",required:!1,label:"Cycle",tooltip:"Time duration between scanner cycles, defaults to '1m'",type:"duration",placeholder:"Enter Cycle"}],etcd:[{name:"endpoints",required:!0,label:"Endpoints",tooltip:'List of etcd endpoints e.g. "http://localhost:2379" - you can write one per field',type:"csv",placeholder:"Enter Endpoint"},{name:"path_prefix",required:!1,label:"Path Prefix",tooltip:'Namespace prefix to isolate tenants e.g. "customer1/"',type:"string",placeholder:"Enter Path Prefix"},{name:"coredns_path",required:!1,label:"Coredns Path",tooltip:'Shared bucket DNS records, default is "/skydns"',type:"string",placeholder:"Enter Coredns Path"},{name:"client_cert",required:!1,label:"Client Cert",tooltip:"Client cert for mTLS authentication",type:"string",placeholder:"Enter Client Cert"},{name:"client_cert_key",required:!1,label:"Client Cert Key",tooltip:"Client cert key for mTLS authentication",type:"string",placeholder:"Enter Client Cert Key"},{name:"comment",required:!1,label:"Comment",tooltip:"You can add a comment to this setting",type:"comment",multiline:!0,placeholder:"Enter custom notes if any"}],logger_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}],audit_webhook:[{name:"endpoint",required:!0,label:"Endpoint",type:"string",placeholder:"Enter Endpoint"},{name:"auth_token",required:!0,label:"Auth Token",type:"string",placeholder:"Enter Auth Token"}],audit_kafka:[{name:"enable",required:!1,label:"Enable",tooltip:"Enable audit_kafka target",type:"on|off",customValueProcess:e=>""===e||"on"===e?"on":"off"},{name:"brokers",required:!0,label:"Brokers",type:"csv",placeholder:"Enter Kafka Broker"},{name:"topic",required:!1,label:"Topic",type:"string",placeholder:"Enter Kafka Topic",tooltip:"Kafka topic used for bucket notifications"},{name:"sasl",required:!1,label:"Use SASL",tooltip:"Enable SASL (Simple Authentication and Security Layer) authentication",type:"on|off"},{name:"sasl_username",required:!1,label:"SASL Username",type:"string",placeholder:"Enter SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication"},{name:"sasl_password",required:!1,label:"SASL Password",type:"password",placeholder:"Enter SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication"},{name:"sasl_mechanism",required:!1,label:"SASL Mechanism",type:"string",placeholder:"Enter SASL Mechanism",tooltip:"SASL authentication mechanism"},{name:"tls",required:!1,label:"Use TLS",tooltip:"Enable TLS (Transport Layer Security)",type:"on|off"},{name:"tls_skip_verify",required:!1,label:"Skip TLS Verification",tooltip:"Trust server TLS without verification",type:"on|off"},{name:"client_tls_cert",required:!1,label:"Client Cert",tooltip:"Client cert for mTLS authentication",type:"string",placeholder:"Enter Client Cert"},{name:"client_tls_key",required:!1,label:"Client Cert Key",tooltip:"Client cert key for mTLS authentication",type:"string",placeholder:"Enter Client Cert Key"},{name:"tls_client_auth",required:!1,label:"TLS Client Auth",tooltip:"ClientAuth determines the Kafka server's policy for TLS client authorization",type:"string"},{name:"version",required:!1,label:"Version",tooltip:"Specify the version of the Kafka cluster",type:"string"}]},r=e=>e.filter((e=>""!==e.value)),s=(e,t,n)=>{const i=e.target,o=i.value;let a=[...n];return i.checked?a.push(o):a=a.filter((e=>e!==o)),t(a),a},c=e=>{let t={};return e.forEach((e=>{if(e.env_override){const n={value:e.env_override.value||"",overrideEnv:e.env_override.name||""};t={...t,[e.key]:n}}})),t}},94770:(e,t,n)=>{n.r(t),n.d(t,{default:()=>s,valueDef:()=>r});var i=n(72791),o=n(29945),a=n(59447),l=n(80184);const r=(e,t,n)=>{let i="on|off"===t?"off":"";if(n.length>0){const t=n.find((t=>t.key===e));t&&(i=t.value||"")}return i},s=e=>{let{onChange:t,fields:n,defaultVals:s,overrideEnv:c}=e;const[d,u]=(0,i.useState)([]),p=n||[],h=s||[];(0,i.useEffect)((()=>{const e=n.map((e=>({key:e.name,value:r(e.name,e.type,h)})));u(e)}),[n,s]),(0,i.useEffect)((()=>{t(d)}),[d]);const f=(e,t,n)=>{const i=[...d];t=t.trim(),i[n]={key:e,value:t},u(i)},m=(e,t)=>{const n=d[t];if(n){const t=null===c||void 0===c?void 0:c["".concat(n.key)];if(t)return(0,l.jsx)(o.bSr,{label:e.label,actionButton:(0,l.jsx)(o.rjZ,{item:!0,sx:{display:"flex",justifyContent:"flex-end",paddingRight:"10px"},children:(0,l.jsx)(o.ua7,{tooltip:"This value is set from the ".concat(t.overrideEnv," environment variable"),placement:"left",children:(0,l.jsx)(o.zD0,{style:{width:20}})})}),sx:{width:"100%"},children:t.value})}switch(e.type){case"on|off":const i=n?n.value:"off";return(0,l.jsx)(o.rsf,{onChange:n=>{const i=n.target.checked?"on":"off";f(e.name,i,t)},id:e.name,name:e.name,label:e.label,value:"switch_on",tooltip:e.tooltip,checked:"on"===i});case"csv":return(0,l.jsx)(a.Z,{elements:n?n.value:"",label:e.label,name:e.name,onChange:n=>{let i="";i=Array.isArray(n)?n.join(","):n,f(e.name,i,t)},tooltip:e.tooltip,commonPlaceholder:e.placeholder,withBorder:!0});case"comment":return(0,l.jsx)(o.q5m,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:n?n.value:"",onChange:n=>f(e.name,n.target.value,t),placeholder:e.placeholder});default:return(0,l.jsx)(o.Wzg,{id:e.name,name:e.name,label:e.label,tooltip:e.tooltip,value:n?n.value:"",onChange:n=>f(e.name,n.target.value,t),placeholder:e.placeholder})}};return(0,l.jsx)(o.ltY,{withBorders:!1,containerPadding:!1,children:p.map(((e,t)=>(0,l.jsx)(i.Fragment,{children:m(e,t)},e.name)))})}},90767:(e,t,n)=>{n.d(t,{Z:()=>u});var i=n(72791),o=n(31776),a=n(82342),l=n(23508),r=n(29945),s=n(87995),c=n(44690),d=n(80184);const u=e=>{let{configurationName:t,closeResetModalAndRefresh:n,resetOpen:u}=e;const p=(0,c.TL)(),[h,f]=(0,i.useState)(!1);(0,i.useEffect)((()=>{h&&o.h.configs.resetConfig(t).then((()=>{f(!1),n(!0)})).catch((e=>{f(!1),p((0,s.Ih)((0,a.g)(e.error)))}))}),[n,t,h,p]);return(0,d.jsx)(l.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:u,titleIcon:(0,d.jsx)(r.NvT,{}),isLoading:h,onConfirm:()=>{f(!0)},onClose:()=>{n(!1)},confirmationContent:(0,d.jsxs)(i.Fragment,{children:[h&&(0,d.jsx)(r.kod,{}),(0,d.jsxs)(i.Fragment,{children:["Are you sure you want to restore these configurations to default values?",(0,d.jsx)("br",{}),(0,d.jsx)("b",{style:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"},children:"Please note that this may cause your system to not be accessible"})]})]})})}}}]); +//# sourceMappingURL=1432.4da0630f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1432.4da0630f.chunk.js.map b/portal-ui/build/static/js/1432.4da0630f.chunk.js.map new file mode 100644 index 000000000..609d0fa4f --- /dev/null +++ b/portal-ui/build/static/js/1432.4da0630f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1432.4da0630f.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CSVMultiSelector/CSVMultiSelector.tsx","screens/Console/EventDestinations/WebhookSettings/AddEndpointModal.tsx","screens/Console/EventDestinations/WebhookSettings/DeleteWebhookEndpoint.tsx","screens/Console/EventDestinations/WebhookSettings/EditWebhookEndpoint.tsx","screens/Console/EventDestinations/WebhookSettings/WebhookSettings.tsx","screens/Console/EventDestinations/CustomForms/EditConfiguration.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationForm.tsx","screens/Console/Configurations/ConfigurationPanels/ExportConfigButton.tsx","screens/Console/Configurations/ConfigurationPanels/ImportConfigButton.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationOptions.tsx","screens/Console/Configurations/utils.tsx","screens/Console/EventDestinations/ConfTargetGeneric.tsx","screens/Console/EventDestinations/CustomForms/ResetConfigurationModal.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 .\nimport React, {\n ChangeEvent,\n createRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n Fragment,\n} from \"react\";\nimport get from \"lodash/get\";\nimport { AddIcon, Box, HelpIcon, InputBox, InputLabel, Tooltip } from \"mds\";\n\ninterface ICSVMultiSelector {\n elements: string;\n name: string;\n label: string;\n tooltip?: string;\n commonPlaceholder?: string;\n withBorder?: boolean;\n onChange: (elements: string) => void;\n}\n\nconst CSVMultiSelector = ({\n elements,\n name,\n label,\n tooltip = \"\",\n commonPlaceholder = \"\",\n onChange,\n withBorder = false,\n}: ICSVMultiSelector) => {\n const [currentElements, setCurrentElements] = useState([\"\"]);\n const bottomList = createRef();\n\n // Use effect to get the initial values from props\n useEffect(() => {\n if (\n currentElements.length === 1 &&\n currentElements[0] === \"\" &&\n elements &&\n elements !== \"\"\n ) {\n const elementsSplit = elements.split(\",\");\n elementsSplit.push(\"\");\n\n setCurrentElements(elementsSplit);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elements, currentElements]);\n\n // Use effect to send new values to onChange\n useEffect(() => {\n if (currentElements.length > 1) {\n const refScroll = bottomList.current;\n if (refScroll) {\n refScroll.scrollIntoView(false);\n }\n }\n }, [currentElements, bottomList]);\n\n const onChangeCallback = useCallback(\n (newString: string) => {\n onChange(newString);\n },\n [onChange],\n );\n\n // We avoid multiple re-renders / hang issue typing too fast\n const firstUpdate = useRef(true);\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n const elementsString = currentElements\n .filter((element) => element.trim() !== \"\")\n .join(\",\");\n\n onChangeCallback(elementsString);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentElements]);\n\n // If the last input is not empty, we add a new one\n const addEmptyLine = (elementsUp: string[]) => {\n if (elementsUp[elementsUp.length - 1].trim() !== \"\") {\n const cpList = [...elementsUp];\n cpList.push(\"\");\n setCurrentElements(cpList);\n }\n };\n\n // Onchange function for input box, we get the dataset-index & only update that value in the array\n const onChangeElement = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentElements];\n const index = get(e.target, \"dataset.index\", \"0\");\n const indexNum = parseInt(index);\n updatedElement[indexNum] = e.target.value;\n\n setCurrentElements(updatedElement);\n };\n\n const inputs = currentElements.map((element, index) => {\n return (\n : null}\n overlayAction={() => {\n addEmptyLine(currentElements);\n }}\n />\n );\n });\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n \n \n \n \n \n \n \n )}\n \n \n {inputs}\n
\n \n \n \n );\n};\nexport default CSVMultiSelector;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport {\n Button,\n ConsoleIcon,\n FormLayout,\n Grid,\n InputBox,\n PendingItemsIcon,\n ProgressBar,\n WebhookIcon,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\n\ninterface IEndpointModal {\n open: boolean;\n type: string;\n onCloseEndpoint: () => void;\n}\n\nconst AddEndpointModal = ({ open, type, onCloseEndpoint }: IEndpointModal) => {\n const [name, setName] = useState(\"\");\n const [endpoint, setEndpoint] = useState(\"\");\n const [authToken, setAuthToken] = useState(\"\");\n const [saving, setSaving] = useState(false);\n const [invalidInputs, setInvalidInput] = useState([\n \"name\",\n \"endpoint\",\n ]);\n const [initialInputs, setInitialInputs] = useState([\n \"name\",\n \"endpoint\",\n \"auth-token\",\n ]);\n\n const dispatch = useAppDispatch();\n\n const saveWebhook = () => {\n if (saving) {\n return;\n }\n\n if (invalidInputs.length !== 0) {\n return;\n }\n\n if (name.trim() === \"\") {\n setInvalidInput([...invalidInputs, \"name\"]);\n\n return;\n }\n\n if (endpoint.trim() === \"\") {\n setInvalidInput([...invalidInputs, \"endpoint\"]);\n\n return;\n }\n\n setSaving(true);\n\n const payload = {\n key_values: [\n {\n key: \"endpoint\",\n value: endpoint,\n },\n {\n key: \"auth_token\",\n value: authToken,\n },\n ],\n arn_resource_id: name,\n };\n\n api.configs\n .setConfig(type, payload)\n .then((res) => {\n setSaving(false);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n\n onCloseEndpoint();\n dispatch(configurationIsLoading(true));\n })\n .catch((err) => {\n setSaving(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const initializeInput = (name: string) => {\n setInitialInputs(initialInputs.filter((item) => item !== name));\n };\n\n const validateInput = (name: string, valid: boolean) => {\n if (invalidInputs.includes(name) && valid) {\n setInvalidInput(invalidInputs.filter((item) => item !== name));\n return;\n }\n\n if (!valid && !invalidInputs.includes(name)) {\n setInvalidInput([...invalidInputs, name]);\n }\n };\n\n let title = \"Add new Webhook\";\n let icon = ;\n\n switch (type) {\n case \"logger_webhook\":\n title = \"New Logger Webhook\";\n icon = ;\n break;\n case \"audit_webhook\":\n title = \"New Audit Webhook\";\n icon = ;\n break;\n }\n\n return (\n \n \n \n ) => {\n initializeInput(\"name\");\n setName(event.target.value);\n validateInput(\"name\", event.target.validity.valid);\n }}\n error={\n invalidInputs.includes(\"name\") && !initialInputs.includes(\"name\")\n ? \"Invalid Name\"\n : \"\"\n }\n label=\"Name\"\n value={name}\n pattern={\"^(?=.*[a-zA-Z0-9]).{1,}$\"}\n required\n />\n ) => {\n initializeInput(\"endpoint\");\n setEndpoint(event.target.value);\n validateInput(\"endpoint\", event.target.validity.valid);\n }}\n error={\n invalidInputs.includes(\"endpoint\") &&\n !initialInputs.includes(\"endpoint\")\n ? \"Invalid Endpoint set\"\n : \"\"\n }\n label=\"Endpoint\"\n value={endpoint}\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?(\\\\/[a-zA-Z0-9\\\\-.\\\\/]*)?$\"\n }\n required\n />\n ) => {\n initializeInput(\"auth-token\");\n setAuthToken(event.target.value);\n }}\n label=\"Auth Token\"\n value={authToken}\n />\n \n {saving && (\n \n \n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default AddEndpointModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, Fragment } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IDeleteWebhookEndpoint {\n modalOpen: boolean;\n onClose: () => void;\n selectedARN: string;\n type: string;\n}\n\nconst DeleteWebhookEndpoint = ({\n modalOpen,\n onClose,\n selectedARN,\n}: IDeleteWebhookEndpoint) => {\n const [deleteLoading, setDeleteLoading] = useState(false);\n\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (deleteLoading) {\n api.configs\n .resetConfig(selectedARN)\n .then(() => {\n setDeleteLoading(false);\n dispatch(setServerNeedsRestart(true));\n dispatch(configurationIsLoading(true));\n onClose();\n })\n .catch((err) => {\n setDeleteLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [deleteLoading, dispatch, onClose, selectedARN]);\n\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n const defaultWH = !selectedARN.includes(\":\");\n\n let message = \"Are you sure you want to delete the Configured Endpoint\";\n\n // Main webhook, we just reset\n if (defaultWH) {\n message = \"Are you sure you want to reset the Default\";\n }\n\n return (\n }\n onClose={onClose}\n confirmationContent={\n \n {`${message} `}\n {selectedARN}?\n \n }\n />\n );\n};\n\nexport default DeleteWebhookEndpoint;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 {\n Button,\n ConsoleIcon,\n FormLayout,\n Grid,\n InputBox,\n PendingItemsIcon,\n ProgressBar,\n ReadBox,\n Switch,\n Tooltip,\n WebhookIcon,\n} from \"mds\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\nimport { IConfigurationSys } from \"../../Configurations/types\";\nimport { overrideFields } from \"../../Configurations/utils\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IEndpointModal {\n open: boolean;\n type: string;\n endpointInfo: IConfigurationSys;\n onCloseEndpoint: () => void;\n}\n\nconst EditEndpointModal = ({\n open,\n type,\n endpointInfo,\n onCloseEndpoint,\n}: IEndpointModal) => {\n const [name, setName] = useState(\"\");\n const [endpoint, setEndpoint] = useState(\"\");\n const [authToken, setAuthToken] = useState(\"\");\n const [endpointState, setEndpointState] = useState(\"on\");\n const [saving, setSaving] = useState(false);\n const [invalidInputs, setInvalidInput] = useState([]);\n\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (endpointInfo) {\n const endpointLocate = endpointInfo.key_values.find(\n (key) => key.key === \"endpoint\",\n );\n const tokenLocate = endpointInfo.key_values.find(\n (key) => key.key === \"auth_token\",\n );\n const enable = endpointInfo.key_values.find(\n (key) => key.key === \"enable\",\n );\n\n let invalidInputs: string[] = [];\n\n if (endpointLocate) {\n const endpointValue = endpointLocate.value;\n\n if (endpointValue === \"\") {\n invalidInputs.push(\"endpoint\");\n } else {\n setEndpoint(endpointValue);\n }\n }\n\n if (tokenLocate) {\n const tokenValue = tokenLocate.value;\n\n if (tokenValue === \"\") {\n invalidInputs.push(\"auth-token\");\n } else {\n setAuthToken(tokenValue);\n }\n }\n\n if (enable) {\n if (enable.value === \"off\") {\n setEndpointState(enable.value);\n }\n }\n\n setName(endpointInfo.name || \"\");\n setInvalidInput(invalidInputs);\n }\n }, [endpointInfo]);\n\n const updateWebhook = () => {\n if (saving) {\n return;\n }\n\n if (invalidInputs.length !== 0) {\n return;\n }\n\n if (!endpoint || endpoint.trim() === \"\") {\n setInvalidInput([...invalidInputs, \"endpoint\"]);\n\n return;\n }\n\n setSaving(true);\n\n const payload = {\n key_values: [\n {\n key: \"endpoint\",\n value: endpoint,\n },\n {\n key: \"auth_token\",\n value: authToken,\n },\n {\n key: \"enable\",\n value: endpointState,\n },\n ],\n };\n\n api.configs\n .setConfig(name, payload)\n .then((res) => {\n setSaving(false);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n\n onCloseEndpoint();\n dispatch(configurationIsLoading(true));\n })\n .catch((err) => {\n setSaving(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const validateInput = (name: string, valid: boolean) => {\n if (invalidInputs.includes(name) && valid) {\n setInvalidInput(invalidInputs.filter((item) => item !== name));\n return;\n }\n\n if (!valid && !invalidInputs.includes(name)) {\n setInvalidInput([...invalidInputs, name]);\n }\n };\n\n const defaultWH = !name.includes(\":\");\n const hasOverride = endpointInfo.key_values.filter(\n (itm) => !!itm.env_override,\n );\n\n const overrideValues = overrideFields(hasOverride);\n\n let title = \"Edit Webhook\";\n let icon = ;\n\n switch (type) {\n case \"logger_webhook\":\n title = `Edit ${defaultWH ? \" the Default \" : \"\"}Logger Webhook`;\n icon = ;\n break;\n case \"audit_webhook\":\n title = `Edit ${defaultWH ? \" the Default \" : \"\"}Audit Webhook`;\n icon = ;\n break;\n }\n\n if (hasOverride.length > 0) {\n title = \"View env variable Webhook\";\n }\n\n return (\n \n \n \n {hasOverride.length > 0 ? (\n \n \n \n \n \n \n }\n >\n {overrideValues.enable?.value || \"-\"}\n \n \n \n \n \n \n }\n >\n {overrideValues.endpoint?.value || \"-\"}\n \n \n \n \n \n \n }\n >\n {overrideValues.auth_token?.value || \"-\"}\n \n \n ) : (\n \n ) => {\n const value = e.target.checked ? \"on\" : \"off\";\n setEndpointState(value);\n }}\n id={\"endpoint_enabled\"}\n name={\"endpoint_enabled\"}\n label={\"Enabled\"}\n value={\"switch_on\"}\n checked={endpointState === \"on\"}\n />\n ) => {\n setEndpoint(event.target.value);\n validateInput(\"endpoint\", event.target.validity.valid);\n }}\n error={\n invalidInputs.includes(\"endpoint\")\n ? \"Invalid Endpoint set\"\n : \"\"\n }\n label=\"Endpoint\"\n value={endpoint}\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?(\\\\/[a-zA-Z0-9\\\\-.\\\\/]*)?$\"\n }\n required\n />\n ) => {\n setAuthToken(event.target.value);\n }}\n label=\"Auth Token\"\n value={authToken}\n />\n {saving && (\n \n \n \n )}\n \n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default EditEndpointModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport { IConfigurationSys, IElementValue } from \"../../Configurations/types\";\nimport {\n Button,\n ConsoleIcon,\n DataTable,\n Grid,\n TierOfflineIcon,\n TierOnlineIcon,\n} from \"mds\";\nimport AddEndpointModal from \"./AddEndpointModal\";\nimport DeleteWebhookEndpoint from \"./DeleteWebhookEndpoint\";\nimport EditWebhookEndpoint from \"./EditWebhookEndpoint\";\nimport { Configuration } from \"api/consoleApi\";\n\ninterface WebhookSettingsProps {\n WebhookSettingslist: Configuration[];\n setResetConfigurationOpen: () => void;\n type: string;\n}\n\nconst WebhookSettings = ({\n setResetConfigurationOpen,\n WebhookSettingslist,\n type,\n}: WebhookSettingsProps) => {\n const [newEndpointOpen, setNewEndpointOpen] = useState(false);\n const [deleteWebhookOpen, setDeleteWebhookOpen] = useState(false);\n const [editWebhookOpen, setEditWebhookOpen] = useState(false);\n const [selectedARN, setSelectedARN] = useState(\"\");\n const [selectedEndpoint, setSelectedEndpoint] =\n useState(null);\n\n const renderEndpoint = (item: IElementValue[]) => {\n const endpointFilter = item.find((itm) => itm.key === \"endpoint\");\n\n if (endpointFilter) {\n if (endpointFilter.env_override) {\n return endpointFilter.env_override.value;\n }\n\n return endpointFilter.value;\n }\n\n return \"\";\n };\n\n const renderWebhookStatus = (item: IElementValue[]) => {\n const EnableFilter = item.find((itm) => itm.key === \"enable\");\n\n if (EnableFilter?.env_override) {\n const overrideEnabled =\n !EnableFilter?.env_override.value ||\n EnableFilter?.env_override.value === \"on\" ||\n !EnableFilter?.env_override.value\n ? \"Enabled\"\n : \"Disabled\";\n return (\n \n \n {overrideEnabled ? \"Enabled\" : \"Disabled\"}\n \n );\n }\n\n // If enable is not set, then enabled by default\n if (!EnableFilter || EnableFilter.value === \"on\" || !EnableFilter.value) {\n return (\n \n \n Enabled\n \n );\n }\n\n return (\n \n \n Disabled\n \n );\n };\n\n const onCloseDelete = () => {\n setDeleteWebhookOpen(false);\n setSelectedARN(\"\");\n };\n\n const onCloseEditWebhook = () => {\n setEditWebhookOpen(false);\n setSelectedEndpoint(null);\n };\n\n const actions = [\n {\n type: \"view\",\n onClick: (item: IConfigurationSys) => {\n if (item.name) {\n setEditWebhookOpen(true);\n setSelectedEndpoint(item);\n }\n },\n },\n {\n type: \"delete\",\n onClick: (item: IConfigurationSys) => {\n if (item.name) {\n setDeleteWebhookOpen(true);\n setSelectedARN(item.name);\n }\n },\n disableButtonFunction: (item: string) => {\n const wHook = WebhookSettingslist.find(\n (element) => element.name === item,\n );\n\n if (wHook) {\n const hasOverride = wHook.key_values?.filter(\n (itm) => !!itm.env_override,\n );\n\n // Has override values, we cannot delete.\n if (hasOverride && hasOverride.length > 0) {\n return true;\n }\n\n return false;\n }\n return false;\n },\n },\n ];\n return (\n \n {newEndpointOpen && (\n {\n setNewEndpointOpen(false);\n }}\n />\n )}\n {deleteWebhookOpen && (\n \n )}\n {editWebhookOpen && selectedEndpoint && (\n \n )}\n \n {\n setNewEndpointOpen(true);\n }}\n >\n New Endpoint\n \n \n \n \n

Currently Configured Endpoints

\n \n
\n
\n
\n );\n};\nexport default WebhookSettings;\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 get from \"lodash/get\";\nimport { Box, Button, Grid, Loader } from \"mds\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { Configuration, ConfigurationKV } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport {\n fieldsConfigurations,\n overrideFields,\n removeEmptyFields,\n} from \"../../Configurations/utils\";\nimport {\n IConfigurationElement,\n IElementValue,\n IOverrideEnv,\n KVField,\n} from \"../../Configurations/types\";\nimport {\n configurationIsLoading,\n setErrorSnackMessage,\n setHelpName,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport WebhookSettings from \"../WebhookSettings/WebhookSettings\";\nimport ConfTargetGeneric from \"../ConfTargetGeneric\";\nimport ResetConfigurationModal from \"./ResetConfigurationModal\";\n\ninterface IAddNotificationEndpointProps {\n selectedConfiguration: IConfigurationElement;\n className?: string;\n}\n\nconst EditConfiguration = ({\n selectedConfiguration,\n className = \"\",\n}: IAddNotificationEndpointProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const { pathname = \"\" } = useLocation();\n\n let selConfigTab = pathname.substring(pathname.lastIndexOf(\"/\") + 1);\n selConfigTab = selConfigTab === \"settings\" ? \"region\" : selConfigTab;\n\n //Local States\n const [valuesObj, setValueObj] = useState([]);\n const [saving, setSaving] = useState(false);\n const [configValues, setConfigValues] = useState([]);\n const [configSubsysList, setConfigSubsysList] = useState([]);\n const [resetConfigurationOpen, setResetConfigurationOpen] =\n useState(false);\n const [overrideEnvs, setOverrideEnvs] = useState({});\n\n const loadingConfig = useSelector(\n (state: AppState) => state.system.loadingConfigurations,\n );\n\n useEffect(() => {\n dispatch(configurationIsLoading(true));\n }, [selConfigTab, dispatch]);\n\n useEffect(() => {\n if (loadingConfig) {\n const configId = get(selectedConfiguration, \"configuration_id\", false);\n\n if (configId) {\n api.configs\n .configInfo(configId)\n .then((res) => {\n setConfigSubsysList(res.data);\n let values: ConfigurationKV[] = get(res.data[0], \"key_values\", []);\n\n const fieldsConfig: KVField[] = fieldsConfigurations[configId];\n\n const keyVals: IElementValue[] = fieldsConfig.map((field) => {\n const includedValue = values.find(\n (element: ConfigurationKV) => element.key === field.name,\n );\n const customValue = includedValue?.value || \"\";\n\n return {\n key: field.name,\n value: field.customValueProcess\n ? field.customValueProcess(customValue)\n : customValue,\n env_override: includedValue?.env_override,\n };\n });\n\n setConfigValues(keyVals);\n setOverrideEnvs(overrideFields(keyVals));\n dispatch(configurationIsLoading(false));\n })\n .catch((err) => {\n dispatch(configurationIsLoading(false));\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n\n return;\n }\n dispatch(configurationIsLoading(false));\n }\n }, [loadingConfig, selectedConfiguration, dispatch]);\n\n useEffect(() => {\n if (saving) {\n const payload = {\n key_values: removeEmptyFields(valuesObj),\n };\n api.configs\n .setConfig(selectedConfiguration.configuration_id, payload)\n .then((res) => {\n setSaving(false);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n dispatch(configurationIsLoading(true));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n setSaving(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [saving, dispatch, selectedConfiguration, valuesObj, navigate]);\n\n //Fetch Actions\n const submitForm = (event: React.FormEvent) => {\n event.preventDefault();\n setSaving(true);\n };\n\n const onValueChange = useCallback(\n (newValue: IElementValue[]) => {\n setValueObj(newValue);\n },\n [setValueObj],\n );\n\n const continueReset = (restart: boolean) => {\n setResetConfigurationOpen(false);\n dispatch(setServerNeedsRestart(restart));\n if (restart) {\n dispatch(configurationIsLoading(true));\n }\n };\n\n const resetConfigurationMOpen = () => {\n setResetConfigurationOpen(true);\n };\n\n return (\n \n {\n dispatch(\n setHelpName(\n `settings_${selectedConfiguration.configuration_label}`,\n ),\n );\n }}\n >\n {resetConfigurationOpen && (\n \n )}\n {loadingConfig ? (\n \n \n \n ) : (\n \n {selectedConfiguration.configuration_id === \"logger_webhook\" ||\n selectedConfiguration.configuration_id === \"audit_webhook\" ? (\n \n ) : (\n \n \n \n \n \n \n \n    \n \n \n \n \n )}\n \n )}\n
\n
\n );\n};\n\nexport default EditConfiguration;\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 { useLocation } from \"react-router-dom\";\nimport { Grid } from \"mds\";\nimport { configurationElements } from \"../utils\";\nimport EditConfiguration from \"../../EventDestinations/CustomForms/EditConfiguration\";\n\nconst ConfigurationsList = () => {\n const { pathname = \"\" } = useLocation();\n\n const configName = pathname.substring(pathname.lastIndexOf(\"/\") + 1);\n\n const validActiveConfig = configurationElements.find(\n (element) => element.configuration_id === configName,\n );\n const containerClassName = `${configName}`;\n return (\n \n {validActiveConfig && (\n \n )}\n \n );\n};\n\nexport default ConfigurationsList;\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 { Button, UploadIcon } from \"mds\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport { performDownload } from \"../../../../common/utils\";\nimport { DateTime } from \"luxon\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useDispatch } from \"react-redux\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\n\nconst ExportConfigButton = () => {\n const dispatch = useDispatch();\n const [isReqLoading, invokeApi] = useApi(\n (res: any) => {\n //base64 encoded information so decode before downloading.\n performDownload(\n new Blob([window.atob(res.value)]),\n `minio-server-config-${DateTime.now().toFormat(\n \"LL-dd-yyyy-HH-mm-ss\",\n )}.conf`,\n );\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n return (\n \n {\n invokeApi(\"GET\", `api/v1/configs/export`);\n }}\n icon={}\n label={\"Export\"}\n variant={\"regular\"}\n disabled={isReqLoading}\n />\n \n );\n};\n\nexport default ExportConfigButton;\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, useRef, useState } from \"react\";\nimport { Button, DownloadIcon } from \"mds\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../../systemSlice\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AppState } from \"../../../../store\";\n\nconst ImportConfigButton = () => {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const needsRestart = useSelector(\n (state: AppState) => state.system.serverNeedsRestart,\n );\n\n const [refreshPage, setRefreshPage] = useState(\n undefined,\n );\n const fileUpload = useRef(null);\n\n const [isReqLoading, invokeApi] = useApi(\n (res: any) => {\n //base64 encoded information so decode before downloading.\n dispatch(setServerNeedsRestart(true)); //import should refreshPage as per mc.\n setRefreshPage(true);\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n useEffect(() => {\n if (!needsRestart && refreshPage) {\n navigate(0); // refresh the page.\n }\n }, [needsRestart, refreshPage, navigate]);\n\n const handleUploadButton = (e: any) => {\n if (\n e === null ||\n e === undefined ||\n e.target.files === null ||\n e.target.files === undefined\n ) {\n return;\n }\n e.preventDefault();\n const [fileToUpload] = e.target.files;\n\n const formData = new FormData();\n const blobFile = new Blob([fileToUpload], { type: fileToUpload.type });\n\n formData.append(\"file\", blobFile, fileToUpload.name);\n // @ts-ignore\n invokeApi(\"POST\", `api/v1/configs/import`, formData);\n\n e.target.value = \"\";\n };\n\n return (\n \n \n \n {\n if (fileUpload && fileUpload.current) {\n fileUpload.current.click();\n }\n }}\n icon={}\n label={\"Import\"}\n variant={\"regular\"}\n disabled={isReqLoading}\n />\n \n \n );\n};\n\nexport default ImportConfigButton;\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 {\n Box,\n Grid,\n HelpBox,\n PageLayout,\n ScreenTitle,\n SettingsIcon,\n Tabs,\n} from \"mds\";\n\nimport { configurationElements } from \"../utils\";\nimport {\n Navigate,\n Route,\n Routes,\n useLocation,\n useNavigate,\n} from \"react-router-dom\";\n\nimport ConfigurationForm from \"./ConfigurationForm\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport ExportConfigButton from \"./ExportConfigButton\";\nimport ImportConfigButton from \"./ImportConfigButton\";\n\nimport HelpMenu from \"../../HelpMenu\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { api } from \"../../../../api\";\nimport { IElement } from \"../types\";\nimport { errorToHandler } from \"../../../../api/errors\";\n\nconst getRoutePath = (path: string) => {\n return `${IAM_PAGES.SETTINGS}/${path}`;\n};\n\n// region is not part of config subsystem list.\nconst NON_SUB_SYS_CONFIG_ITEMS = [\"region\"];\nconst IGNORED_CONFIG_SUB_SYS = [\"cache\"]; // cache config is not supported.\n\nconst ConfigurationOptions = () => {\n const { pathname = \"\" } = useLocation();\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [configSubSysList, setConfigSubSysList] = useState([]);\n const fetchConfigSubSysList = useCallback(async () => {\n api.configs\n .listConfig() // get a list of available config subsystems.\n .then((res) => {\n if (res && res?.data && res?.data?.configurations) {\n const confSubSysList = (res?.data?.configurations || []).reduce(\n (acc: string[], { key = \"\" }) => {\n if (!IGNORED_CONFIG_SUB_SYS.includes(key)) {\n acc.push(key);\n }\n return acc;\n },\n [],\n );\n\n setConfigSubSysList(confSubSysList);\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err)));\n });\n }, [dispatch]);\n\n useEffect(() => {\n fetchConfigSubSysList();\n dispatch(setHelpName(\"settings_Region\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const availableConfigSubSys = configurationElements.filter(\n ({ configuration_id }: IElement) => {\n return (\n NON_SUB_SYS_CONFIG_ITEMS.includes(configuration_id) ||\n configSubSysList.includes(configuration_id) ||\n !configSubSysList.length\n );\n },\n );\n\n return (\n \n } />\n \n \n }\n title={\"MinIO Configuration:\"}\n actions={\n \n \n \n \n }\n sx={{ marginBottom: 15 }}\n />\n {\n navigate(path);\n }}\n useRouteTabs\n options={availableConfigSubSys.map((element) => {\n const { configuration_id, configuration_label, icon } = element;\n return {\n tabConfig: {\n id: `settings-tab-${configuration_label}`,\n label: configuration_label,\n value: configuration_id,\n icon: icon,\n to: getRoutePath(configuration_id),\n },\n };\n })}\n routes={\n \n {availableConfigSubSys.map((element) => (\n }\n />\n ))}\n }\n />\n \n }\n />\n \n \n }\n help={\n \n MinIO supports a variety of configurations ranging from\n encryption, compression, region, notifications, etc.\n
\n
\n You can learn more at our{\" \"}\n \n documentation\n \n .\n
\n }\n />\n
\n
\n
\n );\n};\n\nexport default ConfigurationOptions;\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 from \"react\";\nimport { IElement, IElementValue, IOverrideEnv, OverrideValue } from \"./types\";\nimport {\n CodeIcon,\n CompressIcon,\n ConsoleIcon,\n FindReplaceIcon,\n FirstAidIcon,\n KeyIcon,\n LogsIcon,\n PendingItemsIcon,\n PublicIcon,\n} from \"mds\";\n\nexport const configurationElements: IElement[] = [\n {\n icon: ,\n configuration_id: \"region\",\n configuration_label: \"Region\",\n },\n {\n icon: ,\n configuration_id: \"compression\",\n configuration_label: \"Compression\",\n },\n {\n icon: ,\n configuration_id: \"api\",\n configuration_label: \"API\",\n },\n {\n icon: ,\n configuration_id: \"heal\",\n configuration_label: \"Heal\",\n },\n {\n icon: ,\n configuration_id: \"scanner\",\n configuration_label: \"Scanner\",\n },\n {\n icon: ,\n configuration_id: \"etcd\",\n configuration_label: \"Etcd\",\n },\n {\n icon: ,\n configuration_id: \"logger_webhook\",\n configuration_label: \"Logger Webhook\",\n },\n {\n icon: ,\n configuration_id: \"audit_webhook\",\n configuration_label: \"Audit Webhook\",\n },\n {\n icon: ,\n configuration_id: \"audit_kafka\",\n configuration_label: \"Audit Kafka\",\n },\n];\n\nexport const fieldsConfigurations: any = {\n region: [\n {\n name: \"name\",\n required: true,\n label: \"Server Location\",\n tooltip: 'Name of the location of the server e.g. \"us-west-rack2\"',\n type: \"string\",\n placeholder: \"e.g. us-west-rack-2\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n ],\n compression: [\n {\n name: \"extensions\",\n required: false,\n label: \"Extensions\",\n tooltip:\n 'Extensions to compress e.g. \".txt\", \".log\" or \".csv\" - you can write one per field',\n type: \"csv\",\n placeholder: \"Enter an Extension\",\n withBorder: true,\n },\n {\n name: \"mime_types\",\n required: false,\n label: \"Mime Types\",\n tooltip:\n 'Mime types e.g. \"text/*\", \"application/json\" or \"application/xml\" - you can write one per field',\n type: \"csv\",\n placeholder: \"Enter a Mime Type\",\n withBorder: true,\n },\n ],\n api: [\n {\n name: \"requests_max\",\n required: false,\n label: \"Requests Max\",\n tooltip: \"Maximum number of concurrent requests, e.g. '1600'\",\n type: \"number\",\n placeholder: \"Enter Requests Max\",\n },\n {\n name: \"cors_allow_origin\",\n required: false,\n label: \"Cors Allow Origin\",\n tooltip: \"List of origins allowed for CORS requests\",\n type: \"csv\",\n placeholder: \"Enter allowed origin e.g. https://example.com\",\n },\n {\n name: \"replication_workers\",\n required: false,\n label: \"Replication Workers\",\n tooltip: \"Number of replication workers, defaults to 100\",\n type: \"number\",\n placeholder: \"Enter Replication Workers\",\n },\n {\n name: \"replication_failed_workers\",\n required: false,\n label: \"Replication Failed Workers\",\n tooltip:\n \"Number of replication workers for recently failed replicas, defaults to 4\",\n type: \"number\",\n placeholder: \"Enter Replication Failed Workers\",\n },\n ],\n heal: [\n {\n name: \"bitrotscan\",\n required: false,\n label: \"Bitrot Scan\",\n tooltip:\n \"Perform bitrot scan on disks when checking objects during scanner\",\n type: \"on|off\",\n },\n {\n name: \"max_sleep\",\n required: false,\n label: \"Max Sleep\",\n tooltip:\n \"Maximum sleep duration between objects to slow down heal operation, e.g. 2s\",\n type: \"duration\",\n placeholder: \"Enter Max Sleep Duration\",\n },\n {\n name: \"max_io\",\n required: false,\n label: \"Max IO\",\n tooltip:\n \"Maximum IO requests allowed between objects to slow down heal operation, e.g. 3\",\n type: \"number\",\n placeholder: \"Enter Max IO\",\n },\n ],\n scanner: [\n {\n name: \"delay\",\n required: false,\n label: \"Delay Multiplier\",\n tooltip: \"Scanner delay multiplier, defaults to '10.0'\",\n type: \"number\",\n placeholder: \"Enter Delay\",\n },\n {\n name: \"max_wait\",\n required: false,\n label: \"Max Wait\",\n tooltip: \"Maximum wait time between operations, defaults to '15s'\",\n type: \"duration\",\n placeholder: \"Enter Max Wait\",\n },\n {\n name: \"cycle\",\n required: false,\n label: \"Cycle\",\n tooltip: \"Time duration between scanner cycles, defaults to '1m'\",\n type: \"duration\",\n placeholder: \"Enter Cycle\",\n },\n ],\n etcd: [\n {\n name: \"endpoints\",\n required: true,\n label: \"Endpoints\",\n tooltip:\n 'List of etcd endpoints e.g. \"http://localhost:2379\" - you can write one per field',\n type: \"csv\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"path_prefix\",\n required: false,\n label: \"Path Prefix\",\n tooltip: 'Namespace prefix to isolate tenants e.g. \"customer1/\"',\n type: \"string\",\n placeholder: \"Enter Path Prefix\",\n },\n {\n name: \"coredns_path\",\n required: false,\n label: \"Coredns Path\",\n tooltip: 'Shared bucket DNS records, default is \"/skydns\"',\n type: \"string\",\n placeholder: \"Enter Coredns Path\",\n },\n {\n name: \"client_cert\",\n required: false,\n label: \"Client Cert\",\n tooltip: \"Client cert for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_cert_key\",\n required: false,\n label: \"Client Cert Key\",\n tooltip: \"Client cert key for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert Key\",\n },\n {\n name: \"comment\",\n required: false,\n label: \"Comment\",\n tooltip: \"You can add a comment to this setting\",\n type: \"comment\",\n multiline: true,\n placeholder: \"Enter custom notes if any\",\n },\n ],\n logger_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n audit_webhook: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n type: \"string\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n required: true,\n label: \"Auth Token\",\n type: \"string\",\n placeholder: \"Enter Auth Token\",\n },\n ],\n audit_kafka: [\n {\n name: \"enable\",\n required: false,\n label: \"Enable\",\n tooltip: \"Enable audit_kafka target\",\n type: \"on|off\",\n customValueProcess: (origValue: string) => {\n return origValue === \"\" || origValue === \"on\" ? \"on\" : \"off\";\n },\n },\n {\n name: \"brokers\",\n required: true,\n label: \"Brokers\",\n type: \"csv\",\n placeholder: \"Enter Kafka Broker\",\n },\n {\n name: \"topic\",\n required: false,\n label: \"Topic\",\n type: \"string\",\n placeholder: \"Enter Kafka Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n },\n {\n name: \"sasl\",\n required: false,\n label: \"Use SASL\",\n tooltip:\n \"Enable SASL (Simple Authentication and Security Layer) authentication\",\n type: \"on|off\",\n },\n {\n name: \"sasl_username\",\n required: false,\n label: \"SASL Username\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n },\n {\n name: \"sasl_password\",\n required: false,\n label: \"SASL Password\",\n type: \"password\",\n placeholder: \"Enter SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n },\n {\n name: \"sasl_mechanism\",\n required: false,\n label: \"SASL Mechanism\",\n type: \"string\",\n placeholder: \"Enter SASL Mechanism\",\n tooltip: \"SASL authentication mechanism\",\n },\n {\n name: \"tls\",\n required: false,\n label: \"Use TLS\",\n tooltip: \"Enable TLS (Transport Layer Security)\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n required: false,\n label: \"Skip TLS Verification\",\n tooltip: \"Trust server TLS without verification\",\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n required: false,\n label: \"Client Cert\",\n tooltip: \"Client cert for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_tls_key\",\n required: false,\n label: \"Client Cert Key\",\n tooltip: \"Client cert key for mTLS authentication\",\n type: \"string\",\n placeholder: \"Enter Client Cert Key\",\n },\n {\n name: \"tls_client_auth\",\n required: false,\n label: \"TLS Client Auth\",\n tooltip:\n \"ClientAuth determines the Kafka server's policy for TLS client authorization\",\n type: \"string\",\n },\n {\n name: \"version\",\n required: false,\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster\",\n type: \"string\",\n },\n ],\n};\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const selectSAs = (\n e: React.ChangeEvent,\n setSelectedSAs: Function,\n selectedSAs: string[],\n) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedSAs]; // We clone the selectedSAs array\n if (checked) {\n // If the user has checked this field we need to push this to selectedSAs\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedSAs(elements);\n return elements;\n};\n\nexport const overrideFields = (formFields: IElementValue[]): IOverrideEnv => {\n let overrideReturn: IOverrideEnv = {};\n\n formFields.forEach((envItem) => {\n // it has override values, we construct the value\n if (envItem.env_override) {\n const value: OverrideValue = {\n value: envItem.env_override.value || \"\",\n overrideEnv: envItem.env_override.name || \"\",\n };\n\n overrideReturn = { ...overrideReturn, [envItem.key]: value };\n }\n });\n\n return overrideReturn;\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, useEffect, useState } from \"react\";\nimport {\n CommentBox,\n ConsoleIcon,\n FormLayout,\n Grid,\n InputBox,\n ReadBox,\n Switch,\n Tooltip,\n} from \"mds\";\nimport { IElementValue, IOverrideEnv, KVField } from \"../Configurations/types\";\nimport CSVMultiSelector from \"../Common/FormComponents/CSVMultiSelector/CSVMultiSelector\";\n\ninterface IConfGenericProps {\n onChange: (newValue: IElementValue[]) => void;\n fields: KVField[];\n defaultVals?: IElementValue[];\n overrideEnv?: IOverrideEnv;\n}\n\n// Function to get defined values,\n//we make this because the backed sometimes don't return all the keys when there is an initial configuration\nexport const valueDef = (\n key: string,\n type: string,\n defaults: IElementValue[],\n) => {\n let defValue = type === \"on|off\" ? \"off\" : \"\";\n\n if (defaults.length > 0) {\n const storedConfig = defaults.find((element) => element.key === key);\n\n if (storedConfig) {\n defValue = storedConfig.value || \"\";\n }\n }\n\n return defValue;\n};\n\nconst ConfTargetGeneric = ({\n onChange,\n fields,\n defaultVals,\n overrideEnv,\n}: IConfGenericProps) => {\n const [valueHolder, setValueHolder] = useState([]);\n const fieldsElements = !fields ? [] : fields;\n const defValList = !defaultVals ? [] : defaultVals;\n\n // Effect to create all the values to hold\n useEffect(() => {\n const values: IElementValue[] = fields.map((field) => {\n const stateInsert: IElementValue = {\n key: field.name,\n value: valueDef(field.name, field.type, defValList),\n };\n return stateInsert;\n });\n\n setValueHolder(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, defaultVals]);\n\n useEffect(() => {\n onChange(valueHolder);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueHolder]);\n\n const setValueElement = (key: string, value: string, index: number) => {\n const valuesDup = [...valueHolder];\n value = value.trim();\n valuesDup[index] = { key, value };\n\n setValueHolder(valuesDup);\n };\n\n const fieldDefinition = (field: KVField, item: number) => {\n const holderItem = valueHolder[item];\n\n if (holderItem) {\n // Override Value with env var, we display generic string component\n const override = overrideEnv?.[`${holderItem.key}`];\n\n if (override) {\n return (\n \n \n \n \n \n }\n sx={{ width: \"100%\" }}\n >\n {override.value}\n \n );\n }\n }\n\n switch (field.type) {\n case \"on|off\":\n const value = holderItem ? holderItem.value : \"off\";\n\n return (\n ) => {\n const value = e.target.checked ? \"on\" : \"off\";\n setValueElement(field.name, value, item);\n }}\n id={field.name}\n name={field.name}\n label={field.label}\n value={\"switch_on\"}\n tooltip={field.tooltip}\n checked={value === \"on\"}\n />\n );\n case \"csv\":\n return (\n {\n let valCh = \"\";\n\n if (Array.isArray(value)) {\n valCh = value.join(\",\");\n } else {\n valCh = value;\n }\n\n setValueElement(field.name, valCh, item);\n }}\n tooltip={field.tooltip}\n commonPlaceholder={field.placeholder}\n withBorder={true}\n />\n );\n case \"comment\":\n return (\n setValueElement(field.name, e.target.value, item)}\n placeholder={field.placeholder}\n />\n );\n default:\n return (\n ) =>\n setValueElement(field.name, e.target.value, item)\n }\n placeholder={field.placeholder}\n />\n );\n }\n };\n\n return (\n \n {fieldsElements.map((field, item) => (\n {fieldDefinition(field, item)}\n ))}\n \n );\n};\n\nexport default ConfTargetGeneric;\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 { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\nimport { ConfirmDeleteIcon, ProgressBar } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IResetConfiguration {\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n configurationName,\n closeResetModalAndRefresh,\n resetOpen,\n}: IResetConfiguration) => {\n const dispatch = useAppDispatch();\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api.configs\n .resetConfig(configurationName)\n .then(() => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err) => {\n setResetLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [closeResetModalAndRefresh, configurationName, resetLoading, dispatch]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n
\n \n Please note that this may cause your system to not be accessible\n \n
\n
\n }\n />\n );\n};\n\nexport default ResetConfigurationModal;\n"],"names":["_ref","elements","name","label","tooltip","commonPlaceholder","onChange","withBorder","currentElements","setCurrentElements","useState","bottomList","createRef","useEffect","length","elementsSplit","split","push","refScroll","current","scrollIntoView","onChangeCallback","useCallback","newString","firstUpdate","useRef","elementsString","filter","element","trim","join","onChangeElement","e","persist","updatedElement","index","get","target","parseInt","value","inputs","map","_jsx","InputBox","id","concat","toString","placeholder","overlayIcon","AddIcon","overlayAction","elementsUp","cpList","addEmptyLine","Fragment","children","_jsxs","Box","sx","display","className","InputLabel","alignItems","marginLeft","width","Tooltip","placement","HelpIcon","withBorders","overflowY","height","position","ref","open","type","onCloseEndpoint","setName","endpoint","setEndpoint","authToken","setAuthToken","saving","setSaving","invalidInputs","setInvalidInput","initialInputs","setInitialInputs","dispatch","useAppDispatch","initializeInput","item","validateInput","valid","includes","title","icon","WebhookIcon","ConsoleIcon","PendingItemsIcon","ModalWrapper","modalOpen","onClose","titleIcon","FormLayout","containerPadding","event","validity","error","pattern","required","Grid","xs","marginBottom","ProgressBar","modalStyleUtils","modalButtonBar","Button","variant","disabled","onClick","marginRight","color","saveWebhook","payload","key_values","key","arn_resource_id","api","configs","setConfig","then","res","setServerNeedsRestart","data","restart","setSnackBarMessage","configurationIsLoading","catch","err","setErrorSnackMessage","errorToHandler","selectedARN","deleteLoading","setDeleteLoading","resetConfig","defaultWH","message","ConfirmDialog","confirmText","isOpen","isLoading","onConfirm","onConfirmDelete","ConfirmDeleteIcon","confirmationContent","_overrideValues$enabl","_overrideValues$enabl2","_overrideValues$endpo","_overrideValues$endpo2","_overrideValues$auth_","_overrideValues$auth_2","endpointInfo","endpointState","setEndpointState","endpointLocate","find","tokenLocate","enable","endpointValue","tokenValue","hasOverride","itm","env_override","overrideValues","overrideFields","ReadBox","actionButton","justifyContent","paddingRight","overrideEnv","style","auth_token","Switch","checked","updateWebhook","setResetConfigurationOpen","WebhookSettingslist","newEndpointOpen","setNewEndpointOpen","deleteWebhookOpen","setDeleteWebhookOpen","editWebhookOpen","setEditWebhookOpen","setSelectedARN","selectedEndpoint","setSelectedEndpoint","actions","disableButtonFunction","wHook","_wHook$key_values","container","AddEndpointModal","DeleteWebhookEndpoint","onCloseDelete","EditWebhookEndpoint","onCloseEditWebhook","padding","DataTable","columns","elementKey","renderFunction","EnableFilter","overrideEnabled","flexDirection","justifyItems","fontSize","fill","TierOfflineIcon","TierOnlineIcon","endpointFilter","itemActions","idField","records","entityName","customPaperHeight","selectedConfiguration","navigate","useNavigate","pathname","useLocation","selConfigTab","substring","lastIndexOf","valuesObj","setValueObj","configValues","setConfigValues","configSubsysList","setConfigSubsysList","resetConfigurationOpen","overrideEnvs","setOverrideEnvs","loadingConfig","useSelector","state","system","loadingConfigurations","configId","configInfo","values","keyVals","fieldsConfigurations","field","includedValue","customValue","customValueProcess","removeEmptyFields","configuration_id","onValueChange","newValue","resetConfigurationMOpen","onMouseMove","setHelpName","configuration_label","ResetConfigurationModal","configurationName","closeResetModalAndRefresh","resetOpen","textAlign","paddingTop","Loader","WebhookSettings","noValidate","onSubmit","preventDefault","flexFlow","gridTemplateColumns","gap","ConfTargetGeneric","fields","defaultVals","maxHeight","ConfigurationsList","configName","validActiveConfig","configurationElements","containerClassName","minWidth","EditConfiguration","ExportConfigButton","useDispatch","isReqLoading","invokeApi","useApi","performDownload","Blob","window","atob","DateTime","now","toFormat","TooltipWrapper","UploadIcon","ImportConfigButton","needsRestart","serverNeedsRestart","refreshPage","setRefreshPage","undefined","fileUpload","files","fileToUpload","formData","FormData","blobFile","append","click","DownloadIcon","NON_SUB_SYS_CONFIG_ITEMS","IGNORED_CONFIG_SUB_SYS","ConfigurationOptions","configSubSysList","setConfigSubSysList","fetchConfigSubSysList","async","listConfig","_res$data","configurations","_res$data2","confSubSysList","reduce","acc","availableConfigSubSys","_ref2","PageHeaderWrapper","HelpMenu","PageLayout","ScreenTitle","SettingsIcon","Tabs","currentTabOrPath","onTabClick","path","useRouteTabs","options","tabConfig","to","IAM_PAGES","SETTINGS","routes","Routes","Route","ConfigurationForm","Navigate","HelpBox","iconComponent","help","href","rel","PublicIcon","CompressIcon","CodeIcon","FirstAidIcon","FindReplaceIcon","KeyIcon","LogsIcon","region","compression","heal","scanner","etcd","multiline","logger_webhook","audit_webhook","audit_kafka","origValue","formFields","selectSAs","setSelectedSAs","selectedSAs","targetD","overrideReturn","forEach","envItem","valueDef","defaults","defValue","storedConfig","valueHolder","setValueHolder","fieldsElements","defValList","setValueElement","valuesDup","fieldDefinition","holderItem","override","CSVMultiSelector","valCh","Array","isArray","CommentBox","resetLoading","setResetLoading","resetConfiguration","maxWidth","whiteSpace","wordWrap"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1516.73fcb9af.chunk.js b/portal-ui/build/static/js/1516.73fcb9af.chunk.js new file mode 100644 index 000000000..f8f6c46ee --- /dev/null +++ b/portal-ui/build/static/js/1516.73fcb9af.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1516],{51516:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>F});var r=n(72791),i=n(29945),o=n(78687),s=n(87995),a=n(44690),l=n(74440),c=n(80184);const u=e=>{let{email:t}=e;return(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(l.Z,{email:t}),(0,c.jsx)(i.rjZ,{item:!0,xs:12,sx:{marginTop:25},children:(0,c.jsxs)(i.xuv,{sx:{padding:"20px"},children:["Login to"," ",(0,c.jsx)("a",{href:"https://subnet.min.io",target:"_blank",children:"SUBNET"})," ","to avail support for this MinIO cluster"]})})]})},d=()=>{const e="mc admin config set {alias} subnet proxy={proxy}",[t,n]=(0,r.useState)(!1);return(0,c.jsx)(r.Fragment,{children:(0,c.jsxs)(i.xuv,{withBorders:!0,sx:{display:"flex",padding:"23px",marginTop:"40px",alignItems:"start",justifyContent:"space-between"},children:[(0,c.jsxs)(i.xuv,{sx:{display:"flex",flexFlow:"column"},children:[(0,c.jsxs)(i.xuv,{sx:{display:"flex","& .min-icon":{height:"22px",width:"22px"}},children:[(0,c.jsx)(i.ewm,{}),(0,c.jsx)("div",{style:{marginLeft:"10px",fontWeight:600},children:"Proxy Configuration"})]}),(0,c.jsxs)(i.xuv,{sx:{marginTop:"10px",marginBottom:"10px",fontSize:"14px"},children:["For airgap/firewalled environments it is possible to"," ",(0,c.jsx)("a",{href:"https://min.io/docs/minio/linux/reference/minio-mc-admin/mc-admin-config.html?ref=con",target:"_blank",children:"configure a proxy"})," ","to connect to SUBNET ."]}),(0,c.jsx)(i.xuv,{children:t&&(0,c.jsx)(i.Wzg,{disabled:!0,id:"subnetProxy",name:"subnetProxy",placeholder:"",onChange:()=>{},label:"",value:e,overlayIcon:(0,c.jsx)(i.TIy,{}),overlayAction:()=>navigator.clipboard.writeText(e)})})]}),(0,c.jsx)(i.xuv,{sx:{display:"flex"},children:(0,c.jsx)(i.rsf,{value:"enableProxy",id:"enableProxy",name:"enableProxy",checked:t,onChange:e=>{n(e.target.checked)}})})]})})};var x=n(36825),p=n(81207),g=n(96382),f=n(38442),h=n(56087);const m=(0,g.hg)("register/fetchLicenseInfo",(async(e,t)=>{let{getState:n,dispatch:r}=t;const i=n(),o=(0,f.F)(h.C3,h.LC[h.gA.LICENSE],!0);i.register.loadingLicenseInfo||(o?(r((0,x.pI)(!0)),p.Z.invoke("GET","/api/v1/subnet/info").then((e=>{r((0,x.aO)(e)),r((0,x.Dr)(!0)),r((0,x.pI)(!1))})).catch((e=>{e.detailedError.toLowerCase()!=="License is not present".toLowerCase()&&e.detailedError.toLowerCase()!=="license not found".toLowerCase()&&r((0,s.Ih)(e)),r((0,x.Dr)(!1)),r((0,x.pI)(!1))}))):r((0,x.pI)(!1)))})),b=(0,g.hg)("register/callRegister",(async(e,t)=>{let{dispatch:n}=t;const r={token:e.token,account_id:e.account_id};p.Z.invoke("POST","/api/v1/subnet/register",r).then((()=>{n((0,x.K4)(!1)),n((0,s.cN)(!0)),n((0,x.jS)()),n(m())})).catch((e=>{n((0,s.Ih)(e)),n((0,x.K4)(!1))}))})),y=(0,g.hg)("register/subnetLoginWithMFA",(async(e,t)=>{let{getState:n,rejectWithValue:r,dispatch:i}=t;const o=n(),a=o.register.subnetEmail,l=o.register.subnetMFAToken,c=o.register.subnetOTP;if(o.register.loading)return;i((0,x.K4)(!0));const u={username:a,otp:c,mfa_token:l};p.Z.invoke("POST","/api/v1/subnet/login/mfa",u).then((e=>{i((0,x.K4)(!1)),e&&e.access_token&&e.organizations.length>0&&(1===e.organizations.length?i(b({token:e.access_token,account_id:e.organizations[0].accountId.toString()})):(i((0,x.t2)(e.access_token)),i((0,x.dl)(e.organizations)),i((0,x.wK)(e.organizations[0].accountId.toString()))))})).catch((e=>{i((0,s.Ih)(e)),i((0,x.K4)(!1)),i((0,x.Z7)(""))}))})),v=(0,g.hg)("register/subnetLogin",(async(e,t)=>{let{getState:n,rejectWithValue:r,dispatch:i}=t;const o=n(),a=o.register.license,l=o.register.subnetPassword,c=o.register.subnetEmail;if(o.register.loading)return;i((0,x.K4)(!0));let u={username:c,password:l,apiKey:a};p.Z.invoke("POST","/api/v1/subnet/login",u).then((e=>{i((0,x.K4)(!1)),e&&e.registered?(i((0,x.jS)()),i(m())):e&&e.mfa_token?i((0,x.dK)(e.mfa_token)):e&&e.access_token&&e.organizations.length>0&&(i((0,x.t2)(e.access_token)),i((0,x.dl)(e.organizations)),i((0,x.wK)(e.organizations[0].accountId.toString())))})).catch((e=>{i((0,s.Ih)(e)),i((0,x.K4)(!1)),i((0,x.jS)())}))}));var j=n(23814),w=n(27454),k=n(78029),C=n.n(k);const S=e=>{let{icon:t,description:n}=e;return(0,c.jsxs)(i.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,c.jsx)(i.xuv,{className:"muted",style:{fontSize:"14px",fontStyle:"italic"},children:n})]})},T=()=>(0,c.jsx)(i.KfX,{title:"Why should I register?",iconComponent:(0,c.jsx)(i.M9A,{}),help:(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(i.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:"Registering this cluster with the MinIO Subscription Network (SUBNET) provides the following benefits in addition to the commercial license and SLA backed support."}),(0,c.jsxs)(i.xuv,{sx:{display:"flex",flexFlow:"column"},children:[(0,c.jsx)(S,{icon:(0,c.jsx)(i._qw,{}),description:"Call Home Monitoring"}),(0,c.jsx)(S,{icon:(0,c.jsx)(i.toM,{}),description:"Health Diagnostics"}),(0,c.jsx)(S,{icon:(0,c.jsx)(i.Fsz,{}),description:"Performance Analysis"}),(0,c.jsx)(S,{icon:(0,c.jsx)(i.EQx,{}),description:(0,c.jsx)("a",{href:"https://min.io/signup?ref=con",target:"_blank",children:"More Features"})})]})]})});var P=n(9505);const O=()=>{const e=(0,a.TL)(),t=(0,o.v9)((e=>e.register.subnetRegToken)),n=(0,o.v9)((e=>e.register.clusterRegistered)),l=(0,o.v9)((e=>e.register.licenseInfo)),d="https://subnet.min.io/cluster/register?token=".concat(t),[x,p]=(0,r.useState)(""),[g,f]=(0,P.Z)((()=>{e(m()),e((0,s.cN)(!0))}),(t=>{e((0,s.Ih)(t))}));return(0,c.jsx)(r.Fragment,{children:(0,c.jsx)(i.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",padding:"43px"},children:n&&l?(0,c.jsx)(u,{email:l.email}):(0,c.jsx)(i.ltY,{title:"Register cluster in an Air-gap environment",icon:(0,c.jsx)(i.YL8,{}),helpBox:(0,c.jsx)(T,{}),withBorders:!1,containerPadding:!1,children:(0,c.jsx)(i.xuv,{sx:{display:"flex",flexFlow:"column",flex:"2",marginTop:"15px","& .step-row":{fontSize:14,display:"flex",marginTop:"15px",marginBottom:"15px"}},children:(0,c.jsxs)(i.xuv,{children:[(0,c.jsx)(i.xuv,{className:"step-row",children:(0,c.jsx)(i.xuv,{className:"step-text",children:"Click on the link to register this cluster in SUBNET and get a License Key for this Air-Gap deployment"})}),(0,c.jsxs)(i.xuv,{sx:{flex:"1",display:"flex",alignItems:"center",gap:3},children:[(0,c.jsx)("a",{href:d,target:"_blank",children:"https://subnet.min.io/cluster/register"}),(0,c.jsx)(w.Z,{tooltip:"Copy to Clipboard",children:(0,c.jsx)(C(),{text:d,children:(0,c.jsx)(i.zxk,{type:"button",id:"copy-ult-to-clip-board",icon:(0,c.jsx)(i.TIy,{}),color:"primary",variant:"regular"})})})]}),(0,c.jsx)(i.xuv,{className:"muted",sx:{marginTop:"25px"},children:"Note: If this machine does not have internet connection, Copy paste the following URL in a browser where you access SUBNET and follow the instructions to complete the registration"}),(0,c.jsxs)(i.xuv,{sx:{marginTop:"25px",display:"flex",flexDirection:"column"},children:[(0,c.jsxs)("label",{style:{fontWeight:"bold",marginBottom:"10px"},children:["Paste the License Key"," "]}),(0,c.jsx)(i.q5m,{value:x,disabled:g,label:"",id:"licenseKey",name:"licenseKey",placeholder:"License Key",onChange:e=>{p(e.target.value)}})]}),(0,c.jsx)(i.xuv,{sx:j.ID.modalButtonBar,children:(0,c.jsx)(i.zxk,{id:"apply-license-key",onClick:()=>{f("PUT","/api/v1/configs/subnet",{key_values:[{key:"license",value:x}]})},variant:"callAction",disabled:!x||g,label:"Apply Cluster License"})})]})})})})})},I=()=>{const e=(0,a.TL)(),t=(0,o.v9)((e=>e.register.subnetMFAToken)),n=(0,o.v9)((e=>e.register.subnetOTP)),r=(0,o.v9)((e=>e.register.loading));return(0,c.jsxs)(i.ltY,{title:"Two-Factor Authentication",helpBox:(0,c.jsx)(T,{}),withBorders:!1,containerPadding:!1,children:[(0,c.jsx)(i.xuv,{sx:{fontSize:14,display:"flex",flexFlow:"column",marginBottom:"30px"},children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,c.jsx)(i.xuv,{children:(0,c.jsx)(i.Wzg,{overlayIcon:(0,c.jsx)(i.mBM,{}),id:"subnet-otp",name:"subnet-otp",onChange:t=>e((0,x.Z7)(t.target.value)),placeholder:"",label:"",value:n})}),(0,c.jsx)(i.xuv,{sx:j.ID.modalButtonBar,children:(0,c.jsx)(i.zxk,{id:"verify",onClick:()=>e(y()),disabled:r||0===n.trim().length||0===t.trim().length,variant:"callAction",label:"Verify"})})]})},B=()=>{const e=(0,a.TL)(),t=(0,o.v9)((e=>e.register.subnetAccessToken)),n=(0,o.v9)((e=>e.register.selectedSubnetOrganization)),r=(0,o.v9)((e=>e.register.subnetOrganizations)),s=(0,o.v9)((e=>e.register.loading));return(0,c.jsxs)(i.ltY,{title:"Register MinIO cluster",containerPadding:!0,withBorders:!1,helpBox:(0,c.jsx)(T,{}),children:[(0,c.jsx)(i.PhF,{id:"subnet-organization",name:"subnet-organization",onChange:t=>e((0,x.wK)(t)),label:"Select an organization",value:n,options:r.map((e=>({label:e.company,value:e.accountId.toString()})))}),(0,c.jsx)(i.xuv,{sx:j.ID.modalButtonBar,children:(0,c.jsx)(i.zxk,{id:"register-cluster",onClick:()=>()=>{s||(e((0,x.K4)(!0)),t&&n&&e(b({token:t,account_id:n})))},disabled:s||0===t.trim().length,variant:"callAction",label:"Register"})})]})},E=()=>{const e=(0,a.TL)(),t=(0,o.v9)((e=>e.register.subnetPassword)),n=(0,o.v9)((e=>e.register.subnetEmail)),r=(0,o.v9)((e=>e.register.loading));return(0,c.jsxs)(i.ltY,{icon:(0,c.jsx)(i.dRy,{}),title:"Online activation of MinIO Subscription Network License",withBorders:!1,containerPadding:!1,helpBox:(0,c.jsx)(T,{}),children:[(0,c.jsx)(i.xuv,{sx:{fontSize:"14px",display:"flex",flexFlow:"column",marginBottom:"30px"},children:"Use your MinIO Subscription Network login credentials to register this cluster."}),(0,c.jsxs)(i.xuv,{sx:{flex:"1"},children:[(0,c.jsx)(i.Wzg,{id:"subnet-email",name:"subnet-email",onChange:t=>e((0,x.Ze)(t.target.value)),label:"Email",value:n,overlayIcon:(0,c.jsx)(i.oyc,{})}),(0,c.jsx)(i.Wzg,{id:"subnet-password",name:"subnet-password",onChange:t=>e((0,x.lr)(t.target.value)),label:"Password",type:"password",value:t}),(0,c.jsxs)(i.xuv,{sx:j.ID.modalButtonBar,children:[(0,c.jsx)(i.zxk,{id:"sign-up",type:"submit",variant:"regular",onClick:e=>{e.preventDefault(),window.open("https://min.io/signup?ref=con","_blank")},label:"Sign up"}),(0,c.jsx)(i.zxk,{id:"register-credentials",type:"submit",variant:"callAction",disabled:r||0===n.trim().length||0===t.trim().length,onClick:()=>e(v()),label:"Register"})]})]})]})};var z=n(79844),A=n(99670),_=n(57689),R=n(23508);const L=e=>{let{open:t,closeModal:n,onSet:o}=e;const l=(0,a.TL)(),[u,d]=(0,r.useState)(""),[x,p]=(0,r.useState)(""),[g,f]=(0,r.useState)(""),[h,m]=(0,r.useState)(""),[b,y]=(0,P.Z)((e=>{e.mfa_token?f(e.mfa_token):e.access_token?y("GET","/api/v1/subnet/apikey?token=".concat(e.access_token)):(o(e.apiKey),n())}),(e=>{l((0,s.Ih)(e)),n(),d(""),p(""),f(""),m("")})),v=()=>(0,c.jsxs)(i.ltY,{withBorders:!1,containerPadding:!1,children:[(0,c.jsx)(i.Wzg,{id:"subnet-email",name:"subnet-email",onChange:e=>d(e.target.value),label:"Email",value:u,overlayIcon:(0,c.jsx)(i.oyc,{})}),(0,c.jsx)(i.Wzg,{id:"subnet-password",name:"subnet-password",onChange:e=>p(e.target.value),label:"Password",type:"password",value:x})]}),j=()=>(0,c.jsx)(i.xuv,{sx:{display:"flex"},children:(0,c.jsxs)(i.xuv,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,c.jsx)(i.xuv,{sx:{fontSize:14,display:"flex",flexFlow:"column",marginTop:20,marginBottom:20},children:"Two-Factor Authentication"}),(0,c.jsx)(i.xuv,{children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,c.jsx)(i.xuv,{sx:{flex:"1",marginTop:"30px"},children:(0,c.jsx)(i.Wzg,{overlayIcon:(0,c.jsx)(i.mBM,{}),id:"subnet-otp",name:"subnet-otp",onChange:e=>m(e.target.value),placeholder:"",label:"",value:h})})]})});return t?(0,c.jsx)(R.Z,{title:"Get API Key from SUBNET",confirmText:"Get API Key",isOpen:t,titleIcon:(0,c.jsx)(i.szr,{}),isLoading:b,cancelText:"Cancel",onConfirm:()=>{""!==g?y("POST","/api/v1/subnet/login/mfa",{username:u,otp:h,mfa_token:g}):y("POST","/api/v1/subnet/login",{username:u,password:x})},onClose:n,confirmButtonProps:{variant:"callAction",disabled:!u||!x||b,hidden:!0},cancelButtonProps:{disabled:b},confirmationContent:""===g?v():j()}):null},D=e=>{let{registerEndpoint:t}=e;const n=(0,_.s0)(),[o,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(""),[x,g]=(0,r.useState)(!1),[f,m]=(0,r.useState)(!1),b=(0,a.TL)(),y=(0,r.useCallback)((()=>{if(x)return;g(!0);let e={apiKey:u};p.Z.invoke("POST",t,e).then((e=>{g(!1),e&&e.registered&&(b((0,s.cN)(!0)),n(h.gA.LICENSE))})).catch((e=>{b((0,s.Ih)(e)),g(!1),v()}))}),[u,b,x,t,n]);(0,r.useEffect)((()=>{f&&y()}),[f,y]);const v=()=>{d(""),m(!1)};return(0,c.jsxs)(i.ltY,{title:"Register cluster with API key",icon:(0,c.jsx)(i.dRy,{}),containerPadding:!1,withBorders:!1,helpBox:(0,c.jsx)(T,{}),children:[(0,c.jsx)(i.xuv,{sx:{fontSize:14,display:"flex",flexFlow:"column",marginBottom:"30px"},children:"Use your MinIO Subscription Network API Key to register this cluster."}),(0,c.jsxs)(i.xuv,{sx:{flex:"1"},children:[(0,c.jsx)(i.Wzg,{id:"api-key",name:"api-key",onChange:e=>d(e.target.value),label:"API Key",value:u}),(0,c.jsxs)(i.xuv,{sx:j.ID.modalButtonBar,children:[(0,c.jsx)(i.zxk,{id:"get-from-subnet",variant:"regular",disabled:x,onClick:()=>l(!0),label:"Get from SUBNET"}),(0,c.jsx)(i.zxk,{id:"register",type:"submit",variant:"callAction",disabled:x||0===u.trim().length,onClick:()=>y(),label:"Register"})]})]}),(0,c.jsx)(L,{open:o,closeModal:()=>l(!1),onSet:e=>{d(e),m(!0)}})]})},F=()=>{const e=(0,a.TL)(),t=(0,o.v9)((e=>e.register.subnetMFAToken)),n=(0,o.v9)((e=>e.register.subnetAccessToken)),l=(0,o.v9)((e=>e.register.subnetRegToken)),g=(0,o.v9)((e=>e.register.subnetOrganizations)),f=(0,o.v9)((e=>e.register.loading)),h=(0,o.v9)((e=>e.register.loadingLicenseInfo)),b=(0,o.v9)((e=>e.register.clusterRegistered)),y=(0,o.v9)((e=>e.register.licenseInfo)),v=(0,o.v9)((e=>e.register.curTab)),[j,w]=(0,r.useState)(!0);(0,r.useEffect)((()=>()=>{e((0,x.jS)())}),[e]),(0,r.useEffect)((()=>{if("simple-tab-2"===v&&!f&&!l){(()=>{e((0,x.K4)(!0)),p.Z.invoke("GET","/api/v1/subnet/registration-token").then((t=>{e((0,x.K4)(!1)),t&&t.regToken&&e((0,x.wz)(t.regToken))})).catch((t=>{console.error(t),e((0,s.Ih)(t)),e((0,x.K4)(!1))}))})()}}),[v,f,l,e]),(0,r.useEffect)((()=>{j&&(e(m()),w(!1))}),[j,w,e]);let k=(0,c.jsx)(r.Fragment,{});k=n&&g.length>0?(0,c.jsx)(B,{}):t?(0,c.jsx)(I,{}):(0,c.jsx)(E,{});const C=(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(i.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",padding:"43px"},children:b&&y?(0,c.jsx)(u,{email:y.email}):(0,c.jsx)(D,{registerEndpoint:"/api/v1/subnet/login"})}),(0,c.jsx)(d,{})]}),S=(0,c.jsx)(O,{}),T=(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(i.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",padding:"43px"},children:b&&y?(0,c.jsx)(u,{email:y.email}):k}),!b&&(0,c.jsx)(d,{})]}),P=h?(0,c.jsx)("div",{children:"Loading.."}):T;return(0,r.useEffect)((()=>{e((0,s.Sc)("register"))}),[]),(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(z.Z,{label:"Register to MinIO Subscription Network",actions:(0,c.jsx)(A.Z,{})}),(0,c.jsx)(i.Xgh,{children:(0,c.jsx)(i.mQc,{horizontal:!0,currentTabOrPath:v,onTabClick:t=>{e((0,x.m)(t))},options:[{tabConfig:{label:"Credentials",id:"simple-tab-0"},content:P},{tabConfig:{label:"API Key",id:"simple-tab-1"},content:C},{tabConfig:{label:"Air-Gap",id:"simple-tab-2"},content:S}]})})]})}},74440:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(72791);var r=n(29945),i=n(80184);const o=e=>{let{email:t=""}=e;return(0,i.jsxs)(r.xuv,{sx:{height:67,color:"#ffffff",display:"flex",position:"relative",top:-30,left:-32,width:"calc(100% + 64px)",alignItems:"center",justifyContent:"space-between",backgroundColor:"#2781B0",padding:"0 25px 0 25px","& .registered-box, .reg-badge-box":{display:"flex",alignItems:"center",justifyContent:"flex-start"},"& .reg-badge-box":{marginLeft:"20px","& .min-icon":{fill:"#2781B0"}}},children:[(0,i.jsxs)(r.xuv,{className:"registered-box",children:[(0,i.jsx)(r.xuv,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,i.jsxs)(r.xuv,{className:"reg-badge-box",children:[(0,i.jsx)(r.SA,{}),(0,i.jsx)(r.xuv,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,i.jsxs)(r.xuv,{className:"registered-acc-box",sx:{alignItems:"center",justifyContent:"flex-start",display:"flex",["@media (max-width: ".concat(r.Egj.sm,"px)")]:{display:"none"}},children:[(0,i.jsx)(r.xuv,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,i.jsx)(r.xuv,{sx:{marginLeft:"8px",fontWeight:600},children:t})]})]})}},76998:(e,t,n)=>{"use strict";var r=n(42458),i={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,s,a,l,c,u=!1;t||(t={}),n=t.debug||!1;try{if(s=r(),a=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.ariaHidden="true",c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=i[t.format]||i.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),a.selectNodeContents(c),l.addRange(a),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(a):l.removeAllRanges()),c&&document.body.removeChild(c),s()}return u}},568:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var i=a(n(72791)),o=a(n(76998)),s=["text","onCopy","options","children"];function a(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function d(e,t){for(var n=0;n{"use strict";var r=n(568).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},42458:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r.\n\nimport React, { Fragment, useState } from \"react\";\nimport { CopyIcon, SettingsIcon, Box, Grid, Switch, InputBox } from \"mds\";\nimport RegistrationStatusBanner from \"./RegistrationStatusBanner\";\n\nexport const ClusterRegistered = ({ email }: { email: string }) => {\n return (\n \n \n \n \n Login to{\" \"}\n \n SUBNET\n {\" \"}\n to avail support for this MinIO cluster\n \n \n \n );\n};\n\nexport const ProxyConfiguration = () => {\n const proxyConfigurationCommand =\n \"mc admin config set {alias} subnet proxy={proxy}\";\n const [displaySubnetProxy, setDisplaySubnetProxy] = useState(false);\n return (\n \n \n \n \n \n
\n Proxy Configuration\n
\n \n \n For airgap/firewalled environments it is possible to{\" \"}\n \n configure a proxy\n {\" \"}\n to connect to SUBNET .\n \n \n {displaySubnetProxy && (\n {}}\n label=\"\"\n value={proxyConfigurationCommand}\n overlayIcon={}\n overlayAction={() =>\n navigator.clipboard.writeText(proxyConfigurationCommand)\n }\n />\n )}\n \n \n \n ) => {\n setDisplaySubnetProxy(event.target.checked);\n }}\n />\n \n \n
\n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 resetRegisterForm,\n setClusterRegistered,\n setLicenseInfo,\n setLoading,\n setLoadingLicenseInfo,\n setSelectedSubnetOrganization,\n setSubnetAccessToken,\n setSubnetMFAToken,\n setSubnetOrganizations,\n setSubnetOTP,\n} from \"./registerSlice\";\nimport api from \"../../../common/api\";\nimport {\n SubnetInfo,\n SubnetLoginRequest,\n SubnetLoginResponse,\n SubnetLoginWithMFARequest,\n SubnetRegisterRequest,\n} from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { AppState } from \"../../../store\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\n\nexport const fetchLicenseInfo = createAsyncThunk(\n \"register/fetchLicenseInfo\",\n async (_, { getState, dispatch }) => {\n const state = getState() as AppState;\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true,\n );\n\n const loadingLicenseInfo = state.register.loadingLicenseInfo;\n\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n dispatch(setLoadingLicenseInfo(true));\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n dispatch(setLicenseInfo(res));\n dispatch(setClusterRegistered(true));\n dispatch(setLoadingLicenseInfo(false));\n })\n .catch((err: ErrorResponseHandler) => {\n if (\n err.detailedError.toLowerCase() !==\n \"License is not present\".toLowerCase() &&\n err.detailedError.toLowerCase() !==\n \"license not found\".toLowerCase()\n ) {\n dispatch(setErrorSnackMessage(err));\n }\n dispatch(setClusterRegistered(false));\n dispatch(setLoadingLicenseInfo(false));\n });\n } else {\n dispatch(setLoadingLicenseInfo(false));\n }\n },\n);\n\nexport interface ClassRegisterArgs {\n token: string;\n account_id: string;\n}\n\nexport const callRegister = createAsyncThunk(\n \"register/callRegister\",\n async (args: ClassRegisterArgs, { dispatch }) => {\n const request: SubnetRegisterRequest = {\n token: args.token,\n account_id: args.account_id,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/register\", request)\n .then(() => {\n dispatch(setLoading(false));\n dispatch(setServerNeedsRestart(true));\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n },\n);\n\nexport const subnetLoginWithMFA = createAsyncThunk(\n \"register/subnetLoginWithMFA\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const subnetEmail = state.register.subnetEmail;\n const subnetMFAToken = state.register.subnetMFAToken;\n const subnetOTP = state.register.subnetOTP;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n const request: SubnetLoginWithMFARequest = {\n username: subnetEmail,\n otp: subnetOTP,\n mfa_token: subnetMFAToken,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login/mfa\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.access_token && resp.organizations.length > 0) {\n if (resp.organizations.length === 1) {\n dispatch(\n callRegister({\n token: resp.access_token,\n account_id: resp.organizations[0].accountId.toString(),\n }),\n );\n } else {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(setSubnetOTP(\"\"));\n });\n },\n);\n\nexport const subnetLogin = createAsyncThunk(\n \"register/subnetLogin\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const license = state.register.license;\n const subnetPassword = state.register.subnetPassword;\n const subnetEmail = state.register.subnetEmail;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n let request: SubnetLoginRequest = {\n username: subnetEmail,\n password: subnetPassword,\n apiKey: license,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.registered) {\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n } else if (resp && resp.mfa_token) {\n dispatch(setSubnetMFAToken(resp.mfa_token));\n } else if (resp && resp.access_token && resp.organizations.length > 0) {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(resetRegisterForm());\n });\n },\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 React, { Fragment } from \"react\";\nimport {\n CallHomeFeatureIcon,\n DiagnosticsFeatureIcon,\n ExtraFeaturesIcon,\n HelpIconFilled,\n PerformanceFeatureIcon,\n Box,\n HelpBox,\n} from \"mds\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string | React.ReactNode;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n \n \n );\n};\nconst RegisterHelpBox = () => {\n return (\n }\n help={\n \n \n Registering this cluster with the MinIO Subscription Network\n (SUBNET) provides the following benefits in addition to the\n commercial license and SLA backed support.\n \n\n \n }\n description={`Call Home Monitoring`}\n />\n }\n description={`Health Diagnostics`}\n />\n }\n description={`Performance Analysis`}\n />\n }\n description={\n \n More Features\n \n }\n />\n \n \n }\n />\n );\n};\n\nexport default RegisterHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport {\n Box,\n Button,\n CommentBox,\n CopyIcon,\n FormLayout,\n OfflineRegistrationIcon,\n} from \"mds\";\nimport { ClusterRegistered } from \"./utils\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport useApi from \"../Common/Hooks/useApi\";\n\nconst OfflineRegistration = () => {\n const dispatch = useAppDispatch();\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n\n const offlineRegUrl = `https://subnet.min.io/cluster/register?token=${subnetRegToken}`;\n\n const [licenseKey, setLicenseKey] = useState(\"\");\n\n const [isSaving, invokeApplyLicenseApi] = useApi(\n () => {\n dispatch(fetchLicenseInfo());\n dispatch(setServerNeedsRestart(true));\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n const applyAirGapLicense = () => {\n invokeApplyLicenseApi(\"PUT\", `/api/v1/configs/subnet`, {\n key_values: [{ key: \"license\", value: licenseKey }],\n });\n };\n\n return (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n }\n helpBox={}\n withBorders={false}\n containerPadding={false}\n >\n \n \n \n \n Click on the link to register this cluster in SUBNET and get\n a License Key for this Air-Gap deployment\n \n \n\n \n \n https://subnet.min.io/cluster/register\n \n\n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n\n \n Note: If this machine does not have internet connection, Copy\n paste the following URL in a browser where you access SUBNET\n and follow the instructions to complete the registration\n \n\n \n \n {\n setLicenseKey(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default OfflineRegistration;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, Button, FormLayout, InputBox, LockIcon } from \"mds\";\nimport { useSelector } from \"react-redux\";\nimport { setSubnetOTP } from \"./registerSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { subnetLoginWithMFA } from \"./registerThunks\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\n\nconst SubnetMFAToken = () => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetOTP = useSelector((state: AppState) => state.register.subnetOTP);\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n }\n withBorders={false}\n containerPadding={false}\n >\n \n Please enter the 6-digit verification code that was sent to your email\n address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n dispatch(setSubnetOTP(event.target.value))\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n dispatch(subnetLoginWithMFA())}\n disabled={\n loading ||\n subnetOTP.trim().length === 0 ||\n subnetMFAToken.trim().length === 0\n }\n variant=\"callAction\"\n label={\"Verify\"}\n />\n \n \n );\n};\nexport default SubnetMFAToken;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, Button, FormLayout, Select } from \"mds\";\nimport { setLoading, setSelectedSubnetOrganization } from \"./registerSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { callRegister } from \"./registerThunks\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\n\nconst ClusterRegistrationForm = () => {\n const dispatch = useAppDispatch();\n\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n const selectedSubnetOrganization = useSelector(\n (state: AppState) => state.register.selectedSubnetOrganization,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n }\n >\n \n dispatch(setSelectedSubnetOrganization(value as string))\n }\n label=\"Select an organization\"\n value={selectedSubnetOrganization}\n options={subnetOrganizations.map((organization) => ({\n label: organization.company,\n value: organization.accountId.toString(),\n }))}\n />\n \n () => {\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n if (subnetAccessToken && selectedSubnetOrganization) {\n dispatch(\n callRegister({\n token: subnetAccessToken,\n account_id: selectedSubnetOrganization,\n }),\n );\n }\n }}\n disabled={loading || subnetAccessToken.trim().length === 0}\n variant=\"callAction\"\n label={\"Register\"}\n />\n \n \n );\n};\n\nexport default ClusterRegistrationForm;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 {\n Box,\n Button,\n FormLayout,\n InputBox,\n OnlineRegistrationIcon,\n UsersIcon,\n} from \"mds\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSubnetEmail, setSubnetPassword } from \"./registerSlice\";\nimport { subnetLogin } from \"./registerThunks\";\n\nconst OnlineRegistration = () => {\n const dispatch = useAppDispatch();\n\n const subnetPassword = useSelector(\n (state: AppState) => state.register.subnetPassword,\n );\n const subnetEmail = useSelector(\n (state: AppState) => state.register.subnetEmail,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n }\n title={\"Online activation of MinIO Subscription Network License\"}\n withBorders={false}\n containerPadding={false}\n helpBox={}\n >\n \n Use your MinIO Subscription Network login credentials to register this\n cluster.\n \n \n ) =>\n dispatch(setSubnetEmail(event.target.value))\n }\n label=\"Email\"\n value={subnetEmail}\n overlayIcon={}\n />\n ) =>\n dispatch(setSubnetPassword(event.target.value))\n }\n label=\"Password\"\n type={\"password\"}\n value={subnetPassword}\n />\n\n \n {\n e.preventDefault();\n window.open(`https://min.io/signup?ref=con`, \"_blank\");\n }}\n label={\"Sign up\"}\n />\n dispatch(subnetLogin())}\n label={\"Register\"}\n />\n \n \n \n );\n};\n\nexport default OnlineRegistration;\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, { useState } from \"react\";\nimport { Box, FormLayout, InfoIcon, InputBox, LockIcon, UsersIcon } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { useAppDispatch } from \"../../../store\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\n\ninterface IGetApiKeyModalProps {\n open: boolean;\n closeModal: () => void;\n onSet: (apiKey: string) => void;\n}\n\nconst GetApiKeyModal = ({ open, closeModal, onSet }: IGetApiKeyModalProps) => {\n const dispatch = useAppDispatch();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [mfaToken, setMfaToken] = useState(\"\");\n const [subnetOTP, setSubnetOTP] = useState(\"\");\n\n const onError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n closeModal();\n setEmail(\"\");\n setPassword(\"\");\n setMfaToken(\"\");\n setSubnetOTP(\"\");\n };\n\n const onSuccess = (res: any) => {\n if (res.mfa_token) {\n setMfaToken(res.mfa_token);\n } else if (res.access_token) {\n invokeApi(\"GET\", `/api/v1/subnet/apikey?token=${res.access_token}`);\n } else {\n onSet(res.apiKey);\n closeModal();\n }\n };\n\n const [isLoading, invokeApi] = useApi(onSuccess, onError);\n\n const onConfirm = () => {\n if (mfaToken !== \"\") {\n invokeApi(\"POST\", \"/api/v1/subnet/login/mfa\", {\n username: email,\n otp: subnetOTP,\n mfa_token: mfaToken,\n });\n } else {\n invokeApi(\"POST\", \"/api/v1/subnet/login\", { username: email, password });\n }\n };\n\n const getDialogContent = () => {\n if (mfaToken === \"\") {\n return getCredentialsDialog();\n }\n return getMFADialog();\n };\n\n const getCredentialsDialog = () => {\n return (\n \n ) =>\n setEmail(event.target.value)\n }\n label=\"Email\"\n value={email}\n overlayIcon={}\n />\n ) =>\n setPassword(event.target.value)\n }\n label=\"Password\"\n type={\"password\"}\n value={password}\n />\n \n );\n };\n\n const getMFADialog = () => {\n return (\n \n \n \n Two-Factor Authentication\n \n\n \n Please enter the 6-digit verification code that was sent to your\n email address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n setSubnetOTP(event.target.value)\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n \n );\n };\n\n return open ? (\n }\n isLoading={isLoading}\n cancelText={\"Cancel\"}\n onConfirm={onConfirm}\n onClose={closeModal}\n confirmButtonProps={{\n variant: \"callAction\",\n disabled: !email || !password || isLoading,\n hidden: true,\n }}\n cancelButtonProps={{\n disabled: isLoading,\n }}\n confirmationContent={getDialogContent()}\n />\n ) : null;\n};\n\nexport default GetApiKeyModal;\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, { useCallback, useEffect, useState } from \"react\";\nimport { Box, Button, FormLayout, InputBox, OnlineRegistrationIcon } from \"mds\";\nimport { useNavigate } from \"react-router-dom\";\nimport { SubnetLoginRequest, SubnetLoginResponse } from \"../License/types\";\nimport { useAppDispatch } from \"../../../store\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport GetApiKeyModal from \"./GetApiKeyModal\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport api from \"../../../common/api\";\n\ninterface IApiKeyRegister {\n registerEndpoint: string;\n}\n\nconst ApiKeyRegister = ({ registerEndpoint }: IApiKeyRegister) => {\n const navigate = useNavigate();\n\n const [showApiKeyModal, setShowApiKeyModal] = useState(false);\n const [apiKey, setApiKey] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [fromModal, setFromModal] = useState(false);\n const dispatch = useAppDispatch();\n\n const onRegister = useCallback(() => {\n if (loading) {\n return;\n }\n setLoading(true);\n let request: SubnetLoginRequest = { apiKey };\n api\n .invoke(\"POST\", registerEndpoint, request)\n .then((resp: SubnetLoginResponse) => {\n setLoading(false);\n if (resp && resp.registered) {\n dispatch(setServerNeedsRestart(true));\n navigate(IAM_PAGES.LICENSE);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n reset();\n });\n }, [apiKey, dispatch, loading, registerEndpoint, navigate]);\n\n useEffect(() => {\n if (fromModal) {\n onRegister();\n }\n }, [fromModal, onRegister]);\n\n const reset = () => {\n setApiKey(\"\");\n setFromModal(false);\n };\n\n return (\n }\n containerPadding={false}\n withBorders={false}\n helpBox={}\n >\n \n Use your MinIO Subscription Network API Key to register this cluster.\n \n \n ) =>\n setApiKey(event.target.value)\n }\n label=\"API Key\"\n value={apiKey}\n />\n\n \n setShowApiKeyModal(true)}\n label={\"Get from SUBNET\"}\n />\n onRegister()}\n label={\"Register\"}\n />\n \n \n setShowApiKeyModal(false)}\n onSet={(value) => {\n setApiKey(value);\n setFromModal(true);\n }}\n />\n \n );\n};\n\nexport default ApiKeyRegister;\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 { Box, PageLayout, Tabs } from \"mds\";\nimport { SubnetRegTokenResponse } from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { useSelector } from \"react-redux\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { ClusterRegistered, ProxyConfiguration } from \"./utils\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n resetRegisterForm,\n setCurTab,\n setLoading,\n setSubnetRegToken,\n} from \"./registerSlice\";\nimport OfflineRegistration from \"./OfflineRegistration\";\nimport SubnetMFAToken from \"./SubnetMFAToken\";\nimport ClusterRegistrationForm from \"./ClusterRegistrationForm\";\nimport OnlineRegistration from \"./OnlineRegistration\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport api from \"../../../common/api\";\nimport ApiKeyRegister from \"./ApiKeyRegister\";\n\nconst Register = () => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n\n const loading = useSelector((state: AppState) => state.register.loading);\n const loadingLicenseInfo = useSelector(\n (state: AppState) => state.register.loadingLicenseInfo,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n const curTab = useSelector((state: AppState) => state.register.curTab);\n\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n\n useEffect(() => {\n // when unmounted, reset\n return () => {\n dispatch(resetRegisterForm());\n };\n }, [dispatch]);\n\n useEffect(() => {\n if (curTab === \"simple-tab-2\" && !loading && !subnetRegToken) {\n const fetchSubnetRegToken = () => {\n dispatch(setLoading(true));\n api\n .invoke(\"GET\", \"/api/v1/subnet/registration-token\")\n .then((resp: SubnetRegTokenResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.regToken) {\n dispatch(setSubnetRegToken(resp.regToken));\n }\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n };\n fetchSubnetRegToken();\n }\n }, [curTab, loading, subnetRegToken, dispatch]);\n\n useEffect(() => {\n if (initialLicenseLoading) {\n dispatch(fetchLicenseInfo());\n setInitialLicenseLoading(false);\n }\n }, [initialLicenseLoading, setInitialLicenseLoading, dispatch]);\n\n let clusterRegistrationForm: React.ReactElement = ;\n\n if (subnetAccessToken && subnetOrganizations.length > 0) {\n clusterRegistrationForm = ;\n } else if (subnetMFAToken) {\n clusterRegistrationForm = ;\n } else {\n clusterRegistrationForm = ;\n }\n\n const apiKeyRegistration = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n \n )}\n \n \n \n );\n\n const offlineRegistration = ;\n\n const regUi = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n clusterRegistrationForm\n )}\n \n\n {!clusterRegistered && }\n \n );\n\n const loadingUi =
Loading..
;\n const uiToShow = loadingLicenseInfo ? loadingUi : regUi;\n\n useEffect(() => {\n dispatch(setHelpName(\"register\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n }\n />\n\n \n {\n dispatch(setCurTab(newValue));\n }}\n options={[\n {\n tabConfig: {\n label: \"Credentials\",\n id: \"simple-tab-0\",\n },\n content: uiToShow,\n },\n {\n tabConfig: {\n label: \"API Key\",\n id: \"simple-tab-1\",\n },\n content: apiKeyRegistration,\n },\n {\n tabConfig: {\n label: \"Air-Gap\",\n id: \"simple-tab-2\",\n },\n content: offlineRegistration,\n },\n ]}\n />\n \n \n );\n};\n\nexport default Register;\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 { VerifiedIcon, Box, breakPoints } from \"mds\";\n\nconst RegistrationStatusBanner = ({ email = \"\" }: { email?: string }) => {\n return (\n \n \n Register status:\n \n \n \n Registered\n \n \n \n\n \n Registered to:\n {email}\n \n \n );\n};\nexport default RegistrationStatusBanner;\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["ClusterRegistered","_ref","email","_jsxs","Fragment","children","_jsx","RegistrationStatusBanner","Grid","item","xs","sx","marginTop","Box","padding","href","target","ProxyConfiguration","proxyConfigurationCommand","displaySubnetProxy","setDisplaySubnetProxy","useState","withBorders","display","alignItems","justifyContent","flexFlow","height","width","SettingsIcon","style","marginLeft","fontWeight","marginBottom","fontSize","InputBox","disabled","id","name","placeholder","onChange","label","value","overlayIcon","CopyIcon","overlayAction","navigator","clipboard","writeText","Switch","checked","event","fetchLicenseInfo","createAsyncThunk","async","_","getState","dispatch","state","getSubnetInfo","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","LICENSE","register","loadingLicenseInfo","setLoadingLicenseInfo","api","invoke","then","res","setLicenseInfo","setClusterRegistered","catch","err","detailedError","toLowerCase","setErrorSnackMessage","callRegister","args","_ref2","request","token","account_id","setLoading","setServerNeedsRestart","resetRegisterForm","subnetLoginWithMFA","_ref3","rejectWithValue","subnetEmail","subnetMFAToken","subnetOTP","loading","username","otp","mfa_token","resp","access_token","organizations","length","accountId","toString","setSubnetAccessToken","setSubnetOrganizations","setSelectedSubnetOrganization","setSubnetOTP","subnetLogin","_ref4","license","subnetPassword","password","apiKey","registered","setSubnetMFAToken","FeatureItem","icon","description","marginRight","className","fontStyle","RegisterHelpBox","HelpBox","title","iconComponent","HelpIconFilled","help","CallHomeFeatureIcon","DiagnosticsFeatureIcon","PerformanceFeatureIcon","ExtraFeaturesIcon","OfflineRegistration","useAppDispatch","subnetRegToken","useSelector","clusterRegistered","licenseInfo","offlineRegUrl","concat","licenseKey","setLicenseKey","isSaving","invokeApplyLicenseApi","useApi","FormLayout","OfflineRegistrationIcon","helpBox","containerPadding","flex","gap","TooltipWrapper","tooltip","CopyToClipboard","text","Button","type","color","variant","flexDirection","CommentBox","e","modalStyleUtils","modalButtonBar","onClick","applyAirGapLicense","key_values","key","SubnetMFAToken","LockIcon","trim","ClusterRegistrationForm","subnetAccessToken","selectedSubnetOrganization","subnetOrganizations","Select","options","map","organization","company","OnlineRegistration","OnlineRegistrationIcon","setSubnetEmail","UsersIcon","setSubnetPassword","preventDefault","window","open","closeModal","onSet","setEmail","setPassword","mfaToken","setMfaToken","isLoading","invokeApi","getCredentialsDialog","getMFADialog","ConfirmDialog","confirmText","isOpen","titleIcon","InfoIcon","cancelText","onConfirm","onClose","confirmButtonProps","hidden","cancelButtonProps","confirmationContent","registerEndpoint","navigate","useNavigate","showApiKeyModal","setShowApiKeyModal","setApiKey","fromModal","setFromModal","onRegister","useCallback","reset","useEffect","GetApiKeyModal","Register","curTab","initialLicenseLoading","setInitialLicenseLoading","fetchSubnetRegToken","regToken","setSubnetRegToken","console","error","clusterRegistrationForm","apiKeyRegistration","ApiKeyRegister","offlineRegistration","regUi","uiToShow","setHelpName","PageHeaderWrapper","actions","HelpMenu","PageLayout","Tabs","horizontal","currentTabOrPath","onTabClick","newValue","setCurTab","tabConfig","content","position","top","left","backgroundColor","fill","VerifiedIcon","breakPoints","sm","deselectCurrent","require","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","ariaHidden","all","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","warn","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","copyKey","test","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","i","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","self","TypeError","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","Array","_key","_this$props","elem","Children","only","_this$props2","cloneElement","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1516.75dc9a97.chunk.js b/portal-ui/build/static/js/1516.75dc9a97.chunk.js deleted file mode 100644 index fb2addae9..000000000 --- a/portal-ui/build/static/js/1516.75dc9a97.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1516],{51516:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return N}});var r=n(29439),i=n(72791),o=n(29945),s=n(78687),a=n(87995),c=n(44690),l=n(74440),u=n(80184),f=function(e){var t=e.email;return(0,u.jsxs)(i.Fragment,{children:[(0,u.jsx)(l.Z,{email:t}),(0,u.jsx)(o.rjZ,{item:!0,xs:12,sx:{marginTop:25},children:(0,u.jsxs)(o.xuv,{sx:{padding:"20px"},children:["Login to"," ",(0,u.jsx)("a",{href:"https://subnet.min.io",target:"_blank",children:"SUBNET"})," ","to avail support for this MinIO cluster"]})})]})},d=function(){var e="mc admin config set {alias} subnet proxy={proxy}",t=(0,i.useState)(!1),n=(0,r.Z)(t,2),s=n[0],a=n[1];return(0,u.jsx)(i.Fragment,{children:(0,u.jsxs)(o.xuv,{withBorders:!0,sx:{display:"flex",padding:"23px",marginTop:"40px",alignItems:"start",justifyContent:"space-between"},children:[(0,u.jsxs)(o.xuv,{sx:{display:"flex",flexFlow:"column"},children:[(0,u.jsxs)(o.xuv,{sx:{display:"flex","& .min-icon":{height:"22px",width:"22px"}},children:[(0,u.jsx)(o.ewm,{}),(0,u.jsx)("div",{style:{marginLeft:"10px",fontWeight:600},children:"Proxy Configuration"})]}),(0,u.jsxs)(o.xuv,{sx:{marginTop:"10px",marginBottom:"10px",fontSize:"14px"},children:["For airgap/firewalled environments it is possible to"," ",(0,u.jsx)("a",{href:"https://min.io/docs/minio/linux/reference/minio-mc-admin/mc-admin-config.html?ref=con",target:"_blank",children:"configure a proxy"})," ","to connect to SUBNET ."]}),(0,u.jsx)(o.xuv,{children:s&&(0,u.jsx)(o.Wzg,{disabled:!0,id:"subnetProxy",name:"subnetProxy",placeholder:"",onChange:function(){},label:"",value:e,overlayIcon:(0,u.jsx)(o.TIy,{}),overlayAction:function(){return navigator.clipboard.writeText(e)}})})]}),(0,u.jsx)(o.xuv,{sx:{display:"flex"},children:(0,u.jsx)(o.rsf,{value:"enableProxy",id:"enableProxy",name:"enableProxy",checked:s,onChange:function(e){a(e.target.checked)}})})]})})},p=n(74165),x=n(15861),g=n(36825),h=n(81207),m=n(96382),b=n(38442),v=n(56087),y=(0,m.hg)("register/fetchLicenseInfo",function(){var e=(0,x.Z)((0,p.Z)().mark((function e(t,n){var r,i,o,s;return(0,p.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getState,i=n.dispatch,o=r(),s=(0,b.F)(v.C3,v.LC[v.gA.LICENSE],!0),!o.register.loadingLicenseInfo){e.next=6;break}return e.abrupt("return");case 6:s?(i((0,g.pI)(!0)),h.Z.invoke("GET","/api/v1/subnet/info").then((function(e){i((0,g.aO)(e)),i((0,g.Dr)(!0)),i((0,g.pI)(!1))})).catch((function(e){e.detailedError.toLowerCase()!=="License is not present".toLowerCase()&&e.detailedError.toLowerCase()!=="license not found".toLowerCase()&&i((0,a.Ih)(e)),i((0,g.Dr)(!1)),i((0,g.pI)(!1))}))):i((0,g.pI)(!1));case 7:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),j=(0,m.hg)("register/callRegister",function(){var e=(0,x.Z)((0,p.Z)().mark((function e(t,n){var r,i;return(0,p.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.dispatch,i={token:t.token,account_id:t.account_id},h.Z.invoke("POST","/api/v1/subnet/register",i).then((function(){r((0,g.K4)(!1)),r((0,a.cN)(!0)),r((0,g.jS)()),r(y())})).catch((function(e){r((0,a.Ih)(e)),r((0,g.K4)(!1))}));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),w=(0,m.hg)("register/subnetLoginWithMFA",function(){var e=(0,x.Z)((0,p.Z)().mark((function e(t,n){var r,i,o,s,c,l,u;return(0,p.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getState,n.rejectWithValue,i=n.dispatch,o=r(),s=o.register.subnetEmail,c=o.register.subnetMFAToken,l=o.register.subnetOTP,!o.register.loading){e.next=8;break}return e.abrupt("return");case 8:i((0,g.K4)(!0)),u={username:s,otp:l,mfa_token:c},h.Z.invoke("POST","/api/v1/subnet/login/mfa",u).then((function(e){i((0,g.K4)(!1)),e&&e.access_token&&e.organizations.length>0&&(1===e.organizations.length?i(j({token:e.access_token,account_id:e.organizations[0].accountId.toString()})):(i((0,g.t2)(e.access_token)),i((0,g.dl)(e.organizations)),i((0,g.wK)(e.organizations[0].accountId.toString()))))})).catch((function(e){i((0,a.Ih)(e)),i((0,g.K4)(!1)),i((0,g.Z7)(""))}));case 11:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),k=(0,m.hg)("register/subnetLogin",function(){var e=(0,x.Z)((0,p.Z)().mark((function e(t,n){var r,i,o,s,c,l,u;return(0,p.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getState,n.rejectWithValue,i=n.dispatch,o=r(),s=o.register.license,c=o.register.subnetPassword,l=o.register.subnetEmail,!o.register.loading){e.next=8;break}return e.abrupt("return");case 8:i((0,g.K4)(!0)),u={username:l,password:c,apiKey:s},h.Z.invoke("POST","/api/v1/subnet/login",u).then((function(e){i((0,g.K4)(!1)),e&&e.registered?(i((0,g.jS)()),i(y())):e&&e.mfa_token?i((0,g.dK)(e.mfa_token)):e&&e.access_token&&e.organizations.length>0&&(i((0,g.t2)(e.access_token)),i((0,g.dl)(e.organizations)),i((0,g.wK)(e.organizations[0].accountId.toString())))})).catch((function(e){i((0,a.Ih)(e)),i((0,g.K4)(!1)),i((0,g.jS)())}));case 11:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),C=n(23814),S=n(27454),T=n(78029),P=n.n(T),O=function(e){var t=e.icon,n=e.description;return(0,u.jsxs)(o.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,u.jsx)(o.xuv,{className:"muted",style:{fontSize:"14px",fontStyle:"italic"},children:n})]})},I=function(){return(0,u.jsx)(o.KfX,{title:"Why should I register?",iconComponent:(0,u.jsx)(o.M9A,{}),help:(0,u.jsxs)(i.Fragment,{children:[(0,u.jsx)(o.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:"Registering this cluster with the MinIO Subscription Network (SUBNET) provides the following benefits in addition to the commercial license and SLA backed support."}),(0,u.jsxs)(o.xuv,{sx:{display:"flex",flexFlow:"column"},children:[(0,u.jsx)(O,{icon:(0,u.jsx)(o._qw,{}),description:"Call Home Monitoring"}),(0,u.jsx)(O,{icon:(0,u.jsx)(o.toM,{}),description:"Health Diagnostics"}),(0,u.jsx)(O,{icon:(0,u.jsx)(o.Fsz,{}),description:"Performance Analysis"}),(0,u.jsx)(O,{icon:(0,u.jsx)(o.EQx,{}),description:(0,u.jsx)("a",{href:"https://min.io/signup?ref=con",target:"_blank",children:"More Features"})})]})]})})},B=n(9505),E=function(){var e=(0,c.TL)(),t=(0,s.v9)((function(e){return e.register.subnetRegToken})),n=(0,s.v9)((function(e){return e.register.clusterRegistered})),l=(0,s.v9)((function(e){return e.register.licenseInfo})),d="https://subnet.min.io/cluster/register?token=".concat(t),p=(0,i.useState)(""),x=(0,r.Z)(p,2),g=x[0],h=x[1],m=(0,B.Z)((function(){e(y()),e((0,a.cN)(!0))}),(function(t){e((0,a.Ih)(t))})),b=(0,r.Z)(m,2),v=b[0],j=b[1];return(0,u.jsx)(i.Fragment,{children:(0,u.jsx)(o.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",padding:"43px"},children:n&&l?(0,u.jsx)(f,{email:l.email}):(0,u.jsx)(o.ltY,{title:"Register cluster in an Air-gap environment",icon:(0,u.jsx)(o.YL8,{}),helpBox:(0,u.jsx)(I,{}),withBorders:!1,containerPadding:!1,children:(0,u.jsx)(o.xuv,{sx:{display:"flex",flexFlow:"column",flex:"2",marginTop:"15px","& .step-row":{fontSize:14,display:"flex",marginTop:"15px",marginBottom:"15px"}},children:(0,u.jsxs)(o.xuv,{children:[(0,u.jsx)(o.xuv,{className:"step-row",children:(0,u.jsx)(o.xuv,{className:"step-text",children:"Click on the link to register this cluster in SUBNET and get a License Key for this Air-Gap deployment"})}),(0,u.jsxs)(o.xuv,{sx:{flex:"1",display:"flex",alignItems:"center",gap:3},children:[(0,u.jsx)("a",{href:d,target:"_blank",children:"https://subnet.min.io/cluster/register"}),(0,u.jsx)(S.Z,{tooltip:"Copy to Clipboard",children:(0,u.jsx)(P(),{text:d,children:(0,u.jsx)(o.zxk,{type:"button",id:"copy-ult-to-clip-board",icon:(0,u.jsx)(o.TIy,{}),color:"primary",variant:"regular"})})})]}),(0,u.jsx)(o.xuv,{className:"muted",sx:{marginTop:"25px"},children:"Note: If this machine does not have internet connection, Copy paste the following URL in a browser where you access SUBNET and follow the instructions to complete the registration"}),(0,u.jsxs)(o.xuv,{sx:{marginTop:"25px",display:"flex",flexDirection:"column"},children:[(0,u.jsxs)("label",{style:{fontWeight:"bold",marginBottom:"10px"},children:["Paste the License Key"," "]}),(0,u.jsx)(o.q5m,{value:g,disabled:v,label:"",id:"licenseKey",name:"licenseKey",placeholder:"License Key",onChange:function(e){h(e.target.value)}})]}),(0,u.jsx)(o.xuv,{sx:C.ID.modalButtonBar,children:(0,u.jsx)(o.zxk,{id:"apply-license-key",onClick:function(){j("PUT","/api/v1/configs/subnet",{key_values:[{key:"license",value:g}]})},variant:"callAction",disabled:!g||v,label:"Apply Cluster License"})})]})})})})})},z=function(){var e=(0,c.TL)(),t=(0,s.v9)((function(e){return e.register.subnetMFAToken})),n=(0,s.v9)((function(e){return e.register.subnetOTP})),r=(0,s.v9)((function(e){return e.register.loading}));return(0,u.jsxs)(o.ltY,{title:"Two-Factor Authentication",helpBox:(0,u.jsx)(I,{}),withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(o.xuv,{sx:{fontSize:14,display:"flex",flexFlow:"column",marginBottom:"30px"},children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,u.jsx)(o.xuv,{children:(0,u.jsx)(o.Wzg,{overlayIcon:(0,u.jsx)(o.mBM,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(t){return e((0,g.Z7)(t.target.value))},placeholder:"",label:"",value:n})}),(0,u.jsx)(o.xuv,{sx:C.ID.modalButtonBar,children:(0,u.jsx)(o.zxk,{id:"verify",onClick:function(){return e(w())},disabled:r||0===n.trim().length||0===t.trim().length,variant:"callAction",label:"Verify"})})]})},Z=function(){var e=(0,c.TL)(),t=(0,s.v9)((function(e){return e.register.subnetAccessToken})),n=(0,s.v9)((function(e){return e.register.selectedSubnetOrganization})),r=(0,s.v9)((function(e){return e.register.subnetOrganizations})),i=(0,s.v9)((function(e){return e.register.loading}));return(0,u.jsxs)(o.ltY,{title:"Register MinIO cluster",containerPadding:!0,withBorders:!1,helpBox:(0,u.jsx)(I,{}),children:[(0,u.jsx)(o.PhF,{id:"subnet-organization",name:"subnet-organization",onChange:function(t){return e((0,g.wK)(t))},label:"Select an organization",value:n,options:r.map((function(e){return{label:e.company,value:e.accountId.toString()}}))}),(0,u.jsx)(o.xuv,{sx:C.ID.modalButtonBar,children:(0,u.jsx)(o.zxk,{id:"register-cluster",onClick:function(){return function(){i||(e((0,g.K4)(!0)),t&&n&&e(j({token:t,account_id:n})))}},disabled:i||0===t.trim().length,variant:"callAction",label:"Register"})})]})},A=function(){var e=(0,c.TL)(),t=(0,s.v9)((function(e){return e.register.subnetPassword})),n=(0,s.v9)((function(e){return e.register.subnetEmail})),r=(0,s.v9)((function(e){return e.register.loading}));return(0,u.jsxs)(o.ltY,{icon:(0,u.jsx)(o.dRy,{}),title:"Online activation of MinIO Subscription Network License",withBorders:!1,containerPadding:!1,helpBox:(0,u.jsx)(I,{}),children:[(0,u.jsx)(o.xuv,{sx:{fontSize:"14px",display:"flex",flexFlow:"column",marginBottom:"30px"},children:"Use your MinIO Subscription Network login credentials to register this cluster."}),(0,u.jsxs)(o.xuv,{sx:{flex:"1"},children:[(0,u.jsx)(o.Wzg,{id:"subnet-email",name:"subnet-email",onChange:function(t){return e((0,g.Ze)(t.target.value))},label:"Email",value:n,overlayIcon:(0,u.jsx)(o.oyc,{})}),(0,u.jsx)(o.Wzg,{id:"subnet-password",name:"subnet-password",onChange:function(t){return e((0,g.lr)(t.target.value))},label:"Password",type:"password",value:t}),(0,u.jsxs)(o.xuv,{sx:C.ID.modalButtonBar,children:[(0,u.jsx)(o.zxk,{id:"sign-up",type:"submit",variant:"regular",onClick:function(e){e.preventDefault(),window.open("https://min.io/signup?ref=con","_blank")},label:"Sign up"}),(0,u.jsx)(o.zxk,{id:"register-credentials",type:"submit",variant:"callAction",disabled:r||0===n.trim().length||0===t.trim().length,onClick:function(){return e(k())},label:"Register"})]})]})]})},_=n(47974),R=n(99670),L=n(57689),D=n(23508),F=function(e){var t=e.open,n=e.closeModal,s=e.onSet,l=(0,c.TL)(),f=(0,i.useState)(""),d=(0,r.Z)(f,2),p=d[0],x=d[1],g=(0,i.useState)(""),h=(0,r.Z)(g,2),m=h[0],b=h[1],v=(0,i.useState)(""),y=(0,r.Z)(v,2),j=y[0],w=y[1],k=(0,i.useState)(""),C=(0,r.Z)(k,2),S=C[0],T=C[1],P=(0,B.Z)((function(e){e.mfa_token?w(e.mfa_token):e.access_token?E("GET","/api/v1/subnet/apikey?token=".concat(e.access_token)):(s(e.apiKey),n())}),(function(e){l((0,a.Ih)(e)),n(),x(""),b(""),w(""),T("")})),O=(0,r.Z)(P,2),I=O[0],E=O[1],z=function(){return(0,u.jsxs)(o.ltY,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(o.Wzg,{id:"subnet-email",name:"subnet-email",onChange:function(e){return x(e.target.value)},label:"Email",value:p,overlayIcon:(0,u.jsx)(o.oyc,{})}),(0,u.jsx)(o.Wzg,{id:"subnet-password",name:"subnet-password",onChange:function(e){return b(e.target.value)},label:"Password",type:"password",value:m})]})},Z=function(){return(0,u.jsx)(o.xuv,{sx:{display:"flex"},children:(0,u.jsxs)(o.xuv,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,u.jsx)(o.xuv,{sx:{fontSize:14,display:"flex",flexFlow:"column",marginTop:20,marginBottom:20},children:"Two-Factor Authentication"}),(0,u.jsx)(o.xuv,{children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,u.jsx)(o.xuv,{sx:{flex:"1",marginTop:"30px"},children:(0,u.jsx)(o.Wzg,{overlayIcon:(0,u.jsx)(o.mBM,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(e){return T(e.target.value)},placeholder:"",label:"",value:S})})]})})};return t?(0,u.jsx)(D.Z,{title:"Get API Key from SUBNET",confirmText:"Get API Key",isOpen:t,titleIcon:(0,u.jsx)(o.szr,{}),isLoading:I,cancelText:"Cancel",onConfirm:function(){""!==j?E("POST","/api/v1/subnet/login/mfa",{username:p,otp:S,mfa_token:j}):E("POST","/api/v1/subnet/login",{username:p,password:m})},onClose:n,confirmButtonProps:{variant:"callAction",disabled:!p||!m||I,hidden:!0},cancelButtonProps:{disabled:I},confirmationContent:""===j?z():Z()}):null},K=function(e){var t=e.registerEndpoint,n=(0,L.s0)(),s=(0,i.useState)(!1),l=(0,r.Z)(s,2),f=l[0],d=l[1],p=(0,i.useState)(""),x=(0,r.Z)(p,2),g=x[0],m=x[1],b=(0,i.useState)(!1),y=(0,r.Z)(b,2),j=y[0],w=y[1],k=(0,i.useState)(!1),S=(0,r.Z)(k,2),T=S[0],P=S[1],O=(0,c.TL)(),B=(0,i.useCallback)((function(){if(!j){w(!0);var e={apiKey:g};h.Z.invoke("POST",t,e).then((function(e){w(!1),e&&e.registered&&(O((0,a.cN)(!0)),n(v.gA.LICENSE))})).catch((function(e){O((0,a.Ih)(e)),w(!1),E()}))}}),[g,O,j,t,n]);(0,i.useEffect)((function(){T&&B()}),[T,B]);var E=function(){m(""),P(!1)};return(0,u.jsxs)(o.ltY,{title:"Register cluster with API key",icon:(0,u.jsx)(o.dRy,{}),containerPadding:!1,withBorders:!1,helpBox:(0,u.jsx)(I,{}),children:[(0,u.jsx)(o.xuv,{sx:{fontSize:14,display:"flex",flexFlow:"column",marginBottom:"30px"},children:"Use your MinIO Subscription Network API Key to register this cluster."}),(0,u.jsxs)(o.xuv,{sx:{flex:"1"},children:[(0,u.jsx)(o.Wzg,{id:"api-key",name:"api-key",onChange:function(e){return m(e.target.value)},label:"API Key",value:g}),(0,u.jsxs)(o.xuv,{sx:C.ID.modalButtonBar,children:[(0,u.jsx)(o.zxk,{id:"get-from-subnet",variant:"regular",disabled:j,onClick:function(){return d(!0)},label:"Get from SUBNET"}),(0,u.jsx)(o.zxk,{id:"register",type:"submit",variant:"callAction",disabled:j||0===g.trim().length,onClick:function(){return B()},label:"Register"})]})]}),(0,u.jsx)(F,{open:f,closeModal:function(){return d(!1)},onSet:function(e){m(e),P(!0)}})]})},N=function(){var e=(0,c.TL)(),t=(0,s.v9)((function(e){return e.register.subnetMFAToken})),n=(0,s.v9)((function(e){return e.register.subnetAccessToken})),l=(0,s.v9)((function(e){return e.register.subnetRegToken})),p=(0,s.v9)((function(e){return e.register.subnetOrganizations})),x=(0,s.v9)((function(e){return e.register.loading})),m=(0,s.v9)((function(e){return e.register.loadingLicenseInfo})),b=(0,s.v9)((function(e){return e.register.clusterRegistered})),v=(0,s.v9)((function(e){return e.register.licenseInfo})),j=(0,s.v9)((function(e){return e.register.curTab})),w=(0,i.useState)(!0),k=(0,r.Z)(w,2),C=k[0],S=k[1];(0,i.useEffect)((function(){return function(){e((0,g.jS)())}}),[e]),(0,i.useEffect)((function(){if("simple-tab-2"===j&&!x&&!l){e((0,g.K4)(!0)),h.Z.invoke("GET","/api/v1/subnet/registration-token").then((function(t){e((0,g.K4)(!1)),t&&t.regToken&&e((0,g.wz)(t.regToken))})).catch((function(t){console.error(t),e((0,a.Ih)(t)),e((0,g.K4)(!1))}))}}),[j,x,l,e]),(0,i.useEffect)((function(){C&&(e(y()),S(!1))}),[C,S,e]);var T=(0,u.jsx)(i.Fragment,{});T=n&&p.length>0?(0,u.jsx)(Z,{}):t?(0,u.jsx)(z,{}):(0,u.jsx)(A,{});var P=(0,u.jsxs)(i.Fragment,{children:[(0,u.jsx)(o.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",padding:"43px"},children:b&&v?(0,u.jsx)(f,{email:v.email}):(0,u.jsx)(K,{registerEndpoint:"/api/v1/subnet/login"})}),(0,u.jsx)(d,{})]}),O=(0,u.jsx)(E,{}),I=(0,u.jsxs)(i.Fragment,{children:[(0,u.jsx)(o.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",padding:"43px"},children:b&&v?(0,u.jsx)(f,{email:v.email}):T}),!b&&(0,u.jsx)(d,{})]}),B=m?(0,u.jsx)("div",{children:"Loading.."}):I;return(0,i.useEffect)((function(){e((0,a.Sc)("register"))}),[]),(0,u.jsxs)(i.Fragment,{children:[(0,u.jsx)(_.Z,{label:"Register to MinIO Subscription Network",actions:(0,u.jsx)(R.Z,{})}),(0,u.jsx)(o.Xgh,{children:(0,u.jsx)(o.mQc,{horizontal:!0,currentTabOrPath:j,onTabClick:function(t){e((0,g.m)(t))},options:[{tabConfig:{label:"Credentials",id:"simple-tab-0"},content:B},{tabConfig:{label:"API Key",id:"simple-tab-1"},content:P},{tabConfig:{label:"Air-Gap",id:"simple-tab-2"},content:O}]})})]})}},74440:function(e,t,n){"use strict";var r=n(4942),i=(n(72791),n(29945)),o=n(80184);t.Z=function(e){var t=e.email,n=void 0===t?"":t;return(0,o.jsxs)(i.xuv,{sx:{height:67,color:"#ffffff",display:"flex",position:"relative",top:-30,left:-32,width:"calc(100% + 64px)",alignItems:"center",justifyContent:"space-between",backgroundColor:"#2781B0",padding:"0 25px 0 25px","& .registered-box, .reg-badge-box":{display:"flex",alignItems:"center",justifyContent:"flex-start"},"& .reg-badge-box":{marginLeft:"20px","& .min-icon":{fill:"#2781B0"}}},children:[(0,o.jsxs)(i.xuv,{className:"registered-box",children:[(0,o.jsx)(i.xuv,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,o.jsxs)(i.xuv,{className:"reg-badge-box",children:[(0,o.jsx)(i.SA,{}),(0,o.jsx)(i.xuv,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,o.jsxs)(i.xuv,{className:"registered-acc-box",sx:(0,r.Z)({alignItems:"center",justifyContent:"flex-start",display:"flex"},"@media (max-width: ".concat(i.Egj.sm,"px)"),{display:"none"}),children:[(0,o.jsx)(i.xuv,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,o.jsx)(i.xuv,{sx:{marginLeft:"8px",fontWeight:600},children:n})]})]})}},76998:function(e,t,n){"use strict";var r=n(42458),i={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,s,a,c,l,u=!1;t||(t={}),n=t.debug||!1;try{if(s=r(),a=document.createRange(),c=document.getSelection(),(l=document.createElement("span")).textContent=e,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=i[t.format]||i.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(l),a.selectNodeContents(l),c.addRange(a),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(f){n&&console.error("unable to copy using execCommand: ",f),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(a):c.removeAllRanges()),l&&document.body.removeChild(l),s()}return u}},568:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var i=a(n(72791)),o=a(n(76998)),s=["text","onCopy","options","children"];function a(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function f(e,t){for(var n=0;n.\n\nimport React, { Fragment, useState } from \"react\";\nimport { CopyIcon, SettingsIcon, Box, Grid, Switch, InputBox } from \"mds\";\nimport RegistrationStatusBanner from \"./RegistrationStatusBanner\";\n\nexport const ClusterRegistered = ({ email }: { email: string }) => {\n return (\n \n \n \n \n Login to{\" \"}\n \n SUBNET\n {\" \"}\n to avail support for this MinIO cluster\n \n \n \n );\n};\n\nexport const ProxyConfiguration = () => {\n const proxyConfigurationCommand =\n \"mc admin config set {alias} subnet proxy={proxy}\";\n const [displaySubnetProxy, setDisplaySubnetProxy] = useState(false);\n return (\n \n \n \n \n \n
\n Proxy Configuration\n
\n \n \n For airgap/firewalled environments it is possible to{\" \"}\n \n configure a proxy\n {\" \"}\n to connect to SUBNET .\n \n \n {displaySubnetProxy && (\n {}}\n label=\"\"\n value={proxyConfigurationCommand}\n overlayIcon={}\n overlayAction={() =>\n navigator.clipboard.writeText(proxyConfigurationCommand)\n }\n />\n )}\n \n \n \n ) => {\n setDisplaySubnetProxy(event.target.checked);\n }}\n />\n \n \n
\n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 resetRegisterForm,\n setClusterRegistered,\n setLicenseInfo,\n setLoading,\n setLoadingLicenseInfo,\n setSelectedSubnetOrganization,\n setSubnetAccessToken,\n setSubnetMFAToken,\n setSubnetOrganizations,\n setSubnetOTP,\n} from \"./registerSlice\";\nimport api from \"../../../common/api\";\nimport {\n SubnetInfo,\n SubnetLoginRequest,\n SubnetLoginResponse,\n SubnetLoginWithMFARequest,\n SubnetRegisterRequest,\n} from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { AppState } from \"../../../store\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\n\nexport const fetchLicenseInfo = createAsyncThunk(\n \"register/fetchLicenseInfo\",\n async (_, { getState, dispatch }) => {\n const state = getState() as AppState;\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true,\n );\n\n const loadingLicenseInfo = state.register.loadingLicenseInfo;\n\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n dispatch(setLoadingLicenseInfo(true));\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n dispatch(setLicenseInfo(res));\n dispatch(setClusterRegistered(true));\n dispatch(setLoadingLicenseInfo(false));\n })\n .catch((err: ErrorResponseHandler) => {\n if (\n err.detailedError.toLowerCase() !==\n \"License is not present\".toLowerCase() &&\n err.detailedError.toLowerCase() !==\n \"license not found\".toLowerCase()\n ) {\n dispatch(setErrorSnackMessage(err));\n }\n dispatch(setClusterRegistered(false));\n dispatch(setLoadingLicenseInfo(false));\n });\n } else {\n dispatch(setLoadingLicenseInfo(false));\n }\n },\n);\n\nexport interface ClassRegisterArgs {\n token: string;\n account_id: string;\n}\n\nexport const callRegister = createAsyncThunk(\n \"register/callRegister\",\n async (args: ClassRegisterArgs, { dispatch }) => {\n const request: SubnetRegisterRequest = {\n token: args.token,\n account_id: args.account_id,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/register\", request)\n .then(() => {\n dispatch(setLoading(false));\n dispatch(setServerNeedsRestart(true));\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n },\n);\n\nexport const subnetLoginWithMFA = createAsyncThunk(\n \"register/subnetLoginWithMFA\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const subnetEmail = state.register.subnetEmail;\n const subnetMFAToken = state.register.subnetMFAToken;\n const subnetOTP = state.register.subnetOTP;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n const request: SubnetLoginWithMFARequest = {\n username: subnetEmail,\n otp: subnetOTP,\n mfa_token: subnetMFAToken,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login/mfa\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.access_token && resp.organizations.length > 0) {\n if (resp.organizations.length === 1) {\n dispatch(\n callRegister({\n token: resp.access_token,\n account_id: resp.organizations[0].accountId.toString(),\n }),\n );\n } else {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(setSubnetOTP(\"\"));\n });\n },\n);\n\nexport const subnetLogin = createAsyncThunk(\n \"register/subnetLogin\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const license = state.register.license;\n const subnetPassword = state.register.subnetPassword;\n const subnetEmail = state.register.subnetEmail;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n let request: SubnetLoginRequest = {\n username: subnetEmail,\n password: subnetPassword,\n apiKey: license,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.registered) {\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n } else if (resp && resp.mfa_token) {\n dispatch(setSubnetMFAToken(resp.mfa_token));\n } else if (resp && resp.access_token && resp.organizations.length > 0) {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(resetRegisterForm());\n });\n },\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 React, { Fragment } from \"react\";\nimport {\n CallHomeFeatureIcon,\n DiagnosticsFeatureIcon,\n ExtraFeaturesIcon,\n HelpIconFilled,\n PerformanceFeatureIcon,\n Box,\n HelpBox,\n} from \"mds\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string | React.ReactNode;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n \n \n );\n};\nconst RegisterHelpBox = () => {\n return (\n }\n help={\n \n \n Registering this cluster with the MinIO Subscription Network\n (SUBNET) provides the following benefits in addition to the\n commercial license and SLA backed support.\n \n\n \n }\n description={`Call Home Monitoring`}\n />\n }\n description={`Health Diagnostics`}\n />\n }\n description={`Performance Analysis`}\n />\n }\n description={\n \n More Features\n \n }\n />\n \n \n }\n />\n );\n};\n\nexport default RegisterHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport {\n Box,\n Button,\n CommentBox,\n CopyIcon,\n FormLayout,\n OfflineRegistrationIcon,\n} from \"mds\";\nimport { ClusterRegistered } from \"./utils\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport useApi from \"../Common/Hooks/useApi\";\n\nconst OfflineRegistration = () => {\n const dispatch = useAppDispatch();\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n\n const offlineRegUrl = `https://subnet.min.io/cluster/register?token=${subnetRegToken}`;\n\n const [licenseKey, setLicenseKey] = useState(\"\");\n\n const [isSaving, invokeApplyLicenseApi] = useApi(\n () => {\n dispatch(fetchLicenseInfo());\n dispatch(setServerNeedsRestart(true));\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n const applyAirGapLicense = () => {\n invokeApplyLicenseApi(\"PUT\", `/api/v1/configs/subnet`, {\n key_values: [{ key: \"license\", value: licenseKey }],\n });\n };\n\n return (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n }\n helpBox={}\n withBorders={false}\n containerPadding={false}\n >\n \n \n \n \n Click on the link to register this cluster in SUBNET and get\n a License Key for this Air-Gap deployment\n \n \n\n \n \n https://subnet.min.io/cluster/register\n \n\n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n\n \n Note: If this machine does not have internet connection, Copy\n paste the following URL in a browser where you access SUBNET\n and follow the instructions to complete the registration\n \n\n \n \n {\n setLicenseKey(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default OfflineRegistration;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, Button, FormLayout, InputBox, LockIcon } from \"mds\";\nimport { useSelector } from \"react-redux\";\nimport { setSubnetOTP } from \"./registerSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { subnetLoginWithMFA } from \"./registerThunks\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\n\nconst SubnetMFAToken = () => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetOTP = useSelector((state: AppState) => state.register.subnetOTP);\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n }\n withBorders={false}\n containerPadding={false}\n >\n \n Please enter the 6-digit verification code that was sent to your email\n address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n dispatch(setSubnetOTP(event.target.value))\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n dispatch(subnetLoginWithMFA())}\n disabled={\n loading ||\n subnetOTP.trim().length === 0 ||\n subnetMFAToken.trim().length === 0\n }\n variant=\"callAction\"\n label={\"Verify\"}\n />\n \n \n );\n};\nexport default SubnetMFAToken;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, Button, FormLayout, Select } from \"mds\";\nimport { setLoading, setSelectedSubnetOrganization } from \"./registerSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { callRegister } from \"./registerThunks\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\n\nconst ClusterRegistrationForm = () => {\n const dispatch = useAppDispatch();\n\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n const selectedSubnetOrganization = useSelector(\n (state: AppState) => state.register.selectedSubnetOrganization,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n }\n >\n \n dispatch(setSelectedSubnetOrganization(value as string))\n }\n label=\"Select an organization\"\n value={selectedSubnetOrganization}\n options={subnetOrganizations.map((organization) => ({\n label: organization.company,\n value: organization.accountId.toString(),\n }))}\n />\n \n () => {\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n if (subnetAccessToken && selectedSubnetOrganization) {\n dispatch(\n callRegister({\n token: subnetAccessToken,\n account_id: selectedSubnetOrganization,\n }),\n );\n }\n }}\n disabled={loading || subnetAccessToken.trim().length === 0}\n variant=\"callAction\"\n label={\"Register\"}\n />\n \n \n );\n};\n\nexport default ClusterRegistrationForm;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 {\n Box,\n Button,\n FormLayout,\n InputBox,\n OnlineRegistrationIcon,\n UsersIcon,\n} from \"mds\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSubnetEmail, setSubnetPassword } from \"./registerSlice\";\nimport { subnetLogin } from \"./registerThunks\";\n\nconst OnlineRegistration = () => {\n const dispatch = useAppDispatch();\n\n const subnetPassword = useSelector(\n (state: AppState) => state.register.subnetPassword,\n );\n const subnetEmail = useSelector(\n (state: AppState) => state.register.subnetEmail,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n }\n title={\"Online activation of MinIO Subscription Network License\"}\n withBorders={false}\n containerPadding={false}\n helpBox={}\n >\n \n Use your MinIO Subscription Network login credentials to register this\n cluster.\n \n \n ) =>\n dispatch(setSubnetEmail(event.target.value))\n }\n label=\"Email\"\n value={subnetEmail}\n overlayIcon={}\n />\n ) =>\n dispatch(setSubnetPassword(event.target.value))\n }\n label=\"Password\"\n type={\"password\"}\n value={subnetPassword}\n />\n\n \n {\n e.preventDefault();\n window.open(`https://min.io/signup?ref=con`, \"_blank\");\n }}\n label={\"Sign up\"}\n />\n dispatch(subnetLogin())}\n label={\"Register\"}\n />\n \n \n \n );\n};\n\nexport default OnlineRegistration;\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, { useState } from \"react\";\nimport { Box, FormLayout, InfoIcon, InputBox, LockIcon, UsersIcon } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { useAppDispatch } from \"../../../store\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\n\ninterface IGetApiKeyModalProps {\n open: boolean;\n closeModal: () => void;\n onSet: (apiKey: string) => void;\n}\n\nconst GetApiKeyModal = ({ open, closeModal, onSet }: IGetApiKeyModalProps) => {\n const dispatch = useAppDispatch();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [mfaToken, setMfaToken] = useState(\"\");\n const [subnetOTP, setSubnetOTP] = useState(\"\");\n\n const onError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n closeModal();\n setEmail(\"\");\n setPassword(\"\");\n setMfaToken(\"\");\n setSubnetOTP(\"\");\n };\n\n const onSuccess = (res: any) => {\n if (res.mfa_token) {\n setMfaToken(res.mfa_token);\n } else if (res.access_token) {\n invokeApi(\"GET\", `/api/v1/subnet/apikey?token=${res.access_token}`);\n } else {\n onSet(res.apiKey);\n closeModal();\n }\n };\n\n const [isLoading, invokeApi] = useApi(onSuccess, onError);\n\n const onConfirm = () => {\n if (mfaToken !== \"\") {\n invokeApi(\"POST\", \"/api/v1/subnet/login/mfa\", {\n username: email,\n otp: subnetOTP,\n mfa_token: mfaToken,\n });\n } else {\n invokeApi(\"POST\", \"/api/v1/subnet/login\", { username: email, password });\n }\n };\n\n const getDialogContent = () => {\n if (mfaToken === \"\") {\n return getCredentialsDialog();\n }\n return getMFADialog();\n };\n\n const getCredentialsDialog = () => {\n return (\n \n ) =>\n setEmail(event.target.value)\n }\n label=\"Email\"\n value={email}\n overlayIcon={}\n />\n ) =>\n setPassword(event.target.value)\n }\n label=\"Password\"\n type={\"password\"}\n value={password}\n />\n \n );\n };\n\n const getMFADialog = () => {\n return (\n \n \n \n Two-Factor Authentication\n \n\n \n Please enter the 6-digit verification code that was sent to your\n email address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n setSubnetOTP(event.target.value)\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n \n );\n };\n\n return open ? (\n }\n isLoading={isLoading}\n cancelText={\"Cancel\"}\n onConfirm={onConfirm}\n onClose={closeModal}\n confirmButtonProps={{\n variant: \"callAction\",\n disabled: !email || !password || isLoading,\n hidden: true,\n }}\n cancelButtonProps={{\n disabled: isLoading,\n }}\n confirmationContent={getDialogContent()}\n />\n ) : null;\n};\n\nexport default GetApiKeyModal;\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, { useCallback, useEffect, useState } from \"react\";\nimport { Box, Button, FormLayout, InputBox, OnlineRegistrationIcon } from \"mds\";\nimport { useNavigate } from \"react-router-dom\";\nimport { SubnetLoginRequest, SubnetLoginResponse } from \"../License/types\";\nimport { useAppDispatch } from \"../../../store\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport GetApiKeyModal from \"./GetApiKeyModal\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport api from \"../../../common/api\";\n\ninterface IApiKeyRegister {\n registerEndpoint: string;\n}\n\nconst ApiKeyRegister = ({ registerEndpoint }: IApiKeyRegister) => {\n const navigate = useNavigate();\n\n const [showApiKeyModal, setShowApiKeyModal] = useState(false);\n const [apiKey, setApiKey] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [fromModal, setFromModal] = useState(false);\n const dispatch = useAppDispatch();\n\n const onRegister = useCallback(() => {\n if (loading) {\n return;\n }\n setLoading(true);\n let request: SubnetLoginRequest = { apiKey };\n api\n .invoke(\"POST\", registerEndpoint, request)\n .then((resp: SubnetLoginResponse) => {\n setLoading(false);\n if (resp && resp.registered) {\n dispatch(setServerNeedsRestart(true));\n navigate(IAM_PAGES.LICENSE);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n reset();\n });\n }, [apiKey, dispatch, loading, registerEndpoint, navigate]);\n\n useEffect(() => {\n if (fromModal) {\n onRegister();\n }\n }, [fromModal, onRegister]);\n\n const reset = () => {\n setApiKey(\"\");\n setFromModal(false);\n };\n\n return (\n }\n containerPadding={false}\n withBorders={false}\n helpBox={}\n >\n \n Use your MinIO Subscription Network API Key to register this cluster.\n \n \n ) =>\n setApiKey(event.target.value)\n }\n label=\"API Key\"\n value={apiKey}\n />\n\n \n setShowApiKeyModal(true)}\n label={\"Get from SUBNET\"}\n />\n onRegister()}\n label={\"Register\"}\n />\n \n \n setShowApiKeyModal(false)}\n onSet={(value) => {\n setApiKey(value);\n setFromModal(true);\n }}\n />\n \n );\n};\n\nexport default ApiKeyRegister;\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 { Box, PageLayout, Tabs } from \"mds\";\nimport { SubnetRegTokenResponse } from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { useSelector } from \"react-redux\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { ClusterRegistered, ProxyConfiguration } from \"./utils\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n resetRegisterForm,\n setCurTab,\n setLoading,\n setSubnetRegToken,\n} from \"./registerSlice\";\nimport OfflineRegistration from \"./OfflineRegistration\";\nimport SubnetMFAToken from \"./SubnetMFAToken\";\nimport ClusterRegistrationForm from \"./ClusterRegistrationForm\";\nimport OnlineRegistration from \"./OnlineRegistration\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport api from \"../../../common/api\";\nimport ApiKeyRegister from \"./ApiKeyRegister\";\n\nconst Register = () => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n\n const loading = useSelector((state: AppState) => state.register.loading);\n const loadingLicenseInfo = useSelector(\n (state: AppState) => state.register.loadingLicenseInfo,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n const curTab = useSelector((state: AppState) => state.register.curTab);\n\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n\n useEffect(() => {\n // when unmounted, reset\n return () => {\n dispatch(resetRegisterForm());\n };\n }, [dispatch]);\n\n useEffect(() => {\n if (curTab === \"simple-tab-2\" && !loading && !subnetRegToken) {\n const fetchSubnetRegToken = () => {\n dispatch(setLoading(true));\n api\n .invoke(\"GET\", \"/api/v1/subnet/registration-token\")\n .then((resp: SubnetRegTokenResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.regToken) {\n dispatch(setSubnetRegToken(resp.regToken));\n }\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n };\n fetchSubnetRegToken();\n }\n }, [curTab, loading, subnetRegToken, dispatch]);\n\n useEffect(() => {\n if (initialLicenseLoading) {\n dispatch(fetchLicenseInfo());\n setInitialLicenseLoading(false);\n }\n }, [initialLicenseLoading, setInitialLicenseLoading, dispatch]);\n\n let clusterRegistrationForm: React.ReactElement = ;\n\n if (subnetAccessToken && subnetOrganizations.length > 0) {\n clusterRegistrationForm = ;\n } else if (subnetMFAToken) {\n clusterRegistrationForm = ;\n } else {\n clusterRegistrationForm = ;\n }\n\n const apiKeyRegistration = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n \n )}\n \n \n \n );\n\n const offlineRegistration = ;\n\n const regUi = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n clusterRegistrationForm\n )}\n \n\n {!clusterRegistered && }\n \n );\n\n const loadingUi =
Loading..
;\n const uiToShow = loadingLicenseInfo ? loadingUi : regUi;\n\n useEffect(() => {\n dispatch(setHelpName(\"register\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n }\n />\n\n \n {\n dispatch(setCurTab(newValue));\n }}\n options={[\n {\n tabConfig: {\n label: \"Credentials\",\n id: \"simple-tab-0\",\n },\n content: uiToShow,\n },\n {\n tabConfig: {\n label: \"API Key\",\n id: \"simple-tab-1\",\n },\n content: apiKeyRegistration,\n },\n {\n tabConfig: {\n label: \"Air-Gap\",\n id: \"simple-tab-2\",\n },\n content: offlineRegistration,\n },\n ]}\n />\n \n \n );\n};\n\nexport default Register;\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 { VerifiedIcon, Box, breakPoints } from \"mds\";\n\nconst RegistrationStatusBanner = ({ email = \"\" }: { email?: string }) => {\n return (\n \n \n Register status:\n \n \n \n Registered\n \n \n \n\n \n Registered to:\n {email}\n \n \n );\n};\nexport default RegistrationStatusBanner;\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["ClusterRegistered","_ref","email","_jsxs","Fragment","children","_jsx","RegistrationStatusBanner","Grid","item","xs","sx","marginTop","Box","padding","href","target","ProxyConfiguration","proxyConfigurationCommand","_useState","useState","_useState2","_slicedToArray","displaySubnetProxy","setDisplaySubnetProxy","withBorders","display","alignItems","justifyContent","flexFlow","height","width","SettingsIcon","style","marginLeft","fontWeight","marginBottom","fontSize","InputBox","disabled","id","name","placeholder","onChange","label","value","overlayIcon","CopyIcon","overlayAction","navigator","clipboard","writeText","Switch","checked","event","fetchLicenseInfo","createAsyncThunk","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_","getState","dispatch","state","getSubnetInfo","wrap","_context","prev","next","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","LICENSE","register","loadingLicenseInfo","abrupt","setLoadingLicenseInfo","api","invoke","then","res","setLicenseInfo","setClusterRegistered","catch","err","detailedError","toLowerCase","setErrorSnackMessage","stop","_x","_x2","apply","arguments","callRegister","_ref4","_callee2","args","_ref3","request","_context2","token","account_id","setLoading","setServerNeedsRestart","resetRegisterForm","_x3","_x4","subnetLoginWithMFA","_ref6","_callee3","_ref5","subnetEmail","subnetMFAToken","subnetOTP","_context3","rejectWithValue","loading","username","otp","mfa_token","resp","access_token","organizations","length","accountId","toString","setSubnetAccessToken","setSubnetOrganizations","setSelectedSubnetOrganization","setSubnetOTP","_x5","_x6","subnetLogin","_ref8","_callee4","_ref7","license","subnetPassword","_context4","password","apiKey","registered","setSubnetMFAToken","_x7","_x8","FeatureItem","icon","description","marginRight","className","fontStyle","HelpBox","title","iconComponent","HelpIconFilled","help","CallHomeFeatureIcon","DiagnosticsFeatureIcon","PerformanceFeatureIcon","ExtraFeaturesIcon","useAppDispatch","subnetRegToken","useSelector","clusterRegistered","licenseInfo","offlineRegUrl","concat","licenseKey","setLicenseKey","_useApi","useApi","_useApi2","isSaving","invokeApplyLicenseApi","FormLayout","OfflineRegistrationIcon","helpBox","RegisterHelpBox","containerPadding","flex","gap","TooltipWrapper","tooltip","CopyToClipboard","text","Button","type","color","variant","flexDirection","CommentBox","e","modalStyleUtils","modalButtonBar","onClick","key_values","key","LockIcon","trim","subnetAccessToken","selectedSubnetOrganization","subnetOrganizations","Select","options","map","organization","company","OnlineRegistrationIcon","setSubnetEmail","UsersIcon","setSubnetPassword","preventDefault","window","open","closeModal","onSet","setEmail","_useState3","_useState4","setPassword","_useState5","_useState6","mfaToken","setMfaToken","_useState7","_useState8","invokeApi","isLoading","getCredentialsDialog","getMFADialog","ConfirmDialog","confirmText","isOpen","titleIcon","InfoIcon","cancelText","onConfirm","onClose","confirmButtonProps","hidden","cancelButtonProps","confirmationContent","registerEndpoint","navigate","useNavigate","showApiKeyModal","setShowApiKeyModal","setApiKey","fromModal","setFromModal","onRegister","useCallback","reset","useEffect","GetApiKeyModal","curTab","initialLicenseLoading","setInitialLicenseLoading","regToken","setSubnetRegToken","console","error","clusterRegistrationForm","ClusterRegistrationForm","SubnetMFAToken","OnlineRegistration","apiKeyRegistration","ApiKeyRegister","offlineRegistration","OfflineRegistration","regUi","uiToShow","setHelpName","PageHeaderWrapper","actions","HelpMenu","PageLayout","Tabs","horizontal","currentTabOrPath","onTabClick","newValue","setCurTab","tabConfig","content","_ref$email","position","top","left","backgroundColor","fill","VerifiedIcon","_defineProperty","breakPoints","sm","deselectCurrent","require","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","success","document","createRange","getSelection","createElement","textContent","ariaHidden","all","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","warn","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","copyKey","test","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","i","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","self","TypeError","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","Array","_key","_this$props","elem","Children","only","_this$props2","cloneElement","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1581.2174ac68.chunk.js b/portal-ui/build/static/js/1581.2174ac68.chunk.js deleted file mode 100644 index 6ef0a9d09..000000000 --- a/portal-ui/build/static/js/1581.2174ac68.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1581],{1581:function(e,t,n){n.r(t);var a=n(29439),o=n(72791),i=n(29945),u=n(45248),r=n(23814),c=n(56028),l=n(84741),d=n(87995),s=n(44690),f=n(31776),b=n(82342),h=n(80184);t.default=function(e){var t=e.open,n=e.enabled,x=e.cfg,p=e.selectedBucket,g=e.closeModalAndRefresh,k=(0,s.TL)(),v=(0,o.useState)(!1),j=(0,a.Z)(v,2),m=j[0],C=j[1],S=(0,o.useState)(!1),Z=(0,a.Z)(S,2),q=Z[0],B=Z[1],_=(0,o.useState)("1"),z=(0,a.Z)(_,2),E=z[0],y=z[1],A=(0,o.useState)("Ti"),T=(0,a.Z)(A,2),w=T[0],F=T[1],O=(0,o.useState)(!1),P=(0,a.Z)(O,2),Q=P[0],I=P[1];(0,o.useEffect)((function(){if(n&&(B(!0),x)){var e=(0,u.Am)(x.quota||0,!0,!1,!0);y(e.total.toString()),F(e.unit),I(!0)}}),[n,x]),(0,o.useEffect)((function(){I(!q||/^\d*(?:\.\d{1,2})?$/.test(E))}),[q,E]);return(0,h.jsx)(c.Z,{modalOpen:t,onClose:function(){g()},title:"Enable Bucket Quota",titleIcon:(0,h.jsx)(i.Wqw,{}),children:(0,h.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),!m&&Q&&f.h.buckets.setBucketQuota(p,{enabled:q,amount:parseInt((0,u.Pw)(E,w,!0)),quota_type:"hard"}).then((function(){C(!1),g()})).catch((function(e){C(!1),k((0,d.zb)((0,b.g)(e.error)))}))},children:(0,h.jsxs)(i.ltY,{withBorders:!1,containerPadding:!1,children:[(0,h.jsx)(i.rsf,{value:"bucket_quota",id:"bucket_quota",name:"bucket_quota",checked:q,onChange:function(e){B(e.target.checked)},label:"Enabled"}),q&&(0,h.jsx)(i.Wzg,{id:"quota_size",name:"quota_size",onChange:function(e){y(e.target.value),e.target.validity.valid?I(!0):I(!1)},label:"Quota",value:E,required:!0,min:"1",overlayObject:(0,h.jsx)(l.Z,{id:"quota_unit",onUnitChange:function(e){F(e)},unitSelected:w,unitsList:(0,u.zQ)(["Ki"]),disabled:!1}),error:Q?"":"Please enter a valid quota"}),(0,h.jsxs)(i.rjZ,{item:!0,xs:12,sx:r.ID.modalButtonBar,children:[(0,h.jsx)(i.zxk,{id:"cancel",type:"button",variant:"regular",disabled:m,onClick:function(){g()},label:"Cancel"}),(0,h.jsx)(i.zxk,{id:"save",type:"submit",variant:"callAction",disabled:m||!Q,label:"Save"})]}),m&&(0,h.jsx)(i.rjZ,{item:!0,xs:12,children:(0,h.jsx)(i.kod,{})})]})})})}},84741:function(e,t,n){var a=n(29439),o=n(72791),i=n(29945),u=n(17691),r=n(26181),c=n.n(r),l=n(80184),d=u.ZP.button((function(e){var t=e.theme;return{border:"1px solid ".concat(c()(t,"borderColor","#E2E2E2")),borderRadius:3,color:c()(t,"secondaryText","#5B5C5C"),backgroundColor:c()(t,"boxBackground","#FBFAFA"),fontSize:12}}));t.Z=function(e){var t=e.id,n=e.unitSelected,u=e.unitsList,r=e.disabled,c=void 0!==r&&r,s=e.onUnitChange,f=o.useState(null),b=(0,a.Z)(f,2),h=b[0],x=b[1],p=Boolean(h),g=function(e){x(null),""!==e&&s&&s(e)};return(0,l.jsxs)(o.Fragment,{children:[(0,l.jsx)(d,{id:"".concat(t,"-button"),"aria-controls":"".concat(t,"-menu"),"aria-haspopup":"true","aria-expanded":p?"true":void 0,onClick:function(e){x(e.currentTarget)},disabled:c,type:"button",children:n}),(0,l.jsx)(i.udT,{id:"upload-main-menu",options:u,selectedOption:"",onSelect:function(e){return g(e)},hideTriggerAction:function(){g("")},open:p,anchorEl:h,anchorOrigin:"end"})]})}}}]); -//# sourceMappingURL=1581.2174ac68.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1581.2174ac68.chunk.js.map b/portal-ui/build/static/js/1581.2174ac68.chunk.js.map deleted file mode 100644 index 5c972c9eb..000000000 --- a/portal-ui/build/static/js/1581.2174ac68.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1581.2174ac68.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EnableQuota.tsx","screens/Console/Common/FormComponents/InputUnitMenu/InputUnitMenu.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, { useEffect, useState } from \"react\";\nimport {\n BucketQuotaIcon,\n Button,\n FormLayout,\n InputBox,\n Switch,\n Grid,\n ProgressBar,\n} from \"mds\";\nimport {\n calculateBytes,\n getBytes,\n k8sScalarUnitsExcluding,\n} from \"../../../../common/utils\";\n\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { BucketQuota } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IEnableQuotaProps {\n open: boolean;\n enabled: boolean;\n cfg: BucketQuota | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n}\n\nconst EnableQuota = ({\n open,\n enabled,\n cfg,\n selectedBucket,\n closeModalAndRefresh,\n}: IEnableQuotaProps) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quotaSize, setQuotaSize] = useState(\"1\");\n const [quotaUnit, setQuotaUnit] = useState(\"Ti\");\n const [validInput, setValidInput] = useState(false);\n\n useEffect(() => {\n if (enabled) {\n setQuotaEnabled(true);\n if (cfg) {\n const unitCalc = calculateBytes(cfg.quota || 0, true, false, true);\n\n setQuotaSize(unitCalc.total.toString());\n setQuotaUnit(unitCalc.unit);\n setValidInput(true);\n }\n }\n }, [enabled, cfg]);\n\n useEffect(() => {\n const valRegExp = /^\\d*(?:\\.\\d{1,2})?$/;\n\n if (!quotaEnabled) {\n setValidInput(true);\n return;\n }\n\n setValidInput(valRegExp.test(quotaSize));\n }, [quotaEnabled, quotaSize]);\n\n const enableBucketEncryption = () => {\n if (loading || !validInput) {\n return;\n }\n\n api.buckets\n .setBucketQuota(selectedBucket, {\n enabled: quotaEnabled,\n amount: parseInt(getBytes(quotaSize, quotaUnit, true)),\n quota_type: \"hard\",\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n title=\"Enable Bucket Quota\"\n titleIcon={}\n >\n ) => {\n e.preventDefault();\n enableBucketEncryption();\n }}\n >\n \n ) => {\n setQuotaEnabled(event.target.checked);\n }}\n label={\"Enabled\"}\n />\n {quotaEnabled && (\n ) => {\n setQuotaSize(e.target.value);\n if (!e.target.validity.valid) {\n setValidInput(false);\n } else {\n setValidInput(true);\n }\n }}\n label=\"Quota\"\n value={quotaSize}\n required\n min=\"1\"\n overlayObject={\n {\n setQuotaUnit(newValue);\n }}\n unitSelected={quotaUnit}\n unitsList={k8sScalarUnitsExcluding([\"Ki\"])}\n disabled={false}\n />\n }\n error={!validInput ? \"Please enter a valid quota\" : \"\"}\n />\n )}\n \n {\n closeModalAndRefresh();\n }}\n label={\"Cancel\"}\n />\n\n \n \n {loading && (\n \n \n \n )}\n \n \n \n );\n};\n\nexport default EnableQuota;\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 { DropdownSelector, SelectorType } from \"mds\";\nimport styled from \"styled-components\";\nimport get from \"lodash/get\";\n\ninterface IInputUnitBox {\n id: string;\n unitSelected: string;\n unitsList: SelectorType[];\n disabled?: boolean;\n onUnitChange?: (newValue: string) => void;\n}\n\nconst UnitMenuButton = styled.button(({ theme }) => ({\n border: `1px solid ${get(theme, \"borderColor\", \"#E2E2E2\")}`,\n borderRadius: 3,\n color: get(theme, \"secondaryText\", \"#5B5C5C\"),\n backgroundColor: get(theme, \"boxBackground\", \"#FBFAFA\"),\n fontSize: 12,\n}));\n\nconst InputUnitMenu = ({\n id,\n unitSelected,\n unitsList,\n disabled = false,\n onUnitChange,\n}: IInputUnitBox) => {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (newUnit: string) => {\n setAnchorEl(null);\n if (newUnit !== \"\" && onUnitChange) {\n onUnitChange(newUnit);\n }\n };\n\n return (\n \n \n {unitSelected}\n \n handleClose(value)}\n hideTriggerAction={() => {\n handleClose(\"\");\n }}\n open={open}\n anchorEl={anchorEl}\n anchorOrigin={\"end\"}\n />\n \n );\n};\n\nexport default InputUnitMenu;\n"],"names":["_ref","open","enabled","cfg","selectedBucket","closeModalAndRefresh","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","loading","setLoading","_useState3","_useState4","quotaEnabled","setQuotaEnabled","_useState5","_useState6","quotaSize","setQuotaSize","_useState7","_useState8","quotaUnit","setQuotaUnit","_useState9","_useState10","validInput","setValidInput","useEffect","unitCalc","calculateBytes","quota","total","toString","unit","test","_jsx","ModalWrapper","modalOpen","onClose","title","titleIcon","BucketQuotaIcon","children","noValidate","autoComplete","onSubmit","e","preventDefault","api","buckets","setBucketQuota","amount","parseInt","getBytes","quota_type","then","catch","err","setModalErrorSnackMessage","errorToHandler","error","_jsxs","FormLayout","withBorders","containerPadding","Switch","value","id","name","checked","onChange","event","target","label","InputBox","validity","valid","required","min","overlayObject","InputUnitMenu","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","disabled","Grid","item","xs","sx","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","ProgressBar","UnitMenuButton","styled","button","theme","border","concat","get","borderRadius","color","backgroundColor","fontSize","_ref2","_ref2$disabled","_React$useState","React","_React$useState2","anchorEl","setAnchorEl","Boolean","handleClose","newUnit","Fragment","undefined","currentTarget","DropdownSelector","options","selectedOption","onSelect","hideTriggerAction","anchorOrigin"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1581.74c2c762.chunk.js b/portal-ui/build/static/js/1581.74c2c762.chunk.js new file mode 100644 index 000000000..24c105ccd --- /dev/null +++ b/portal-ui/build/static/js/1581.74c2c762.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1581],{1581:(e,t,a)=>{a.r(t),a.d(t,{default:()=>x});var n=a(72791),o=a(29945),l=a(45248),r=a(23814),i=a(56028),u=a(84741),s=a(87995),d=a(44690),c=a(31776),b=a(82342),h=a(80184);const x=e=>{let{open:t,enabled:a,cfg:x,selectedBucket:p,closeModalAndRefresh:g}=e;const k=(0,d.TL)(),[j,m]=(0,n.useState)(!1),[f,v]=(0,n.useState)(!1),[C,S]=(0,n.useState)("1"),[q,B]=(0,n.useState)("Ti"),[_,z]=(0,n.useState)(!1);(0,n.useEffect)((()=>{if(a&&(v(!0),x)){const e=(0,l.Am)(x.quota||0,!0,!1,!0);S(e.total.toString()),B(e.unit),z(!0)}}),[a,x]),(0,n.useEffect)((()=>{z(!f||/^\d*(?:\.\d{1,2})?$/.test(C))}),[f,C]);return(0,h.jsx)(i.Z,{modalOpen:t,onClose:()=>{g()},title:"Enable Bucket Quota",titleIcon:(0,h.jsx)(o.Wqw,{}),children:(0,h.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{e.preventDefault(),!j&&_&&c.h.buckets.setBucketQuota(p,{enabled:f,amount:parseInt((0,l.Pw)(C,q,!0)),quota_type:"hard"}).then((()=>{m(!1),g()})).catch((e=>{m(!1),k((0,s.zb)((0,b.g)(e.error)))}))},children:(0,h.jsxs)(o.ltY,{withBorders:!1,containerPadding:!1,children:[(0,h.jsx)(o.rsf,{value:"bucket_quota",id:"bucket_quota",name:"bucket_quota",checked:f,onChange:e=>{v(e.target.checked)},label:"Enabled"}),f&&(0,h.jsx)(o.Wzg,{id:"quota_size",name:"quota_size",onChange:e=>{S(e.target.value),e.target.validity.valid?z(!0):z(!1)},label:"Quota",value:C,required:!0,min:"1",overlayObject:(0,h.jsx)(u.Z,{id:"quota_unit",onUnitChange:e=>{B(e)},unitSelected:q,unitsList:(0,l.zQ)(["Ki"]),disabled:!1}),error:_?"":"Please enter a valid quota"}),(0,h.jsxs)(o.rjZ,{item:!0,xs:12,sx:r.ID.modalButtonBar,children:[(0,h.jsx)(o.zxk,{id:"cancel",type:"button",variant:"regular",disabled:j,onClick:()=>{g()},label:"Cancel"}),(0,h.jsx)(o.zxk,{id:"save",type:"submit",variant:"callAction",disabled:j||!_,label:"Save"})]}),j&&(0,h.jsx)(o.rjZ,{item:!0,xs:12,children:(0,h.jsx)(o.kod,{})})]})})})}},84741:(e,t,a)=>{a.d(t,{Z:()=>d});var n=a(72791),o=a(29945),l=a(16444),r=a(26181),i=a.n(r),u=a(80184);const s=l.ZP.button((e=>{let{theme:t}=e;return{border:"1px solid ".concat(i()(t,"borderColor","#E2E2E2")),borderRadius:3,color:i()(t,"secondaryText","#5B5C5C"),backgroundColor:i()(t,"boxBackground","#FBFAFA"),fontSize:12}})),d=e=>{let{id:t,unitSelected:a,unitsList:l,disabled:r=!1,onUnitChange:i}=e;const[d,c]=n.useState(null),b=Boolean(d),h=e=>{c(null),""!==e&&i&&i(e)};return(0,u.jsxs)(n.Fragment,{children:[(0,u.jsx)(s,{id:"".concat(t,"-button"),"aria-controls":"".concat(t,"-menu"),"aria-haspopup":"true","aria-expanded":b?"true":void 0,onClick:e=>{c(e.currentTarget)},disabled:r,type:"button",children:a}),(0,u.jsx)(o.udT,{id:"upload-main-menu",options:l,selectedOption:"",onSelect:e=>h(e),hideTriggerAction:()=>{h("")},open:b,anchorEl:d,anchorOrigin:"end"})]})}}}]); +//# sourceMappingURL=1581.74c2c762.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1581.74c2c762.chunk.js.map b/portal-ui/build/static/js/1581.74c2c762.chunk.js.map new file mode 100644 index 000000000..29575d7ad --- /dev/null +++ b/portal-ui/build/static/js/1581.74c2c762.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1581.74c2c762.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EnableQuota.tsx","screens/Console/Common/FormComponents/InputUnitMenu/InputUnitMenu.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, { useEffect, useState } from \"react\";\nimport {\n BucketQuotaIcon,\n Button,\n FormLayout,\n InputBox,\n Switch,\n Grid,\n ProgressBar,\n} from \"mds\";\nimport {\n calculateBytes,\n getBytes,\n k8sScalarUnitsExcluding,\n} from \"../../../../common/utils\";\n\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { BucketQuota } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IEnableQuotaProps {\n open: boolean;\n enabled: boolean;\n cfg: BucketQuota | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n}\n\nconst EnableQuota = ({\n open,\n enabled,\n cfg,\n selectedBucket,\n closeModalAndRefresh,\n}: IEnableQuotaProps) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quotaSize, setQuotaSize] = useState(\"1\");\n const [quotaUnit, setQuotaUnit] = useState(\"Ti\");\n const [validInput, setValidInput] = useState(false);\n\n useEffect(() => {\n if (enabled) {\n setQuotaEnabled(true);\n if (cfg) {\n const unitCalc = calculateBytes(cfg.quota || 0, true, false, true);\n\n setQuotaSize(unitCalc.total.toString());\n setQuotaUnit(unitCalc.unit);\n setValidInput(true);\n }\n }\n }, [enabled, cfg]);\n\n useEffect(() => {\n const valRegExp = /^\\d*(?:\\.\\d{1,2})?$/;\n\n if (!quotaEnabled) {\n setValidInput(true);\n return;\n }\n\n setValidInput(valRegExp.test(quotaSize));\n }, [quotaEnabled, quotaSize]);\n\n const enableBucketEncryption = () => {\n if (loading || !validInput) {\n return;\n }\n\n api.buckets\n .setBucketQuota(selectedBucket, {\n enabled: quotaEnabled,\n amount: parseInt(getBytes(quotaSize, quotaUnit, true)),\n quota_type: \"hard\",\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n title=\"Enable Bucket Quota\"\n titleIcon={}\n >\n ) => {\n e.preventDefault();\n enableBucketEncryption();\n }}\n >\n \n ) => {\n setQuotaEnabled(event.target.checked);\n }}\n label={\"Enabled\"}\n />\n {quotaEnabled && (\n ) => {\n setQuotaSize(e.target.value);\n if (!e.target.validity.valid) {\n setValidInput(false);\n } else {\n setValidInput(true);\n }\n }}\n label=\"Quota\"\n value={quotaSize}\n required\n min=\"1\"\n overlayObject={\n {\n setQuotaUnit(newValue);\n }}\n unitSelected={quotaUnit}\n unitsList={k8sScalarUnitsExcluding([\"Ki\"])}\n disabled={false}\n />\n }\n error={!validInput ? \"Please enter a valid quota\" : \"\"}\n />\n )}\n \n {\n closeModalAndRefresh();\n }}\n label={\"Cancel\"}\n />\n\n \n \n {loading && (\n \n \n \n )}\n \n \n \n );\n};\n\nexport default EnableQuota;\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 { DropdownSelector, SelectorType } from \"mds\";\nimport styled from \"styled-components\";\nimport get from \"lodash/get\";\n\ninterface IInputUnitBox {\n id: string;\n unitSelected: string;\n unitsList: SelectorType[];\n disabled?: boolean;\n onUnitChange?: (newValue: string) => void;\n}\n\nconst UnitMenuButton = styled.button(({ theme }) => ({\n border: `1px solid ${get(theme, \"borderColor\", \"#E2E2E2\")}`,\n borderRadius: 3,\n color: get(theme, \"secondaryText\", \"#5B5C5C\"),\n backgroundColor: get(theme, \"boxBackground\", \"#FBFAFA\"),\n fontSize: 12,\n}));\n\nconst InputUnitMenu = ({\n id,\n unitSelected,\n unitsList,\n disabled = false,\n onUnitChange,\n}: IInputUnitBox) => {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (newUnit: string) => {\n setAnchorEl(null);\n if (newUnit !== \"\" && onUnitChange) {\n onUnitChange(newUnit);\n }\n };\n\n return (\n \n \n {unitSelected}\n \n handleClose(value)}\n hideTriggerAction={() => {\n handleClose(\"\");\n }}\n open={open}\n anchorEl={anchorEl}\n anchorOrigin={\"end\"}\n />\n \n );\n};\n\nexport default InputUnitMenu;\n"],"names":["_ref","open","enabled","cfg","selectedBucket","closeModalAndRefresh","dispatch","useAppDispatch","loading","setLoading","useState","quotaEnabled","setQuotaEnabled","quotaSize","setQuotaSize","quotaUnit","setQuotaUnit","validInput","setValidInput","useEffect","unitCalc","calculateBytes","quota","total","toString","unit","test","_jsx","ModalWrapper","modalOpen","onClose","title","titleIcon","BucketQuotaIcon","children","noValidate","autoComplete","onSubmit","e","preventDefault","api","buckets","setBucketQuota","amount","parseInt","getBytes","quota_type","then","catch","err","setModalErrorSnackMessage","errorToHandler","error","_jsxs","FormLayout","withBorders","containerPadding","Switch","value","id","name","checked","onChange","event","target","label","InputBox","validity","valid","required","min","overlayObject","InputUnitMenu","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","disabled","Grid","item","xs","sx","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","ProgressBar","UnitMenuButton","styled","button","theme","border","concat","get","borderRadius","color","backgroundColor","fontSize","_ref2","anchorEl","setAnchorEl","React","Boolean","handleClose","newUnit","Fragment","undefined","currentTarget","DropdownSelector","options","selectedOption","onSelect","hideTriggerAction","anchorOrigin"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1604.7bfdfe29.chunk.js b/portal-ui/build/static/js/1604.7bfdfe29.chunk.js deleted file mode 100644 index 2025e91ce..000000000 --- a/portal-ui/build/static/js/1604.7bfdfe29.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1604],{1604:function(e,t,n){n.r(t);var i=n(29439),a=n(72791),o=n(29945),l=n(31776),r=n(66315),c=n(82342),s=n(23814),u=n(87995),d=n(44690),m=n(56028),b=n(80184);t.default=function(e){var t=e.open,n=e.bucketName,h=e.closeModalAndRefresh,p=(0,d.TL)(),f=(0,a.useState)(!1),g=(0,i.Z)(f,2),j=g[0],v=g[1],x=(0,a.useState)(!0),k=(0,i.Z)(x,2),y=k[0],C=k[1],S=(0,a.useState)(r.oO.Compliance),R=(0,i.Z)(S,2),Z=R[0],O=R[1],_=(0,a.useState)(r.zR.Days),w=(0,i.Z)(_,2),z=w[0],N=w[1],B=(0,a.useState)(1),D=(0,i.Z)(B,2),E=D[0],V=D[1],A=(0,a.useState)(!1),M=(0,i.Z)(A,2),T=M[0],G=M[1];return(0,a.useEffect)((function(){Number.isNaN(E)||(E||1)<1?G(!1):G(!0)}),[E]),(0,a.useEffect)((function(){y&&l.h.buckets.getBucketRetentionConfig(n).then((function(e){C(!1),O(e.data.mode),V(e.data.validity),N(e.data.unit)})).catch((function(){C(!1)}))}),[y,n]),(0,b.jsx)(m.Z,{title:"Set Retention Configuration",modalOpen:t,onClose:function(){h()},children:y?(0,b.jsx)(o.aNw,{style:{width:16,height:16}}):(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),j||(v(!0),l.h.buckets.setBucketRetentionConfig(n,{mode:Z||r.oO.Compliance,unit:z||r.zR.Days,validity:E||1}).then((function(){v(!1),h()})).catch((function(e){v(!1),p((0,u.zb)((0,c.g)(e.error)))})))},children:(0,b.jsxs)(o.ltY,{containerPadding:!1,withBorders:!1,children:[(0,b.jsx)(o.Eep,{currentValue:Z,id:"retention_mode",name:"retention_mode",label:"Retention Mode",onChange:function(e){O(e.target.value)},selectorOptions:[{value:"compliance",label:"Compliance"},{value:"governance",label:"Governance"}],helpTip:(0,b.jsxs)(a.Fragment,{children:[" ",(0,b.jsx)("a",{href:"https://min.io/docs/minio/macos/administration/object-management/object-retention.html#minio-object-locking-compliance",target:"blank",children:"Compliance"})," ","lock protects Objects from write operations by all users, including the MinIO root user.",(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),(0,b.jsx)("a",{href:"https://min.io/docs/minio/macos/administration/object-management/object-retention.html#minio-object-locking-governance",target:"blank",children:"Governance"})," ","lock protects Objects from write operations by non-privileged users."]}),helpTipPlacement:"right"}),(0,b.jsx)(o.Eep,{currentValue:z,id:"retention_unit",name:"retention_unit",label:"Retention Unit",onChange:function(e){N(e.target.value)},selectorOptions:[{value:"days",label:"Days"},{value:"years",label:"Years"}]}),(0,b.jsx)(o.Wzg,{type:"number",id:"retention_validity",name:"retention_validity",onChange:function(e){V(e.target.valueAsNumber)},label:"Retention Validity",value:String(E),required:!0,min:"1"}),(0,b.jsxs)(o.rjZ,{item:!0,xs:12,sx:s.ID.modalButtonBar,children:[(0,b.jsx)(o.zxk,{id:"cancel",type:"button",variant:"regular",disabled:j,onClick:function(){h()},label:"Cancel"}),(0,b.jsx)(o.zxk,{id:"set",type:"submit",variant:"callAction",color:"primary",disabled:j||!T,label:"Set"})]}),j&&(0,b.jsx)(o.rjZ,{item:!0,xs:12,children:(0,b.jsx)(o.kod,{})})]})})})}}}]); -//# sourceMappingURL=1604.7bfdfe29.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1604.7bfdfe29.chunk.js.map b/portal-ui/build/static/js/1604.7bfdfe29.chunk.js.map deleted file mode 100644 index 73a56e5b3..000000000 --- a/portal-ui/build/static/js/1604.7bfdfe29.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1604.7bfdfe29.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetRetentionConfig.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, { useEffect, useState, Fragment } from \"react\";\nimport {\n Button,\n Loader,\n Grid,\n FormLayout,\n RadioGroup,\n InputBox,\n ProgressBar,\n} from \"mds\";\nimport { api } from \"api\";\nimport { ObjectRetentionMode, ObjectRetentionUnit } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\n\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\n\ninterface ISetRetentionConfigProps {\n open: boolean;\n bucketName: string;\n closeModalAndRefresh: () => void;\n}\n\nconst SetRetentionConfig = ({\n open,\n bucketName,\n closeModalAndRefresh,\n}: ISetRetentionConfigProps) => {\n const dispatch = useAppDispatch();\n const [addLoading, setAddLoading] = useState(false);\n const [loadingForm, setLoadingForm] = useState(true);\n const [retentionMode, setRetentionMode] = useState<\n ObjectRetentionMode | undefined\n >(ObjectRetentionMode.Compliance);\n const [retentionUnit, setRetentionUnit] = useState<\n ObjectRetentionUnit | undefined\n >(ObjectRetentionUnit.Days);\n const [retentionValidity, setRetentionValidity] = useState<\n number | undefined\n >(1);\n const [valid, setValid] = useState(false);\n\n const setRetention = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api.buckets\n .setBucketRetentionConfig(bucketName, {\n mode: retentionMode || ObjectRetentionMode.Compliance,\n unit: retentionUnit || ObjectRetentionUnit.Days,\n validity: retentionValidity || 1,\n })\n .then(() => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err) => {\n setAddLoading(false);\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n useEffect(() => {\n if (Number.isNaN(retentionValidity) || (retentionValidity || 1) < 1) {\n setValid(false);\n return;\n }\n setValid(true);\n }, [retentionValidity]);\n\n useEffect(() => {\n if (loadingForm) {\n api.buckets\n .getBucketRetentionConfig(bucketName)\n .then((res) => {\n setLoadingForm(false);\n\n // We set default values\n setRetentionMode(res.data.mode);\n setRetentionValidity(res.data.validity);\n setRetentionUnit(res.data.unit);\n })\n .catch(() => {\n setLoadingForm(false);\n });\n }\n }, [loadingForm, bucketName]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n >\n {loadingForm ? (\n \n ) : (\n ) => {\n setRetention(e);\n }}\n >\n \n ) => {\n setRetentionMode(e.target.value as ObjectRetentionMode);\n }}\n selectorOptions={[\n { value: \"compliance\", label: \"Compliance\" },\n { value: \"governance\", label: \"Governance\" },\n ]}\n helpTip={\n \n {\" \"}\n \n Compliance\n {\" \"}\n lock protects Objects from write operations by all users,\n including the MinIO root user.\n
\n
\n \n Governance\n {\" \"}\n lock protects Objects from write operations by non-privileged\n users.\n
\n }\n helpTipPlacement=\"right\"\n />\n ) => {\n setRetentionUnit(e.target.value as ObjectRetentionUnit);\n }}\n selectorOptions={[\n { value: \"days\", label: \"Days\" },\n { value: \"years\", label: \"Years\" },\n ]}\n />\n ) => {\n setRetentionValidity(e.target.valueAsNumber);\n }}\n label=\"Retention Validity\"\n value={String(retentionValidity)}\n required\n min=\"1\"\n />\n \n {\n closeModalAndRefresh();\n }}\n label={\"Cancel\"}\n />\n \n \n {addLoading && (\n \n \n \n )}\n
\n \n )}\n \n );\n};\n\nexport default SetRetentionConfig;\n"],"names":["_ref","open","bucketName","closeModalAndRefresh","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","addLoading","setAddLoading","_useState3","_useState4","loadingForm","setLoadingForm","_useState5","ObjectRetentionMode","Compliance","_useState6","retentionMode","setRetentionMode","_useState7","ObjectRetentionUnit","Days","_useState8","retentionUnit","setRetentionUnit","_useState9","_useState10","retentionValidity","setRetentionValidity","_useState11","_useState12","valid","setValid","useEffect","Number","isNaN","api","buckets","getBucketRetentionConfig","then","res","data","mode","validity","unit","catch","_jsx","ModalWrapper","title","modalOpen","onClose","children","Loader","style","width","height","noValidate","autoComplete","onSubmit","e","preventDefault","setBucketRetentionConfig","err","setModalErrorSnackMessage","errorToHandler","error","_jsxs","FormLayout","containerPadding","withBorders","RadioGroup","currentValue","id","name","label","onChange","target","value","selectorOptions","helpTip","Fragment","href","helpTipPlacement","InputBox","type","valueAsNumber","String","required","min","Grid","item","xs","sx","modalStyleUtils","modalButtonBar","Button","variant","disabled","onClick","color","ProgressBar"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1604.da19242e.chunk.js b/portal-ui/build/static/js/1604.da19242e.chunk.js new file mode 100644 index 000000000..08e8292bc --- /dev/null +++ b/portal-ui/build/static/js/1604.da19242e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1604],{1604:(e,t,n)=>{n.r(t),n.d(t,{default:()=>b});var a=n(72791),i=n(29945),o=n(31776),l=n(66315),r=n(82342),s=n(23814),c=n(87995),u=n(44690),d=n(56028),m=n(80184);const b=e=>{let{open:t,bucketName:n,closeModalAndRefresh:b}=e;const h=(0,u.TL)(),[p,g]=(0,a.useState)(!1),[j,x]=(0,a.useState)(!0),[v,f]=(0,a.useState)(l.oO.Compliance),[k,y]=(0,a.useState)(l.zR.Days),[C,S]=(0,a.useState)(1),[R,O]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{Number.isNaN(C)||(C||1)<1?O(!1):O(!0)}),[C]),(0,a.useEffect)((()=>{j&&o.h.buckets.getBucketRetentionConfig(n).then((e=>{x(!1),f(e.data.mode),S(e.data.validity),y(e.data.unit)})).catch((()=>{x(!1)}))}),[j,n]),(0,m.jsx)(d.Z,{title:"Set Retention Configuration",modalOpen:t,onClose:()=>{b()},children:j?(0,m.jsx)(i.aNw,{style:{width:16,height:16}}):(0,m.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{e.preventDefault(),p||(g(!0),o.h.buckets.setBucketRetentionConfig(n,{mode:v||l.oO.Compliance,unit:k||l.zR.Days,validity:C||1}).then((()=>{g(!1),b()})).catch((e=>{g(!1),h((0,c.zb)((0,r.g)(e.error)))})))},children:(0,m.jsxs)(i.ltY,{containerPadding:!1,withBorders:!1,children:[(0,m.jsx)(i.Eep,{currentValue:v,id:"retention_mode",name:"retention_mode",label:"Retention Mode",onChange:e=>{f(e.target.value)},selectorOptions:[{value:"compliance",label:"Compliance"},{value:"governance",label:"Governance"}],helpTip:(0,m.jsxs)(a.Fragment,{children:[" ",(0,m.jsx)("a",{href:"https://min.io/docs/minio/macos/administration/object-management/object-retention.html#minio-object-locking-compliance",target:"blank",children:"Compliance"})," ","lock protects Objects from write operations by all users, including the MinIO root user.",(0,m.jsx)("br",{}),(0,m.jsx)("br",{}),(0,m.jsx)("a",{href:"https://min.io/docs/minio/macos/administration/object-management/object-retention.html#minio-object-locking-governance",target:"blank",children:"Governance"})," ","lock protects Objects from write operations by non-privileged users."]}),helpTipPlacement:"right"}),(0,m.jsx)(i.Eep,{currentValue:k,id:"retention_unit",name:"retention_unit",label:"Retention Unit",onChange:e=>{y(e.target.value)},selectorOptions:[{value:"days",label:"Days"},{value:"years",label:"Years"}]}),(0,m.jsx)(i.Wzg,{type:"number",id:"retention_validity",name:"retention_validity",onChange:e=>{S(e.target.valueAsNumber)},label:"Retention Validity",value:String(C),required:!0,min:"1"}),(0,m.jsxs)(i.rjZ,{item:!0,xs:12,sx:s.ID.modalButtonBar,children:[(0,m.jsx)(i.zxk,{id:"cancel",type:"button",variant:"regular",disabled:p,onClick:()=>{b()},label:"Cancel"}),(0,m.jsx)(i.zxk,{id:"set",type:"submit",variant:"callAction",color:"primary",disabled:p||!R,label:"Set"})]}),p&&(0,m.jsx)(i.rjZ,{item:!0,xs:12,children:(0,m.jsx)(i.kod,{})})]})})})}}}]); +//# sourceMappingURL=1604.da19242e.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1604.da19242e.chunk.js.map b/portal-ui/build/static/js/1604.da19242e.chunk.js.map new file mode 100644 index 000000000..7318f06ed --- /dev/null +++ b/portal-ui/build/static/js/1604.da19242e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1604.da19242e.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetRetentionConfig.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, { useEffect, useState, Fragment } from \"react\";\nimport {\n Button,\n Loader,\n Grid,\n FormLayout,\n RadioGroup,\n InputBox,\n ProgressBar,\n} from \"mds\";\nimport { api } from \"api\";\nimport { ObjectRetentionMode, ObjectRetentionUnit } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\n\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\n\ninterface ISetRetentionConfigProps {\n open: boolean;\n bucketName: string;\n closeModalAndRefresh: () => void;\n}\n\nconst SetRetentionConfig = ({\n open,\n bucketName,\n closeModalAndRefresh,\n}: ISetRetentionConfigProps) => {\n const dispatch = useAppDispatch();\n const [addLoading, setAddLoading] = useState(false);\n const [loadingForm, setLoadingForm] = useState(true);\n const [retentionMode, setRetentionMode] = useState<\n ObjectRetentionMode | undefined\n >(ObjectRetentionMode.Compliance);\n const [retentionUnit, setRetentionUnit] = useState<\n ObjectRetentionUnit | undefined\n >(ObjectRetentionUnit.Days);\n const [retentionValidity, setRetentionValidity] = useState<\n number | undefined\n >(1);\n const [valid, setValid] = useState(false);\n\n const setRetention = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api.buckets\n .setBucketRetentionConfig(bucketName, {\n mode: retentionMode || ObjectRetentionMode.Compliance,\n unit: retentionUnit || ObjectRetentionUnit.Days,\n validity: retentionValidity || 1,\n })\n .then(() => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err) => {\n setAddLoading(false);\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n useEffect(() => {\n if (Number.isNaN(retentionValidity) || (retentionValidity || 1) < 1) {\n setValid(false);\n return;\n }\n setValid(true);\n }, [retentionValidity]);\n\n useEffect(() => {\n if (loadingForm) {\n api.buckets\n .getBucketRetentionConfig(bucketName)\n .then((res) => {\n setLoadingForm(false);\n\n // We set default values\n setRetentionMode(res.data.mode);\n setRetentionValidity(res.data.validity);\n setRetentionUnit(res.data.unit);\n })\n .catch(() => {\n setLoadingForm(false);\n });\n }\n }, [loadingForm, bucketName]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n >\n {loadingForm ? (\n \n ) : (\n ) => {\n setRetention(e);\n }}\n >\n \n ) => {\n setRetentionMode(e.target.value as ObjectRetentionMode);\n }}\n selectorOptions={[\n { value: \"compliance\", label: \"Compliance\" },\n { value: \"governance\", label: \"Governance\" },\n ]}\n helpTip={\n \n {\" \"}\n \n Compliance\n {\" \"}\n lock protects Objects from write operations by all users,\n including the MinIO root user.\n
\n
\n \n Governance\n {\" \"}\n lock protects Objects from write operations by non-privileged\n users.\n
\n }\n helpTipPlacement=\"right\"\n />\n ) => {\n setRetentionUnit(e.target.value as ObjectRetentionUnit);\n }}\n selectorOptions={[\n { value: \"days\", label: \"Days\" },\n { value: \"years\", label: \"Years\" },\n ]}\n />\n ) => {\n setRetentionValidity(e.target.valueAsNumber);\n }}\n label=\"Retention Validity\"\n value={String(retentionValidity)}\n required\n min=\"1\"\n />\n \n {\n closeModalAndRefresh();\n }}\n label={\"Cancel\"}\n />\n \n \n {addLoading && (\n \n \n \n )}\n
\n \n )}\n \n );\n};\n\nexport default SetRetentionConfig;\n"],"names":["_ref","open","bucketName","closeModalAndRefresh","dispatch","useAppDispatch","addLoading","setAddLoading","useState","loadingForm","setLoadingForm","retentionMode","setRetentionMode","ObjectRetentionMode","Compliance","retentionUnit","setRetentionUnit","ObjectRetentionUnit","Days","retentionValidity","setRetentionValidity","valid","setValid","useEffect","Number","isNaN","api","buckets","getBucketRetentionConfig","then","res","data","mode","validity","unit","catch","_jsx","ModalWrapper","title","modalOpen","onClose","children","Loader","style","width","height","noValidate","autoComplete","onSubmit","e","preventDefault","setBucketRetentionConfig","err","setModalErrorSnackMessage","errorToHandler","error","_jsxs","FormLayout","containerPadding","withBorders","RadioGroup","currentValue","id","name","label","onChange","target","value","selectorOptions","helpTip","Fragment","href","helpTipPlacement","InputBox","type","valueAsNumber","String","required","min","Grid","item","xs","sx","modalStyleUtils","modalButtonBar","Button","variant","disabled","onClick","color","ProgressBar"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1690.48a846c2.chunk.js b/portal-ui/build/static/js/1690.48a846c2.chunk.js deleted file mode 100644 index caa860c28..000000000 --- a/portal-ui/build/static/js/1690.48a846c2.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1690],{90767:function(e,n,t){var i=t(29439),r=t(72791),o=t(31776),s=t(82342),a=t(23508),l=t(29945),c=t(87995),u=t(44690),d=t(80184);n.Z=function(e){var n=e.configurationName,t=e.closeResetModalAndRefresh,p=e.resetOpen,x=(0,u.TL)(),f=(0,r.useState)(!1),h=(0,i.Z)(f,2),g=h[0],m=h[1];(0,r.useEffect)((function(){g&&o.h.configs.resetConfig(n).then((function(){m(!1),t(!0)})).catch((function(e){m(!1),x((0,c.Ih)((0,s.g)(e.error)))}))}),[t,n,g,x]);return(0,d.jsx)(a.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:p,titleIcon:(0,d.jsx)(l.NvT,{}),isLoading:g,onConfirm:function(){m(!0)},onClose:function(){t(!1)},confirmationContent:(0,d.jsxs)(r.Fragment,{children:[g&&(0,d.jsx)(l.kod,{}),(0,d.jsxs)(r.Fragment,{children:["Are you sure you want to restore these configurations to default values?",(0,d.jsx)("br",{}),(0,d.jsx)("b",{style:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"},children:"Please note that this may cause your system to not be accessible"})]})]})})}},37099:function(e,n,t){var i=t(72791),r=t(29945),o=t(80184),s=function(e){var n=e.icon,t=e.description;return(0,o.jsxs)(r.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,o.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})};n.Z=function(e){var n=e.helpText,t=e.docLink,a=e.docText,l=e.contents;return(0,o.jsxs)(r.xuv,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px"},children:[(0,o.jsxs)(r.xuv,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,o.jsx)(r.M9A,{}),(0,o.jsx)("div",{children:n})]}),(0,o.jsxs)(r.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:[l.map((function(e,n){return(0,o.jsxs)(i.Fragment,{children:[e.icon&&(0,o.jsx)(r.xuv,{sx:{paddingBottom:"20px"},children:(0,o.jsx)(s,{icon:e.icon,description:e.iconDescription})}),(0,o.jsx)(r.xuv,{sx:{paddingBottom:"20px"},children:e.text})]},"feature-item-".concat(n))})),(0,o.jsx)(r.xuv,{sx:{paddingBottom:"20px"},children:(0,o.jsx)("a",{href:t,target:"_blank",rel:"noopener",children:a})})]})]})}},11690:function(e,n,t){t.r(n),t.d(n,{default:function(){return P}});var i=t(4942),r=t(74165),o=t(15861),s=t(1413),a=t(29439),l=t(72791),c=t(29945),u=t(31776),d=t(82342),p=t(44690),x=t(87995),f=t(79979),h=t(47974),g=t(37099),m=t(93433),v=t(78687),y=t(99779),j=t(80184),b=function(e){var n=e.name;return(0,j.jsxs)("h4",{children:[(0,j.jsx)(c.ZyT,{style:{transform:"rotateZ(90deg)"}}),n]})},k=function(e){var n=e.blockName,t=e.results;return(0,j.jsxs)(l.Fragment,{children:[(0,j.jsxs)("strong",{children:[n,":"]}),(0,j.jsx)("ul",{children:t.map((function(e,t){return(0,j.jsx)("li",{children:e},"policy-".concat(n,"-").concat(t))}))})]})},C=function(e){var n,t,i,r,o,s,a=e.entityName,u=e.results,d=0;switch(a){case"Group":d=(null===(n=u.groups)||void 0===n?void 0:n.length)||0;break;case"Policy":d=(null===(t=u.policies)||void 0===t?void 0:t.length)||0;break;case"User":d=(null===(i=u.users)||void 0===i?void 0:i.length)||0}return(0,j.jsxs)(c.xuv,{className:"resultElement",sx:{marginTop:50,"&:first-of-type":{marginTop:0}},children:[(0,j.jsxs)(c.NZf,{separator:!0,sx:{fontSize:12},icon:(0,j.jsx)(c.anK,{style:{width:17,height:17}}),actions:(0,j.jsxs)(c.xuv,{sx:{fontSize:14},children:[(0,j.jsx)("strong",{children:d})," Entit",1===d?"y":"ies"," Found"]}),children:[a," Mappings"]}),(0,j.jsxs)(c.xuv,{className:"resultsList",sx:{h4:{borderBottom:"#e2e2e2 1px solid",padding:"12px 0",margin:0,marginBottom:15,display:"flex",alignItems:"center","& svg":{marginRight:10,fill:"#3C77A7"}}},children:["Group"===a&&(null===(r=u.groups)||void 0===r?void 0:r.map((function(e,n){return(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(b,{name:e.group||""}),e.policies&&(0,j.jsx)(k,{blockName:"Policies",results:e.policies})]},"policy-res-".concat(n))}))),"User"===a&&(null===(o=u.users)||void 0===o?void 0:o.map((function(e,n){return(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(b,{name:e.user||""}),e.policies&&(0,j.jsx)(k,{blockName:"Policies",results:e.policies})]},"users-res-".concat(n))}))),"Policy"===a&&(null===(s=u.policies)||void 0===s?void 0:s.map((function(e,n){return(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(b,{name:e.policy||""}),e.groups&&(0,j.jsx)(k,{blockName:"Groups",results:e.groups}),e.users&&(0,j.jsx)(k,{blockName:"Users",results:e.users})]},"policy-map-".concat(n))})))]})]})},D=t(58400),Z=function(){var e=(0,p.TL)(),n=(0,l.useState)(!1),t=(0,a.Z)(n,2),i=t[0],r=t[1],o=(0,l.useState)([""]),s=(0,a.Z)(o,2),f=s[0],h=s[1],g=(0,l.useState)([""]),b=(0,a.Z)(g,2),k=b[0],Z=b[1],S=(0,l.useState)(null),_=(0,a.Z)(S,2),w=_[0],P=_[1],I=(0,v.v9)((function(e){return e.createUser.selectedPolicies}));return(0,j.jsxs)(c.xuv,{sx:{marginTop:15,paddingTop:0},children:[(0,j.jsxs)(c.rjZ,{container:!0,sx:{marginTop:5},children:[(0,j.jsxs)(c.rjZ,{item:!0,sm:12,md:6,lg:5,sx:{padding:10,paddingTop:0},children:[(0,j.jsx)(c.NZf,{children:"Query Filters"}),(0,j.jsxs)(c.xuv,{sx:{padding:"0 10px",display:"flex",flexDirection:"column",gap:40},children:[(0,j.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,j.jsx)(c.xuv,{sx:{display:"flex"},children:(0,j.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Users"})}),(0,j.jsx)(c.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:250,"& > div > div":{width:"100%"}},children:f.map((function(e,n){return(0,j.jsx)(c.Wzg,{id:"search-user-".concat(n),value:e,onChange:function(e){var t=(0,m.Z)(f);t[n]=e.target.value,h(t)},overlayIcon:f.length===n+1?(0,j.jsx)(c.dtP,{}):(0,j.jsx)(c.HFL,{}),overlayAction:function(){!function(e,n){if(e){var t=[].concat((0,m.Z)(f),[""]);h(t)}else{var i=f.filter((function(e,t){return t!==n}));h(i)}}(f.length===n+1,n)}},"search-user-".concat(n))}))})]}),(0,j.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,j.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Groups"}),(0,j.jsx)(c.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:"calc(100vh - 340px)","& > div > div":{width:"100%"}},children:k.map((function(e,n){return(0,j.jsx)(c.Wzg,{id:"search-group-".concat(n),value:e,onChange:function(e){var t=(0,m.Z)(k);t[n]=e.target.value,Z(t)},overlayIcon:k.length===n+1?(0,j.jsx)(c.dtP,{}):(0,j.jsx)(c.HFL,{}),overlayAction:function(){!function(e,n){if(e){var t=[].concat((0,m.Z)(k),[""]);Z(t)}else{var i=k.filter((function(e,t){return t!==n}));Z(i)}}(k.length===n+1,n)}},"search-group-".concat(n))}))})]}),(0,j.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,j.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Policies"}),(0,j.jsx)(c.xuv,{sx:{minHeight:265,maxHeight:"calc(100vh - 740px)"},children:(0,j.jsx)(D.Z,{selectedPolicy:I,noTitle:!0})})]})]})]}),(0,j.jsx)(c.rjZ,{item:!0,sm:12,md:6,lg:7,sx:{padding:10,paddingTop:0,display:"flex",flexDirection:"column"},children:i?(0,j.jsx)(c.xuv,{sx:{textAlign:"center"},children:(0,j.jsx)(c.aNw,{})}):(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(c.NZf,{actions:(0,j.jsx)(c.xuv,{sx:{display:"flex",flexDirection:"row",alignItems:"center",fontSize:14},children:null!==w&&void 0!==w&&w.timestamp?(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(c.wZd,{style:{width:14,height:14,marginRight:5,fill:"#BEBFBF"}}),y.ou.fromISO(w.timestamp).toFormat("D HH:mm:ss")]}):""}),children:"Query Results"}),w?(0,j.jsxs)(c.xuv,{sx:{backgroundColor:"#FBFAFA",padding:"8px 22px",flexGrow:1,overflowY:"auto"},children:[!w.groups&&!w.users&&!w.policies&&(0,j.jsx)(c.xuv,{sx:{textAlign:"center"},children:(0,j.jsx)("h4",{children:"No Results Available"})}),!!w.groups&&(0,j.jsx)(C,{results:w,entityName:"Group"}),!!w.users&&(0,j.jsx)(C,{results:w,entityName:"User"}),!!w.policies&&(0,j.jsx)(C,{results:w,entityName:"Policy"})]}):(0,j.jsx)(c.xuv,{sx:{textAlign:"center"},children:"No query results yet"})]})})]}),(0,j.jsx)(c.rjZ,{container:!0,children:(0,j.jsx)(c.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start",marginTop:45,padding:"0 20px"},children:(0,j.jsx)(c.zxk,{id:"search-entity",type:"button",variant:"callAction",onClick:function(){r(!0);var n={},t=I.filter((function(e){return""!==e})),i=f.filter((function(e){return""!==e})),o=k.filter((function(e){return""!==e}));t.length>0&&(n.policies=t),i.length>0&&(n.users=i),o.length>0&&(n.groups=o),u.h.ldapEntities.getLdapEntities(n).then((function(e){P(e.data),r(!1)})).catch((function(n){e((0,x.Ih)((0,d.g)(n.error))),r(!1)}))},icon:(0,j.jsx)(c.W1M,{}),children:"Search"})})})]})},S=t(90767),_=t(99670),w=["server_addr","lookup_bind_dn","user_dn_search_base_dn","user_dn_search_filter"],P=function(){var e=(0,p.TL)(),n=f.iR,t=(0,l.useState)(!0),m=(0,a.Z)(t,2),v=m[0],y=m[1],b=(0,l.useState)(!1),k=(0,a.Z)(b,2),C=k[0],D=k[1],P=(0,l.useState)(!1),I=(0,a.Z)(P,2),A=I[0],N=I[1],E=(0,l.useState)({}),O=(0,a.Z)(E,2),L=O[0],F=O[1],q=(0,l.useState)({}),B=(0,a.Z)(q,2),T=B[0],R=B[1],z=(0,l.useState)(void 0),U=(0,a.Z)(z,2),M=U[0],K=U[1],H=(0,l.useState)(!1),G=(0,a.Z)(H,2),Y=G[0],W=G[1],Q=(0,l.useState)(!1),X=(0,a.Z)(Q,2),V=X[0],J=X[1],$=(0,l.useState)("configuration"),ee=(0,a.Z)($,2),ne=ee[0],te=ee[1],ie=(0,l.useState)(!1),re=(0,a.Z)(ie,2),oe=re[0],se=re[1],ae=function(){Y&&M&&le(M),W(!Y)},le=function(e){var n={},t={};if(e&&e.length>0){var i=e.find((function(e){return"enable"===e.key})),r=0,o=0;e.forEach((function(e){e.env_override?(n[e.key]=e.env_override.value,t[e.key]=e.env_override.name):n[e.key]=e.value,w.includes(e.key)&&(e.value&&""!==e.value&&"off"!==e.value||e.env_override&&""!==e.env_override.value&&"off"!==e.env_override.value)&&r++,w.includes(e.key)&&e.env_override&&o++}));var s=0!==r;s&&(i&&"off"!==i.value||!i)?D(!0):D(!1),0!==o&&se(!0),N(s)}R(t),F(n)};(0,l.useEffect)((function(){v&&u.h.configs.configInfo("identity_ldap").then((function(e){e.data.length>0&&(K(e.data[0].key_values),le(e.data[0].key_values||[])),y(!1)})).catch((function(n){y(!1),e((0,x.Ih)((0,d.g)(n.error)))}))}),[e,v]);var ce=function(){var n=(0,o.Z)((0,r.Z)().mark((function n(t){return(0,r.Z)().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:J(!1),t&&(e((0,x.cN)(t)),K(void 0),F({}),D(!1),N(!1),W(!1));case 2:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}();return(0,l.useEffect)((function(){e((0,x.Sc)("LDAP"))}),[]),(0,j.jsxs)(c.rjZ,{item:!0,xs:12,children:[V&&(0,j.jsx)(S.Z,{configurationName:"identity_ldap",closeResetModalAndRefresh:ce,resetOpen:V}),(0,j.jsx)(h.Z,{label:"LDAP",actions:(0,j.jsx)(_.Z,{})}),(0,j.jsx)(c.Xgh,{variant:"constrained",children:(0,j.jsx)(c.mQc,{horizontal:!0,options:[{tabConfig:{id:"configuration",label:"Configuration"},content:(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(c.UHn,{icon:null,title:Y?"Edit Configuration":"",actions:Y?null:(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(c.ua7,{tooltip:oe?"Configuration cannot be edited in this module as LDAP environment variables are set for this MinIO instance.":"",children:(0,j.jsx)(c.zxk,{id:"edit",type:"button",variant:"callAction",icon:(0,j.jsx)(c.dY8,{}),onClick:ae,label:"Edit Configuration",disabled:v||oe})}),A&&(0,j.jsx)(c.ua7,{tooltip:oe?"Configuration cannot be disabled / enabled in this module as LDAP environment variables are set for this MinIO instance.":"",children:(0,j.jsx)(c.zxk,{id:"is-configuration-enabled",onClick:function(){return function(n){var t={key_values:[{key:"enable",value:n?"on":"off"}]};u.h.configs.setConfig("identity_ldap",t).then((function(n){D(!C),e((0,x.cN)(n.data.restart||!1)),n.data.restart||e((0,x.y1)("Configuration saved successfully"))})).catch((function(n){e((0,x.Ih)((0,d.g)(n.error)))}))}(!C)},label:C?"Disable LDAP":"Enable LDAP",variant:C?"secondary":"regular",disabled:oe})}),(0,j.jsx)(c.zxk,{id:"refresh-idp-config",onClick:function(){return y(!0)},label:"Refresh",icon:(0,j.jsx)(c.DuK,{})})]})}),(0,j.jsx)("br",{}),v?(0,j.jsx)(c.xuv,{sx:{display:"flex",justifyContent:"center",marginTop:10},children:(0,j.jsx)(c.aNw,{})}):(0,j.jsx)(l.Fragment,{children:Y?(0,j.jsx)(l.Fragment,{children:(0,j.jsxs)(c.ltY,{helpBox:(0,j.jsx)(g.Z,{helpText:"Learn more about LDAP Configurations",contents:f.Si,docLink:"https://min.io/docs/minio/linux/operations/external-iam.html?ref=con#minio-external-iam-ad-ldap",docText:"Learn more about LDAP Configurations"}),children:[Y&&A?(0,j.jsx)(c.xuv,{sx:{marginBottom:15},children:(0,j.jsx)(c.KfX,{title:(0,j.jsx)(c.xuv,{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flexGrow:1},children:"Lookup Bind Password must be re-entered to change LDAP configurations"}),iconComponent:(0,j.jsx)(c.e6P,{}),help:null})}):null,Object.entries(n).map((function(e){var n=(0,a.Z)(e,2);return function(e,n){return"toggle"===n.type?(0,j.jsx)(c.rsf,{indicatorLabels:["Enabled","Disabled"],checked:"on"===L[e],value:"is-field-enabled",id:"is-field-enabled",name:"is-field-enabled",label:n.label,tooltip:n.tooltip,onChange:function(n){return F((0,s.Z)((0,s.Z)({},L),{},(0,i.Z)({},e,n.target.checked?"on":"off")))},description:"",disabled:!Y},e):(0,j.jsx)(c.Wzg,{id:e,required:n.required,name:e,label:n.label,tooltip:n.tooltip,error:n.hasError(L[e],Y),value:L[e]?L[e]:"",onChange:function(n){return F((0,s.Z)((0,s.Z)({},L),{},(0,i.Z)({},e,n.target.value)))},placeholder:n.placeholder,disabled:!Y,type:n.type},e)}(n[0],n[1])})),(0,j.jsxs)(c.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[Y&&A&&(0,j.jsx)(c.zxk,{id:"clear",type:"button",variant:"secondary",onClick:function(){return J(!0)},label:"Reset Configuration"}),(0,j.jsx)(c.zxk,{id:"cancel",type:"button",variant:"regular",onClick:ae,label:"Cancel"}),(0,j.jsx)(c.zxk,{id:"save-key",type:"submit",variant:"callAction",color:"primary",disabled:v||!function(){for(var e=0,t=Object.entries(n);e0?(0,f.jsxs)(o.Fragment,{children:[(0,f.jsx)(s.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,f.jsx)(l.Z,{placeholder:"Start typing to search for a Policy",onChange:function(e){_(e)},value:S,label:t?"":"Assign Policies"})}),(0,f.jsx)(s.wQF,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,r=n.checked,o=(0,i.Z)(w);r?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),h((0,d.ue)(o))},selectedItems:w,isLoading:k,records:I,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,f.jsx)(s.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},21639:function(e,n,t){t.d(n,{KE:function(){return s},LQ:function(){return i},V2:function(){return o},g4:function(){return r}});var i=function(e,n){if(e.accessKey&&n.accessKey){if(e.accessKey>n.accessKey)return 1;if(e.accessKeyn.name?1:e.namen?1:en.policy?1:e.policy.\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\nimport { ConfirmDeleteIcon, ProgressBar } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IResetConfiguration {\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n configurationName,\n closeResetModalAndRefresh,\n resetOpen,\n}: IResetConfiguration) => {\n const dispatch = useAppDispatch();\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api.configs\n .resetConfig(configurationName)\n .then(() => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err) => {\n setResetLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [closeResetModalAndRefresh, configurationName, resetLoading, dispatch]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n
\n \n Please note that this may cause your system to not be accessible\n \n
\n
\n }\n />\n );\n};\n\nexport default ResetConfigurationModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { HelpIconFilled, Box } from \"mds\";\n\ninterface IContent {\n icon: React.ReactNode;\n text: string;\n iconDescription: string;\n}\n\ninterface IAddIDPConfigurationHelpBoxProps {\n helpText: string;\n docLink: string;\n docText: string;\n contents: IContent[];\n}\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};\n\nconst AddIDPConfigurationHelpBox = ({\n helpText,\n docLink,\n docText,\n contents,\n}: IAddIDPConfigurationHelpBoxProps) => {\n return (\n \n \n \n
{helpText}
\n \n \n {contents.map((content, index) => (\n \n {content.icon && (\n \n \n \n )}\n {content.text}\n \n ))}\n \n \n {docText}\n \n \n \n \n );\n};\n\nexport default AddIDPConfigurationHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, CollapseCaret, GroupsMenuIcon, SectionTitle } from \"mds\";\nimport { LdapEntities } from \"api/consoleApi\";\n\ninterface IResultBlock {\n entityName: \"Group\" | \"User\" | \"Policy\";\n results: LdapEntities;\n}\n\ninterface IEntityResultName {\n name: string;\n}\n\ninterface IEntityResultItem {\n blockName: \"Policies\" | \"Groups\" | \"Users\";\n results: string[];\n}\n\nconst EntityResultTitle = ({ name }: IEntityResultName) => {\n return (\n

\n \n {name}\n

\n );\n};\n\nconst EntityResultItems = ({ blockName, results }: IEntityResultItem) => {\n return (\n \n {blockName}:\n
    \n {results.map((res, index) => (\n
  • {res}
  • \n ))}\n
\n
\n );\n};\n\nconst LDAPResultsBlock = ({ entityName, results }: IResultBlock) => {\n let entityLength = 0;\n\n switch (entityName) {\n case \"Group\":\n entityLength = results.groups?.length || 0;\n break;\n case \"Policy\":\n entityLength = results.policies?.length || 0;\n break;\n case \"User\":\n entityLength = results.users?.length || 0;\n break;\n }\n\n return (\n \n }\n actions={\n \n {entityLength} Entit\n {entityLength === 1 ? \"y\" : \"ies\"} Found\n \n }\n >\n {entityName} Mappings\n \n \n {entityName === \"Group\" &&\n results.groups?.map((groupData, index) => {\n return (\n \n \n {groupData.policies && (\n \n )}\n \n );\n })}\n {entityName === \"User\" &&\n results.users?.map((groupData, index) => {\n return (\n \n \n {groupData.policies && (\n \n )}\n \n );\n })}\n {entityName === \"Policy\" &&\n results.policies?.map((groupData, index) => {\n return (\n \n \n {groupData.groups && (\n \n )}\n {groupData.users && (\n \n )}\n \n );\n })}\n \n \n );\n};\n\nexport default LDAPResultsBlock;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport {\n AddIcon,\n Box,\n Button,\n Grid,\n InputBox,\n Loader,\n RemoveIcon,\n SearchIcon,\n SectionTitle,\n TimeIcon,\n} from \"mds\";\nimport { useSelector } from \"react-redux\";\nimport { DateTime } from \"luxon\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { LdapEntities } from \"api/consoleApi\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport LDAPResultsBlock from \"./LDAPResultsBlock\";\nimport PolicySelectors from \"../../Policies/PolicySelectors\";\n\nconst LDAPEntitiesQuery = () => {\n const dispatch = useAppDispatch();\n\n const [loading, setLoading] = useState(false);\n const [users, setUsers] = useState([\"\"]);\n const [groups, setGroups] = useState([\"\"]);\n const [results, setResults] = useState(null);\n\n const selectedPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const searchEntities = () => {\n setLoading(true);\n\n let data: any = {};\n\n let cleanPolicies = selectedPolicies.filter((pol) => pol !== \"\");\n let cleanUsers = users.filter((usr) => usr !== \"\");\n let cleanGroups = groups.filter((grp) => grp !== \"\");\n\n if (cleanPolicies.length > 0) {\n data[\"policies\"] = cleanPolicies;\n }\n\n if (cleanUsers.length > 0) {\n data[\"users\"] = cleanUsers;\n }\n\n if (cleanGroups.length > 0) {\n data[\"groups\"] = cleanGroups;\n }\n\n api.ldapEntities\n .getLdapEntities(data)\n .then((result) => {\n setResults(result.data);\n setLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setLoading(false);\n });\n };\n\n const alterUsersList = (addItem: boolean, index: number) => {\n if (addItem) {\n const alterUsers = [...users, \"\"];\n setUsers(alterUsers);\n\n return;\n }\n\n const filteredUsers = users.filter((_, indx) => indx !== index);\n\n setUsers(filteredUsers);\n };\n\n const alterGroupsList = (addItem: boolean, index: number) => {\n if (addItem) {\n const alterGroups = [...groups, \"\"];\n setGroups(alterGroups);\n\n return;\n }\n\n const filteredGroups = groups.filter((_, indx) => indx !== index);\n\n setGroups(filteredGroups);\n };\n\n return (\n \n \n \n Query Filters\n\n \n \n \n

\n Users\n

\n
\n div > div\": {\n width: \"100%\",\n },\n }}\n >\n {users.map((userDat, index) => {\n return (\n ) => {\n const usersElements = [...users];\n usersElements[index] = e.target.value;\n setUsers(usersElements);\n }}\n overlayIcon={\n users.length === index + 1 ? (\n \n ) : (\n \n )\n }\n overlayAction={() => {\n alterUsersList(users.length === index + 1, index);\n }}\n />\n );\n })}\n
\n
\n \n

\n Groups\n

\n div > div\": {\n width: \"100%\",\n },\n }}\n >\n {groups.map((groupDat, index) => {\n return (\n ) => {\n const groupsElements = [...groups];\n groupsElements[index] = e.target.value;\n setGroups(groupsElements);\n }}\n overlayIcon={\n groups.length === index + 1 ? (\n \n ) : (\n \n )\n }\n overlayAction={() => {\n alterGroupsList(groups.length === index + 1, index);\n }}\n />\n );\n })}\n
\n \n \n

\n Policies\n

\n \n \n
\n \n \n \n \n {loading ? (\n \n \n \n ) : (\n \n \n {results?.timestamp ? (\n \n \n {DateTime.fromISO(results.timestamp).toFormat(\n \"D HH:mm:ss\",\n )}\n \n ) : (\n \"\"\n )}\n \n }\n >\n Query Results\n \n {results ? (\n \n {!results.groups && !results.users && !results.policies && (\n \n

No Results Available

\n
\n )}\n {!!results.groups && (\n \n )}\n {!!results.users && (\n \n )}\n {!!results.policies && (\n \n )}\n \n ) : (\n No query results yet\n )}\n
\n )}\n \n \n \n \n }\n >\n Search\n \n \n \n \n );\n};\n\nexport default LDAPEntitiesQuery;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 {\n Box,\n Button,\n ConsoleIcon,\n EditIcon,\n FormLayout,\n Grid,\n HelpBox,\n InputBox,\n Loader,\n PageLayout,\n RefreshIcon,\n Switch,\n Tabs,\n Tooltip,\n ValuePair,\n WarnIcon,\n ScreenTitle,\n} from \"mds\";\nimport { api } from \"api\";\nimport { ConfigurationKV } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { useAppDispatch } from \"../../../../store\";\nimport {\n setErrorSnackMessage,\n setHelpName,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { ldapFormFields, ldapHelpBoxContents } from \"../utils\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport AddIDPConfigurationHelpBox from \"../AddIDPConfigurationHelpbox\";\nimport LDAPEntitiesQuery from \"./LDAPEntitiesQuery\";\nimport ResetConfigurationModal from \"../../EventDestinations/CustomForms/ResetConfigurationModal\";\nimport HelpMenu from \"../../HelpMenu\";\n\nconst enabledConfigLDAP = [\n \"server_addr\",\n \"lookup_bind_dn\",\n \"user_dn_search_base_dn\",\n \"user_dn_search_filter\",\n];\n\nconst IDPLDAPConfigurationDetails = () => {\n const dispatch = useAppDispatch();\n\n const formFields = ldapFormFields;\n\n const [loading, setLoading] = useState(true);\n const [isEnabled, setIsEnabled] = useState(false);\n const [hasConfiguration, setHasConfiguration] = useState(false);\n const [fields, setFields] = useState({});\n const [overrideFields, setOverrideFields] = useState({});\n const [record, setRecord] = useState(\n undefined,\n );\n const [editMode, setEditMode] = useState(false);\n const [resetOpen, setResetOpen] = useState(false);\n const [curTab, setCurTab] = useState(\"configuration\");\n const [envOverride, setEnvOverride] = useState(false);\n\n const toggleEditMode = () => {\n if (editMode && record) {\n parseFields(record);\n }\n setEditMode(!editMode);\n };\n\n const parseFields = (record: ConfigurationKV[]) => {\n let fields: any = {};\n let ovrFlds: any = {};\n if (record && record.length > 0) {\n const enabled = record.find((item: any) => item.key === \"enable\");\n\n let totalCoincidences = 0;\n let totalOverride = 0;\n\n record.forEach((item: any) => {\n if (item.env_override) {\n fields[item.key] = item.env_override.value;\n ovrFlds[item.key] = item.env_override.name;\n } else {\n fields[item.key] = item.value;\n }\n\n if (\n enabledConfigLDAP.includes(item.key) &&\n ((item.value && item.value !== \"\" && item.value !== \"off\") ||\n (item.env_override &&\n item.env_override.value !== \"\" &&\n item.env_override.value !== \"off\"))\n ) {\n totalCoincidences++;\n }\n\n if (enabledConfigLDAP.includes(item.key) && item.env_override) {\n totalOverride++;\n }\n });\n\n const hasConfig = totalCoincidences !== 0;\n\n if (hasConfig && ((enabled && enabled.value !== \"off\") || !enabled)) {\n setIsEnabled(true);\n } else {\n setIsEnabled(false);\n }\n\n if (totalOverride !== 0) {\n setEnvOverride(true);\n }\n\n setHasConfiguration(hasConfig);\n }\n setOverrideFields(ovrFlds);\n setFields(fields);\n };\n\n useEffect(() => {\n const loadRecord = () => {\n api.configs\n .configInfo(\"identity_ldap\")\n .then((res) => {\n if (res.data.length > 0) {\n setRecord(res.data[0].key_values);\n parseFields(res.data[0].key_values || []);\n }\n setLoading(false);\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n if (loading) {\n loadRecord();\n }\n }, [dispatch, loading]);\n\n const validSave = () => {\n for (const [key, value] of Object.entries(formFields)) {\n if (\n value.required &&\n !(\n fields[key] !== undefined &&\n fields[key] !== null &&\n fields[key] !== \"\"\n )\n ) {\n return false;\n }\n }\n return true;\n };\n\n const saveRecord = () => {\n const keyVals = Object.keys(formFields).map((key) => {\n return {\n key,\n value: fields[key],\n };\n });\n\n api.configs\n .setConfig(\"identity_ldap\", {\n key_values: keyVals,\n })\n .then((res) => {\n setEditMode(false);\n setRecord(keyVals);\n parseFields(keyVals);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n setFields({ ...fields, lookup_bind_password: \"\" });\n\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const closeDeleteModalAndRefresh = async (refresh: boolean) => {\n setResetOpen(false);\n\n if (refresh) {\n dispatch(setServerNeedsRestart(refresh));\n setRecord(undefined);\n setFields({});\n setIsEnabled(false);\n setHasConfiguration(false);\n setEditMode(false);\n }\n };\n\n const toggleConfiguration = (value: boolean) => {\n const payload = {\n key_values: [\n {\n key: \"enable\",\n value: value ? \"on\" : \"off\",\n },\n ],\n };\n\n api.configs\n .setConfig(\"identity_ldap\", payload)\n .then((res) => {\n setIsEnabled(!isEnabled);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const renderFormField = (key: string, value: any) => {\n switch (value.type) {\n case \"toggle\":\n return (\n \n setFields({ ...fields, [key]: e.target.checked ? \"on\" : \"off\" })\n }\n description=\"\"\n disabled={!editMode}\n />\n );\n default:\n return (\n ) =>\n setFields({ ...fields, [key]: e.target.value })\n }\n placeholder={value.placeholder}\n disabled={!editMode}\n type={value.type}\n />\n );\n }\n };\n\n useEffect(() => {\n dispatch(setHelpName(\"LDAP\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {resetOpen && (\n \n )}\n } />\n \n \n \n \n }\n onClick={toggleEditMode}\n label={\"Edit Configuration\"}\n disabled={loading || envOverride}\n />\n \n {hasConfiguration && (\n \n toggleConfiguration(!isEnabled)}\n label={\n isEnabled ? \"Disable LDAP\" : \"Enable LDAP\"\n }\n variant={isEnabled ? \"secondary\" : \"regular\"}\n disabled={envOverride}\n />\n \n )}\n setLoading(true)}\n label={\"Refresh\"}\n icon={}\n />\n
\n ) : null\n }\n />\n
\n {loading ? (\n \n \n \n ) : (\n \n {editMode ? (\n \n \n }\n >\n {editMode && hasConfiguration ? (\n \n \n Lookup Bind Password must be re-entered to\n change LDAP configurations\n \n }\n iconComponent={}\n help={null}\n />\n \n ) : null}\n {Object.entries(formFields).map(([key, value]) =>\n renderFormField(key, value),\n )}\n \n {editMode && hasConfiguration && (\n setResetOpen(true)}\n label={\"Reset Configuration\"}\n />\n )}\n \n \n \n \n \n ) : (\n \n \n \n {hasConfiguration && (\n \n {Object.entries(formFields).map(\n ([key, value]) => {\n if (!value.editOnly) {\n let label: React.ReactNode = value.label;\n let val: React.ReactNode = fields[key]\n ? fields[key]\n : \"\";\n\n if (overrideFields[key]) {\n label = (\n \n {value.label}\n \n \n \n \n \n \n );\n\n val = (\n \n \n {val}\n \n \n );\n }\n return (\n \n );\n }\n return null;\n },\n )}\n \n )}\n \n \n )}\n \n )}\n
\n ),\n },\n {\n tabConfig: {\n id: \"entities\",\n label: \"Entities\",\n disabled: !hasConfiguration || !isEnabled,\n },\n content: (\n \n {hasConfiguration && (\n \n \n \n )}\n \n ),\n },\n ]}\n currentTabOrPath={curTab}\n onTabClick={(newTab) => {\n setCurTab(newTab);\n setEditMode(false);\n }}\n />\n \n \n );\n};\n\nexport default IDPLDAPConfigurationDetails;\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 { LockIcon, LoginIcon } from \"mds\";\n\nexport const ldapHelpBoxContents = [\n {\n text: \"MinIO supports using an Active Directory or LDAP (AD/LDAP) service for external management of user identities. Configuring an external IDentity Provider (IDP) enables Single-Sign On (SSO) workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"MinIO queries the configured Active Directory / LDAP server to verify the credentials specified by the application and optionally return a list of groups in which the user has membership. MinIO supports two modes (Lookup-Bind Mode and Username-Bind Mode) for performing these queries\",\n icon: null,\n iconDescription: \"\",\n },\n {\n text: \"MinIO recommends using Lookup-Bind mode as the preferred method for verifying AD/LDAP credentials. Username-Bind mode is a legacy method retained for backwards compatibility only.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDHelpBoxContents = [\n {\n text: \"MinIO supports using an OpenID Connect (OIDC) compatible IDentity Provider (IDP) such as Okta, KeyCloak, Dex, Google, or Facebook for external management of user identities.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"Configuring an external IDP enables Single-Sign On workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDFormFields = {\n config_url: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Config URL is required\" : \"\";\n },\n label: \"Config URL\",\n tooltip: \"Config URL for identity provider configuration\",\n placeholder:\n \"https://identity-provider-url/.well-known/openid-configuration\",\n type: \"text\",\n editOnly: false,\n },\n client_id: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client ID is required\" : \"\";\n },\n label: \"Client ID\",\n tooltip: \"Identity provider Client ID\",\n placeholder: \"Enter Client ID\",\n type: \"text\",\n editOnly: false,\n },\n client_secret: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client Secret is required\" : \"\";\n },\n label: \"Client Secret\",\n tooltip: \"Identity provider Client Secret\",\n placeholder: \"Enter Client Secret\",\n type: \"password\",\n editOnly: true,\n },\n claim_name: {\n required: false,\n label: \"Claim Name\",\n tooltip: \"Claim from which MinIO will read the policy or role to use\",\n placeholder: \"Enter Claim Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n display_name: {\n required: false,\n label: \"Display Name\",\n tooltip: \"\",\n placeholder: \"Enter Display Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n claim_prefix: {\n required: false,\n label: \"Claim Prefix\",\n tooltip: \"\",\n placeholder: \"Enter Claim Prefix\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n scopes: {\n required: false,\n label: \"Scopes\",\n tooltip: \"\",\n placeholder: \"openid,profile,email\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n redirect_uri: {\n required: false,\n label: \"Redirect URI\",\n tooltip: \"\",\n placeholder: \"https://console-endpoint-url/oauth_callback\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n role_policy: {\n required: false,\n label: \"Role Policy\",\n tooltip: \"\",\n placeholder: \"readonly\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n claim_userinfo: {\n required: false,\n label: \"Claim User Info\",\n tooltip: \"\",\n placeholder: \"Claim User Info\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n redirect_uri_dynamic: {\n required: false,\n label: \"Redirect URI Dynamic\",\n tooltip: \"\",\n placeholder: \"Redirect URI Dynamic\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n};\n\nexport const ldapFormFields = {\n server_insecure: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Insecure\",\n tooltip: \"Disable SSL certificate verification \",\n placeholder: \"myldapserver.com:636\",\n type: \"toggle\",\n editOnly: false,\n },\n server_addr: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Address\",\n tooltip: 'AD/LDAP server address e.g. \"myldapserver.com:636\"',\n placeholder: \"myldapserver.com:636\",\n type: \"text\",\n editOnly: false,\n },\n lookup_bind_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind DN is required\" : \"\";\n },\n label: \"Lookup Bind DN\",\n tooltip:\n \"DN (Distinguished Name) for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"cn=admin,dc=min,dc=io\",\n type: \"text\",\n editOnly: false,\n },\n lookup_bind_password: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind Password is required\" : \"\";\n },\n label: \"Lookup Bind Password\",\n tooltip:\n \"Password for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"admin\",\n type: \"password\",\n editOnly: true,\n },\n user_dn_search_base_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Base DN is required\" : \"\";\n },\n label: \"User DN Search Base\",\n tooltip: \"\",\n placeholder: \"DC=example,DC=net\",\n type: \"text\",\n editOnly: false,\n },\n user_dn_search_filter: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Filter is required\" : \"\";\n },\n label: \"User DN Search Filter\",\n tooltip: \"\",\n placeholder: \"(sAMAcountName=%s)\",\n type: \"text\",\n editOnly: false,\n },\n group_search_base_dn: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Base DN\",\n tooltip: \"\",\n placeholder: \"ou=swengg,dc=min,dc=io\",\n type: \"text\",\n editOnly: false,\n },\n group_search_filter: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Filter\",\n tooltip: \"\",\n placeholder: \"(&(objectclass=groupofnames)(member=%d))\",\n type: \"text\",\n editOnly: false,\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, useCallback, useEffect, useState } from \"react\";\n\nimport { Box, DataTable, Grid, ProgressBar } from \"mds\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"../../../api\";\n\ninterface ISelectPolicyProps {\n selectedPolicy?: string[];\n noTitle?: boolean;\n}\n\nconst PolicySelectors = ({ noTitle = false }: ISelectPolicyProps) => {\n const dispatch = useAppDispatch();\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api.policies\n .listPolicies()\n .then((res) => {\n const policies = res.data.policies ?? [];\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchPolicies();\n }\n }, [loading, fetchPolicies]);\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...currentPolicies]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n // remove empty values\n elements = elements.filter((element) => element !== \"\");\n\n dispatch(setSelectedPolicies(elements));\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter),\n );\n\n return (\n \n {loading && }\n {records.length > 0 ? (\n \n \n {\n setFilter(value);\n }}\n value={filter}\n label={!noTitle ? \"Assign Policies\" : \"\"}\n />\n \n\n \n \n ) : (\n \n No Policies Available\n \n )}\n \n );\n};\n\nexport default PolicySelectors;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["_ref","configurationName","closeResetModalAndRefresh","resetOpen","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","resetLoading","setResetLoading","useEffect","api","configs","resetConfig","then","catch","err","setErrorSnackMessage","errorToHandler","error","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onClose","confirmationContent","_jsxs","Fragment","children","ProgressBar","style","maxWidth","whiteSpace","wordWrap","FeatureItem","icon","description","Box","sx","display","marginRight","height","width","marginBottom","fontSize","fontStyle","color","_ref2","helpText","docLink","docText","contents","flex","border","borderRadius","flexFlow","padding","fontWeight","alignItems","paddingBottom","HelpIconFilled","map","content","index","iconDescription","text","concat","href","target","rel","EntityResultTitle","name","CollapseCaret","transform","EntityResultItems","blockName","results","res","_ref3","_results$groups","_results$policies","_results$users","_results$groups2","_results$users2","_results$policies2","entityName","entityLength","groups","length","policies","users","className","marginTop","SectionTitle","separator","GroupsMenuIcon","actions","h4","borderBottom","margin","fill","groupData","group","user","policy","loading","setLoading","_useState3","_useState4","setUsers","_useState5","_useState6","setGroups","_useState7","_useState8","setResults","selectedPolicies","useSelector","state","createUser","paddingTop","Grid","container","item","sm","md","lg","flexDirection","gap","withBorders","overflowY","minHeight","maxHeight","userDat","InputBox","id","value","onChange","e","usersElements","_toConsumableArray","overlayIcon","AddIcon","RemoveIcon","overlayAction","addItem","alterUsers","filteredUsers","filter","_","indx","alterUsersList","groupDat","groupsElements","alterGroups","filteredGroups","alterGroupsList","PolicySelectors","selectedPolicy","noTitle","textAlign","Loader","timestamp","TimeIcon","DateTime","fromISO","toFormat","backgroundColor","flexGrow","LDAPResultsBlock","xs","justifyContent","Button","type","variant","onClick","data","cleanPolicies","pol","cleanUsers","usr","cleanGroups","grp","ldapEntities","getLdapEntities","result","SearchIcon","enabledConfigLDAP","formFields","ldapFormFields","isEnabled","setIsEnabled","hasConfiguration","setHasConfiguration","fields","setFields","_useState9","_useState10","overrideFields","setOverrideFields","_useState11","undefined","_useState12","record","setRecord","_useState13","_useState14","editMode","setEditMode","_useState15","_useState16","setResetOpen","_useState17","_useState18","curTab","setCurTab","_useState19","_useState20","envOverride","setEnvOverride","toggleEditMode","parseFields","ovrFlds","enabled","find","key","totalCoincidences","totalOverride","forEach","env_override","includes","hasConfig","configInfo","key_values","closeDeleteModalAndRefresh","_asyncToGenerator","_regeneratorRuntime","mark","_callee","refresh","wrap","_context","prev","next","setServerNeedsRestart","stop","_x","apply","arguments","setHelpName","ResetConfigurationModal","PageHeaderWrapper","label","HelpMenu","PageLayout","Tabs","horizontal","options","tabConfig","ScreenTitle","Tooltip","tooltip","EditIcon","disabled","payload","setConfig","restart","setSnackBarMessage","toggleConfiguration","RefreshIcon","FormLayout","helpBox","AddIDPConfigurationHelpBox","ldapHelpBoxContents","HelpBox","iconComponent","WarnIcon","help","Object","entries","Switch","indicatorLabels","checked","_objectSpread","_defineProperty","required","hasError","placeholder","renderFormField","_i","_Object$entries","_Object$entries$_i","validSave","keyVals","keys","lookup_bind_password","gridTemplateColumns","gridAutoFlow","ValuePair","_ref5","_ref6","editOnly","val","placement","ConsoleIcon","LDAPEntitiesQuery","currentTabOrPath","onTabClick","newTab","LoginIcon","openIDHelpBoxContents","LockIcon","openIDFormFields","config_url","s","client_id","client_secret","claim_name","display_name","claim_prefix","scopes","redirect_uri","role_policy","claim_userinfo","redirect_uri_dynamic","server_insecure","server_addr","lookup_bind_dn","user_dn_search_base_dn","user_dn_search_filter","group_search_base_dn","group_search_filter","_ref$noTitle","records","setRecords","setFilter","currentPolicies","fetchPolicies","useCallback","listPolicies","_res$data$policies","sort","policySort","setModalErrorSnackMessage","filteredRecords","elementItem","SearchBox","DataTable","columns","elementKey","onSelect","targetD","elements","push","element","setSelectedPolicies","selectedItems","idField","customPaperHeight","usersSort","a","b","accessKey","stringSort","policyDetailsSort"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1690.8063e908.chunk.js b/portal-ui/build/static/js/1690.8063e908.chunk.js new file mode 100644 index 000000000..822b2ed04 --- /dev/null +++ b/portal-ui/build/static/js/1690.8063e908.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1690],{90767:(e,i,t)=>{t.d(i,{Z:()=>u});var r=t(72791),n=t(31776),s=t(82342),l=t(23508),o=t(29945),a=t(87995),c=t(44690),d=t(80184);const u=e=>{let{configurationName:i,closeResetModalAndRefresh:t,resetOpen:u}=e;const p=(0,c.TL)(),[x,h]=(0,r.useState)(!1);(0,r.useEffect)((()=>{x&&n.h.configs.resetConfig(i).then((()=>{h(!1),t(!0)})).catch((e=>{h(!1),p((0,a.Ih)((0,s.g)(e.error)))}))}),[t,i,x,p]);return(0,d.jsx)(l.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:u,titleIcon:(0,d.jsx)(o.NvT,{}),isLoading:x,onConfirm:()=>{h(!0)},onClose:()=>{t(!1)},confirmationContent:(0,d.jsxs)(r.Fragment,{children:[x&&(0,d.jsx)(o.kod,{}),(0,d.jsxs)(r.Fragment,{children:["Are you sure you want to restore these configurations to default values?",(0,d.jsx)("br",{}),(0,d.jsx)("b",{style:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"},children:"Please note that this may cause your system to not be accessible"})]})]})})}},37099:(e,i,t)=>{t.d(i,{Z:()=>o});var r=t(72791),n=t(29945),s=t(80184);const l=e=>{let{icon:i,description:t}=e;return(0,s.jsxs)(n.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[i," ",(0,s.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})},o=e=>{let{helpText:i,docLink:t,docText:o,contents:a}=e;return(0,s.jsxs)(n.xuv,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px"},children:[(0,s.jsxs)(n.xuv,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,s.jsx)(n.M9A,{}),(0,s.jsx)("div",{children:i})]}),(0,s.jsxs)(n.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:[a.map(((e,i)=>(0,s.jsxs)(r.Fragment,{children:[e.icon&&(0,s.jsx)(n.xuv,{sx:{paddingBottom:"20px"},children:(0,s.jsx)(l,{icon:e.icon,description:e.iconDescription})}),(0,s.jsx)(n.xuv,{sx:{paddingBottom:"20px"},children:e.text})]},"feature-item-".concat(i)))),(0,s.jsx)(n.xuv,{sx:{paddingBottom:"20px"},children:(0,s.jsx)("a",{href:t,target:"_blank",rel:"noopener",children:o})})]})]})}},11690:(e,i,t)=>{t.r(i),t.d(i,{default:()=>C});var r=t(72791),n=t(29945),s=t(31776),l=t(82342),o=t(44690),a=t(87995),c=t(79979),d=t(79844),u=t(37099),p=t(78687),x=t(99779),h=t(80184);const g=e=>{let{name:i}=e;return(0,h.jsxs)("h4",{children:[(0,h.jsx)(n.ZyT,{style:{transform:"rotateZ(90deg)"}}),i]})},m=e=>{let{blockName:i,results:t}=e;return(0,h.jsxs)(r.Fragment,{children:[(0,h.jsxs)("strong",{children:[i,":"]}),(0,h.jsx)("ul",{children:t.map(((e,t)=>(0,h.jsx)("li",{children:e},"policy-".concat(i,"-").concat(t))))})]})},f=e=>{var i,t,s,l,o,a;let{entityName:c,results:d}=e,u=0;switch(c){case"Group":u=(null===(i=d.groups)||void 0===i?void 0:i.length)||0;break;case"Policy":u=(null===(t=d.policies)||void 0===t?void 0:t.length)||0;break;case"User":u=(null===(s=d.users)||void 0===s?void 0:s.length)||0}return(0,h.jsxs)(n.xuv,{className:"resultElement",sx:{marginTop:50,"&:first-of-type":{marginTop:0}},children:[(0,h.jsxs)(n.NZf,{separator:!0,sx:{fontSize:12},icon:(0,h.jsx)(n.anK,{style:{width:17,height:17}}),actions:(0,h.jsxs)(n.xuv,{sx:{fontSize:14},children:[(0,h.jsx)("strong",{children:u})," Entit",1===u?"y":"ies"," Found"]}),children:[c," Mappings"]}),(0,h.jsxs)(n.xuv,{className:"resultsList",sx:{h4:{borderBottom:"#e2e2e2 1px solid",padding:"12px 0",margin:0,marginBottom:15,display:"flex",alignItems:"center","& svg":{marginRight:10,fill:"#3C77A7"}}},children:["Group"===c&&(null===(l=d.groups)||void 0===l?void 0:l.map(((e,i)=>(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(g,{name:e.group||""}),e.policies&&(0,h.jsx)(m,{blockName:"Policies",results:e.policies})]},"policy-res-".concat(i))))),"User"===c&&(null===(o=d.users)||void 0===o?void 0:o.map(((e,i)=>(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(g,{name:e.user||""}),e.policies&&(0,h.jsx)(m,{blockName:"Policies",results:e.policies})]},"users-res-".concat(i))))),"Policy"===c&&(null===(a=d.policies)||void 0===a?void 0:a.map(((e,i)=>(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(g,{name:e.policy||""}),e.groups&&(0,h.jsx)(m,{blockName:"Groups",results:e.groups}),e.users&&(0,h.jsx)(m,{blockName:"Users",results:e.users})]},"policy-map-".concat(i)))))]})]})};var y=t(58400);const v=()=>{const e=(0,o.TL)(),[i,t]=(0,r.useState)(!1),[c,d]=(0,r.useState)([""]),[u,g]=(0,r.useState)([""]),[m,v]=(0,r.useState)(null),j=(0,p.v9)((e=>e.createUser.selectedPolicies));return(0,h.jsxs)(n.xuv,{sx:{marginTop:15,paddingTop:0},children:[(0,h.jsxs)(n.rjZ,{container:!0,sx:{marginTop:5},children:[(0,h.jsxs)(n.rjZ,{item:!0,sm:12,md:6,lg:5,sx:{padding:10,paddingTop:0},children:[(0,h.jsx)(n.NZf,{children:"Query Filters"}),(0,h.jsxs)(n.xuv,{sx:{padding:"0 10px",display:"flex",flexDirection:"column",gap:40},children:[(0,h.jsxs)(n.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,h.jsx)(n.xuv,{sx:{display:"flex"},children:(0,h.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Users"})}),(0,h.jsx)(n.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:250,"& > div > div":{width:"100%"}},children:c.map(((e,i)=>(0,h.jsx)(n.Wzg,{id:"search-user-".concat(i),value:e,onChange:e=>{const t=[...c];t[i]=e.target.value,d(t)},overlayIcon:c.length===i+1?(0,h.jsx)(n.dtP,{}):(0,h.jsx)(n.HFL,{}),overlayAction:()=>{((e,i)=>{if(e){const e=[...c,""];return void d(e)}const t=c.filter(((e,t)=>t!==i));d(t)})(c.length===i+1,i)}},"search-user-".concat(i))))})]}),(0,h.jsxs)(n.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,h.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Groups"}),(0,h.jsx)(n.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:"calc(100vh - 340px)","& > div > div":{width:"100%"}},children:u.map(((e,i)=>(0,h.jsx)(n.Wzg,{id:"search-group-".concat(i),value:e,onChange:e=>{const t=[...u];t[i]=e.target.value,g(t)},overlayIcon:u.length===i+1?(0,h.jsx)(n.dtP,{}):(0,h.jsx)(n.HFL,{}),overlayAction:()=>{((e,i)=>{if(e){const e=[...u,""];return void g(e)}const t=u.filter(((e,t)=>t!==i));g(t)})(u.length===i+1,i)}},"search-group-".concat(i))))})]}),(0,h.jsxs)(n.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,h.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Policies"}),(0,h.jsx)(n.xuv,{sx:{minHeight:265,maxHeight:"calc(100vh - 740px)"},children:(0,h.jsx)(y.Z,{selectedPolicy:j,noTitle:!0})})]})]})]}),(0,h.jsx)(n.rjZ,{item:!0,sm:12,md:6,lg:7,sx:{padding:10,paddingTop:0,display:"flex",flexDirection:"column"},children:i?(0,h.jsx)(n.xuv,{sx:{textAlign:"center"},children:(0,h.jsx)(n.aNw,{})}):(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(n.NZf,{actions:(0,h.jsx)(n.xuv,{sx:{display:"flex",flexDirection:"row",alignItems:"center",fontSize:14},children:null!==m&&void 0!==m&&m.timestamp?(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(n.wZd,{style:{width:14,height:14,marginRight:5,fill:"#BEBFBF"}}),x.ou.fromISO(m.timestamp).toFormat("D HH:mm:ss")]}):""}),children:"Query Results"}),m?(0,h.jsxs)(n.xuv,{sx:{backgroundColor:"#FBFAFA",padding:"8px 22px",flexGrow:1,overflowY:"auto"},children:[!m.groups&&!m.users&&!m.policies&&(0,h.jsx)(n.xuv,{sx:{textAlign:"center"},children:(0,h.jsx)("h4",{children:"No Results Available"})}),!!m.groups&&(0,h.jsx)(f,{results:m,entityName:"Group"}),!!m.users&&(0,h.jsx)(f,{results:m,entityName:"User"}),!!m.policies&&(0,h.jsx)(f,{results:m,entityName:"Policy"})]}):(0,h.jsx)(n.xuv,{sx:{textAlign:"center"},children:"No query results yet"})]})})]}),(0,h.jsx)(n.rjZ,{container:!0,children:(0,h.jsx)(n.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start",marginTop:45,padding:"0 20px"},children:(0,h.jsx)(n.zxk,{id:"search-entity",type:"button",variant:"callAction",onClick:()=>{t(!0);let i={},r=j.filter((e=>""!==e)),n=c.filter((e=>""!==e)),o=u.filter((e=>""!==e));r.length>0&&(i.policies=r),n.length>0&&(i.users=n),o.length>0&&(i.groups=o),s.h.ldapEntities.getLdapEntities(i).then((e=>{v(e.data),t(!1)})).catch((i=>{e((0,a.Ih)((0,l.g)(i.error))),t(!1)}))},icon:(0,h.jsx)(n.W1M,{}),children:"Search"})})})]})};var j=t(90767),b=t(99670);const k=["server_addr","lookup_bind_dn","user_dn_search_base_dn","user_dn_search_filter"],C=()=>{const e=(0,o.TL)(),i=c.iR,[t,p]=(0,r.useState)(!0),[x,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)(!1),[y,C]=(0,r.useState)({}),[D,S]=(0,r.useState)({}),[_,w]=(0,r.useState)(void 0),[P,I]=(0,r.useState)(!1),[A,N]=(0,r.useState)(!1),[E,O]=(0,r.useState)("configuration"),[L,F]=(0,r.useState)(!1),q=()=>{P&&_&&B(_),I(!P)},B=e=>{let i={},t={};if(e&&e.length>0){const r=e.find((e=>"enable"===e.key));let n=0,s=0;e.forEach((e=>{e.env_override?(i[e.key]=e.env_override.value,t[e.key]=e.env_override.name):i[e.key]=e.value,k.includes(e.key)&&(e.value&&""!==e.value&&"off"!==e.value||e.env_override&&""!==e.env_override.value&&"off"!==e.env_override.value)&&n++,k.includes(e.key)&&e.env_override&&s++}));const l=0!==n;l&&(r&&"off"!==r.value||!r)?g(!0):g(!1),0!==s&&F(!0),f(l)}S(t),C(i)};(0,r.useEffect)((()=>{t&&s.h.configs.configInfo("identity_ldap").then((e=>{e.data.length>0&&(w(e.data[0].key_values),B(e.data[0].key_values||[])),p(!1)})).catch((i=>{p(!1),e((0,a.Ih)((0,l.g)(i.error)))}))}),[e,t]);return(0,r.useEffect)((()=>{e((0,a.Sc)("LDAP"))}),[]),(0,h.jsxs)(n.rjZ,{item:!0,xs:12,children:[A&&(0,h.jsx)(j.Z,{configurationName:"identity_ldap",closeResetModalAndRefresh:async i=>{N(!1),i&&(e((0,a.cN)(i)),w(void 0),C({}),g(!1),f(!1),I(!1))},resetOpen:A}),(0,h.jsx)(d.Z,{label:"LDAP",actions:(0,h.jsx)(b.Z,{})}),(0,h.jsx)(n.Xgh,{variant:"constrained",children:(0,h.jsx)(n.mQc,{horizontal:!0,options:[{tabConfig:{id:"configuration",label:"Configuration"},content:(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(n.UHn,{icon:null,title:P?"Edit Configuration":"",actions:P?null:(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(n.ua7,{tooltip:L?"Configuration cannot be edited in this module as LDAP environment variables are set for this MinIO instance.":"",children:(0,h.jsx)(n.zxk,{id:"edit",type:"button",variant:"callAction",icon:(0,h.jsx)(n.dY8,{}),onClick:q,label:"Edit Configuration",disabled:t||L})}),m&&(0,h.jsx)(n.ua7,{tooltip:L?"Configuration cannot be disabled / enabled in this module as LDAP environment variables are set for this MinIO instance.":"",children:(0,h.jsx)(n.zxk,{id:"is-configuration-enabled",onClick:()=>(i=>{const t={key_values:[{key:"enable",value:i?"on":"off"}]};s.h.configs.setConfig("identity_ldap",t).then((i=>{g(!x),e((0,a.cN)(i.data.restart||!1)),i.data.restart||e((0,a.y1)("Configuration saved successfully"))})).catch((i=>{e((0,a.Ih)((0,l.g)(i.error)))}))})(!x),label:x?"Disable LDAP":"Enable LDAP",variant:x?"secondary":"regular",disabled:L})}),(0,h.jsx)(n.zxk,{id:"refresh-idp-config",onClick:()=>p(!0),label:"Refresh",icon:(0,h.jsx)(n.DuK,{})})]})}),(0,h.jsx)("br",{}),t?(0,h.jsx)(n.xuv,{sx:{display:"flex",justifyContent:"center",marginTop:10},children:(0,h.jsx)(n.aNw,{})}):(0,h.jsx)(r.Fragment,{children:P?(0,h.jsx)(r.Fragment,{children:(0,h.jsxs)(n.ltY,{helpBox:(0,h.jsx)(u.Z,{helpText:"Learn more about LDAP Configurations",contents:c.Si,docLink:"https://min.io/docs/minio/linux/operations/external-iam.html?ref=con#minio-external-iam-ad-ldap",docText:"Learn more about LDAP Configurations"}),children:[P&&m?(0,h.jsx)(n.xuv,{sx:{marginBottom:15},children:(0,h.jsx)(n.KfX,{title:(0,h.jsx)(n.xuv,{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flexGrow:1},children:"Lookup Bind Password must be re-entered to change LDAP configurations"}),iconComponent:(0,h.jsx)(n.e6P,{}),help:null})}):null,Object.entries(i).map((e=>{let[i,t]=e;return((e,i)=>"toggle"===i.type?(0,h.jsx)(n.rsf,{indicatorLabels:["Enabled","Disabled"],checked:"on"===y[e],value:"is-field-enabled",id:"is-field-enabled",name:"is-field-enabled",label:i.label,tooltip:i.tooltip,onChange:i=>C({...y,[e]:i.target.checked?"on":"off"}),description:"",disabled:!P},e):(0,h.jsx)(n.Wzg,{id:e,required:i.required,name:e,label:i.label,tooltip:i.tooltip,error:i.hasError(y[e],P),value:y[e]?y[e]:"",onChange:i=>C({...y,[e]:i.target.value}),placeholder:i.placeholder,disabled:!P,type:i.type},e))(i,t)})),(0,h.jsxs)(n.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[P&&m&&(0,h.jsx)(n.zxk,{id:"clear",type:"button",variant:"secondary",onClick:()=>N(!0),label:"Reset Configuration"}),(0,h.jsx)(n.zxk,{id:"cancel",type:"button",variant:"regular",onClick:q,label:"Cancel"}),(0,h.jsx)(n.zxk,{id:"save-key",type:"submit",variant:"callAction",color:"primary",disabled:t||!(()=>{for(const[e,t]of Object.entries(i))if(t.required&&(void 0===y[e]||null===y[e]||""===y[e]))return!1;return!0})(),label:"Save",onClick:()=>{const t=Object.keys(i).map((e=>({key:e,value:y[e]})));s.h.configs.setConfig("identity_ldap",{key_values:t}).then((i=>{I(!1),w(t),B(t),e((0,a.cN)(i.data.restart||!1)),C({...y,lookup_bind_password:""}),i.data.restart||e((0,a.y1)("Configuration saved successfully"))})).catch((i=>{e((0,a.Ih)((0,l.g)(i.error)))}))}})]})]})}):(0,h.jsx)(r.Fragment,{children:(0,h.jsxs)(n.xuv,{sx:{display:"grid",gridTemplateColumns:"1fr",gridAutoFlow:"dense",gap:3,padding:"15px",border:"1px solid #eaeaea","@media (min-width: 576px)":{gridTemplateColumns:"2fr 1fr",gridAutoFlow:"row"}},children:[(0,h.jsx)(n.kKA,{label:"LDAP Enabled",value:x?"Yes":"No"}),m&&(0,h.jsx)(r.Fragment,{children:Object.entries(i).map((e=>{let[i,t]=e;if(!t.editOnly){let e=t.label,r=y[i]?y[i]:"";return D[i]&&(e=(0,h.jsxs)(n.xuv,{sx:{display:"flex",alignItems:"center",gap:5,"& .min-icon":{height:20,width:20},"& span":{height:20,display:"flex",alignItems:"center"}},children:[(0,h.jsx)("span",{children:t.label}),(0,h.jsx)(n.ua7,{tooltip:"This value is set from the ".concat(D[i]," environment variable"),placement:"right",children:(0,h.jsx)("span",{className:"muted",children:(0,h.jsx)(n.zD0,{})})})]}),r=(0,h.jsx)("i",{children:(0,h.jsx)("span",{className:"muted",children:r})})),(0,h.jsx)(n.kKA,{label:e,value:r},i)}return null}))})]})})})]})},{tabConfig:{id:"entities",label:"Entities",disabled:!m||!x},content:(0,h.jsx)(r.Fragment,{children:m&&(0,h.jsx)(n.xuv,{children:(0,h.jsx)(v,{})})})}],currentTabOrPath:E,onTabClick:e=>{O(e),I(!1)}})})]})}},79979:(e,i,t)=>{t.d(i,{DY:()=>o,Si:()=>s,f4:()=>l,iR:()=>a});var r=t(29945),n=t(80184);const s=[{text:"MinIO supports using an Active Directory or LDAP (AD/LDAP) service for external management of user identities. Configuring an external IDentity Provider (IDP) enables Single-Sign On (SSO) workflows, where applications authenticate against the external IDP before accessing MinIO.",icon:(0,n.jsx)(r.wXn,{}),iconDescription:"Create Configurations"},{text:"MinIO queries the configured Active Directory / LDAP server to verify the credentials specified by the application and optionally return a list of groups in which the user has membership. MinIO supports two modes (Lookup-Bind Mode and Username-Bind Mode) for performing these queries",icon:null,iconDescription:""},{text:"MinIO recommends using Lookup-Bind mode as the preferred method for verifying AD/LDAP credentials. Username-Bind mode is a legacy method retained for backwards compatibility only.",icon:null,iconDescription:""}],l=[{text:"MinIO supports using an OpenID Connect (OIDC) compatible IDentity Provider (IDP) such as Okta, KeyCloak, Dex, Google, or Facebook for external management of user identities.",icon:(0,n.jsx)(r.mBM,{}),iconDescription:"Create Configurations"},{text:"Configuring an external IDP enables Single-Sign On workflows, where applications authenticate against the external IDP before accessing MinIO.",icon:null,iconDescription:""}],o={config_url:{required:!0,hasError:(e,i)=>!e&&i?"Config URL is required":"",label:"Config URL",tooltip:"Config URL for identity provider configuration",placeholder:"https://identity-provider-url/.well-known/openid-configuration",type:"text",editOnly:!1},client_id:{required:!0,hasError:(e,i)=>!e&&i?"Client ID is required":"",label:"Client ID",tooltip:"Identity provider Client ID",placeholder:"Enter Client ID",type:"text",editOnly:!1},client_secret:{required:!0,hasError:(e,i)=>!e&&i?"Client Secret is required":"",label:"Client Secret",tooltip:"Identity provider Client Secret",placeholder:"Enter Client Secret",type:"password",editOnly:!0},claim_name:{required:!1,label:"Claim Name",tooltip:"Claim from which MinIO will read the policy or role to use",placeholder:"Enter Claim Name",type:"text",hasError:(e,i)=>"",editOnly:!1},display_name:{required:!1,label:"Display Name",tooltip:"",placeholder:"Enter Display Name",type:"text",hasError:(e,i)=>"",editOnly:!1},claim_prefix:{required:!1,label:"Claim Prefix",tooltip:"",placeholder:"Enter Claim Prefix",type:"text",hasError:(e,i)=>"",editOnly:!1},scopes:{required:!1,label:"Scopes",tooltip:"",placeholder:"openid,profile,email",type:"text",hasError:(e,i)=>"",editOnly:!1},redirect_uri:{required:!1,label:"Redirect URI",tooltip:"",placeholder:"https://console-endpoint-url/oauth_callback",type:"text",hasError:(e,i)=>"",editOnly:!1},role_policy:{required:!1,label:"Role Policy",tooltip:"",placeholder:"readonly",type:"text",hasError:(e,i)=>"",editOnly:!1},claim_userinfo:{required:!1,label:"Claim User Info",tooltip:"",placeholder:"Claim User Info",type:"toggle",hasError:(e,i)=>"",editOnly:!1},redirect_uri_dynamic:{required:!1,label:"Redirect URI Dynamic",tooltip:"",placeholder:"Redirect URI Dynamic",type:"toggle",hasError:(e,i)=>"",editOnly:!1}},a={server_insecure:{required:!0,hasError:(e,i)=>!e&&i?"Server Address is required":"",label:"Server Insecure",tooltip:"Disable SSL certificate verification ",placeholder:"myldapserver.com:636",type:"toggle",editOnly:!1},server_addr:{required:!0,hasError:(e,i)=>!e&&i?"Server Address is required":"",label:"Server Address",tooltip:'AD/LDAP server address e.g. "myldapserver.com:636"',placeholder:"myldapserver.com:636",type:"text",editOnly:!1},lookup_bind_dn:{required:!0,hasError:(e,i)=>!e&&i?"Lookup Bind DN is required":"",label:"Lookup Bind DN",tooltip:"DN (Distinguished Name) for LDAP read-only service account used to perform DN and group lookups",placeholder:"cn=admin,dc=min,dc=io",type:"text",editOnly:!1},lookup_bind_password:{required:!0,hasError:(e,i)=>!e&&i?"Lookup Bind Password is required":"",label:"Lookup Bind Password",tooltip:"Password for LDAP read-only service account used to perform DN and group lookups",placeholder:"admin",type:"password",editOnly:!0},user_dn_search_base_dn:{required:!0,hasError:(e,i)=>!e&&i?"User DN Search Base DN is required":"",label:"User DN Search Base",tooltip:"",placeholder:"DC=example,DC=net",type:"text",editOnly:!1},user_dn_search_filter:{required:!0,hasError:(e,i)=>!e&&i?"User DN Search Filter is required":"",label:"User DN Search Filter",tooltip:"",placeholder:"(sAMAcountName=%s)",type:"text",editOnly:!1},group_search_base_dn:{required:!1,hasError:(e,i)=>"",label:"Group Search Base DN",tooltip:"",placeholder:"ou=swengg,dc=min,dc=io",type:"text",editOnly:!1},group_search_filter:{required:!1,hasError:(e,i)=>"",label:"Group Search Filter",tooltip:"",placeholder:"(&(objectclass=groupofnames)(member=%d))",type:"text",editOnly:!1}}},58400:(e,i,t)=>{t.d(i,{Z:()=>x});var r=t(72791),n=t(29945),s=t(21639),l=t(59114),o=t(87995),a=t(44690),c=t(74616),d=t(78687),u=t(31776),p=t(80184);const x=e=>{let{noTitle:i=!1}=e;const t=(0,a.TL)(),[x,h]=(0,r.useState)([]),[g,m]=(0,r.useState)(!1),[f,y]=(0,r.useState)(""),v=(0,d.v9)((e=>e.createUser.selectedPolicies)),j=(0,r.useCallback)((()=>{m(!0),u.h.policies.listPolicies().then((e=>{var i;const t=null!==(i=e.data.policies)&&void 0!==i?i:[];m(!1),h(t.sort(s.g4))})).catch((e=>{m(!1),t((0,o.zb)(e))}))}),[t]);(0,r.useEffect)((()=>{m(!0)}),[]),(0,r.useEffect)((()=>{g&&j()}),[g,j]);const b=x.filter((e=>e.name.includes(f)));return(0,p.jsxs)(n.rjZ,{item:!0,xs:12,className:"inputItem",children:[g&&(0,p.jsx)(n.kod,{}),x.length>0?(0,p.jsxs)(r.Fragment,{children:[(0,p.jsx)(n.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,p.jsx)(l.Z,{placeholder:"Start typing to search for a Policy",onChange:e=>{y(e)},value:f,label:i?"":"Assign Policies"})}),(0,p.jsx)(n.wQF,{columns:[{label:"Policy",elementKey:"name"}],onSelect:e=>{const i=e.target,r=i.value,n=i.checked;let s=[...v];n?s.push(r):s=s.filter((e=>e!==r)),s=s.filter((e=>""!==e)),t((0,c.ue)(s))},selectedItems:v,isLoading:g,records:b,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,p.jsx)(n.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},21639:(e,i,t)=>{t.d(i,{KE:()=>l,LQ:()=>r,V2:()=>s,g4:()=>n});const r=(e,i)=>{if(e.accessKey&&i.accessKey){if(e.accessKey>i.accessKey)return 1;if(e.accessKeye.name>i.name?1:e.namee>i?1:ee.policy>i.policy?1:e.policy.\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\nimport { ConfirmDeleteIcon, ProgressBar } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IResetConfiguration {\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n configurationName,\n closeResetModalAndRefresh,\n resetOpen,\n}: IResetConfiguration) => {\n const dispatch = useAppDispatch();\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api.configs\n .resetConfig(configurationName)\n .then(() => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err) => {\n setResetLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [closeResetModalAndRefresh, configurationName, resetLoading, dispatch]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n
\n \n Please note that this may cause your system to not be accessible\n \n
\n
\n }\n />\n );\n};\n\nexport default ResetConfigurationModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { HelpIconFilled, Box } from \"mds\";\n\ninterface IContent {\n icon: React.ReactNode;\n text: string;\n iconDescription: string;\n}\n\ninterface IAddIDPConfigurationHelpBoxProps {\n helpText: string;\n docLink: string;\n docText: string;\n contents: IContent[];\n}\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};\n\nconst AddIDPConfigurationHelpBox = ({\n helpText,\n docLink,\n docText,\n contents,\n}: IAddIDPConfigurationHelpBoxProps) => {\n return (\n \n \n \n
{helpText}
\n \n \n {contents.map((content, index) => (\n \n {content.icon && (\n \n \n \n )}\n {content.text}\n \n ))}\n \n \n {docText}\n \n \n \n \n );\n};\n\nexport default AddIDPConfigurationHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, CollapseCaret, GroupsMenuIcon, SectionTitle } from \"mds\";\nimport { LdapEntities } from \"api/consoleApi\";\n\ninterface IResultBlock {\n entityName: \"Group\" | \"User\" | \"Policy\";\n results: LdapEntities;\n}\n\ninterface IEntityResultName {\n name: string;\n}\n\ninterface IEntityResultItem {\n blockName: \"Policies\" | \"Groups\" | \"Users\";\n results: string[];\n}\n\nconst EntityResultTitle = ({ name }: IEntityResultName) => {\n return (\n

\n \n {name}\n

\n );\n};\n\nconst EntityResultItems = ({ blockName, results }: IEntityResultItem) => {\n return (\n \n {blockName}:\n
    \n {results.map((res, index) => (\n
  • {res}
  • \n ))}\n
\n
\n );\n};\n\nconst LDAPResultsBlock = ({ entityName, results }: IResultBlock) => {\n let entityLength = 0;\n\n switch (entityName) {\n case \"Group\":\n entityLength = results.groups?.length || 0;\n break;\n case \"Policy\":\n entityLength = results.policies?.length || 0;\n break;\n case \"User\":\n entityLength = results.users?.length || 0;\n break;\n }\n\n return (\n \n }\n actions={\n \n {entityLength} Entit\n {entityLength === 1 ? \"y\" : \"ies\"} Found\n \n }\n >\n {entityName} Mappings\n \n \n {entityName === \"Group\" &&\n results.groups?.map((groupData, index) => {\n return (\n \n \n {groupData.policies && (\n \n )}\n \n );\n })}\n {entityName === \"User\" &&\n results.users?.map((groupData, index) => {\n return (\n \n \n {groupData.policies && (\n \n )}\n \n );\n })}\n {entityName === \"Policy\" &&\n results.policies?.map((groupData, index) => {\n return (\n \n \n {groupData.groups && (\n \n )}\n {groupData.users && (\n \n )}\n \n );\n })}\n \n \n );\n};\n\nexport default LDAPResultsBlock;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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, useState } from \"react\";\nimport {\n AddIcon,\n Box,\n Button,\n Grid,\n InputBox,\n Loader,\n RemoveIcon,\n SearchIcon,\n SectionTitle,\n TimeIcon,\n} from \"mds\";\nimport { useSelector } from \"react-redux\";\nimport { DateTime } from \"luxon\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { LdapEntities } from \"api/consoleApi\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport LDAPResultsBlock from \"./LDAPResultsBlock\";\nimport PolicySelectors from \"../../Policies/PolicySelectors\";\n\nconst LDAPEntitiesQuery = () => {\n const dispatch = useAppDispatch();\n\n const [loading, setLoading] = useState(false);\n const [users, setUsers] = useState([\"\"]);\n const [groups, setGroups] = useState([\"\"]);\n const [results, setResults] = useState(null);\n\n const selectedPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const searchEntities = () => {\n setLoading(true);\n\n let data: any = {};\n\n let cleanPolicies = selectedPolicies.filter((pol) => pol !== \"\");\n let cleanUsers = users.filter((usr) => usr !== \"\");\n let cleanGroups = groups.filter((grp) => grp !== \"\");\n\n if (cleanPolicies.length > 0) {\n data[\"policies\"] = cleanPolicies;\n }\n\n if (cleanUsers.length > 0) {\n data[\"users\"] = cleanUsers;\n }\n\n if (cleanGroups.length > 0) {\n data[\"groups\"] = cleanGroups;\n }\n\n api.ldapEntities\n .getLdapEntities(data)\n .then((result) => {\n setResults(result.data);\n setLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setLoading(false);\n });\n };\n\n const alterUsersList = (addItem: boolean, index: number) => {\n if (addItem) {\n const alterUsers = [...users, \"\"];\n setUsers(alterUsers);\n\n return;\n }\n\n const filteredUsers = users.filter((_, indx) => indx !== index);\n\n setUsers(filteredUsers);\n };\n\n const alterGroupsList = (addItem: boolean, index: number) => {\n if (addItem) {\n const alterGroups = [...groups, \"\"];\n setGroups(alterGroups);\n\n return;\n }\n\n const filteredGroups = groups.filter((_, indx) => indx !== index);\n\n setGroups(filteredGroups);\n };\n\n return (\n \n \n \n Query Filters\n\n \n \n \n

\n Users\n

\n
\n div > div\": {\n width: \"100%\",\n },\n }}\n >\n {users.map((userDat, index) => {\n return (\n ) => {\n const usersElements = [...users];\n usersElements[index] = e.target.value;\n setUsers(usersElements);\n }}\n overlayIcon={\n users.length === index + 1 ? (\n \n ) : (\n \n )\n }\n overlayAction={() => {\n alterUsersList(users.length === index + 1, index);\n }}\n />\n );\n })}\n
\n
\n \n

\n Groups\n

\n div > div\": {\n width: \"100%\",\n },\n }}\n >\n {groups.map((groupDat, index) => {\n return (\n ) => {\n const groupsElements = [...groups];\n groupsElements[index] = e.target.value;\n setGroups(groupsElements);\n }}\n overlayIcon={\n groups.length === index + 1 ? (\n \n ) : (\n \n )\n }\n overlayAction={() => {\n alterGroupsList(groups.length === index + 1, index);\n }}\n />\n );\n })}\n
\n \n \n

\n Policies\n

\n \n \n
\n \n \n \n \n {loading ? (\n \n \n \n ) : (\n \n \n {results?.timestamp ? (\n \n \n {DateTime.fromISO(results.timestamp).toFormat(\n \"D HH:mm:ss\",\n )}\n \n ) : (\n \"\"\n )}\n \n }\n >\n Query Results\n \n {results ? (\n \n {!results.groups && !results.users && !results.policies && (\n \n

No Results Available

\n
\n )}\n {!!results.groups && (\n \n )}\n {!!results.users && (\n \n )}\n {!!results.policies && (\n \n )}\n \n ) : (\n No query results yet\n )}\n
\n )}\n \n \n \n \n }\n >\n Search\n \n \n \n \n );\n};\n\nexport default LDAPEntitiesQuery;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 {\n Box,\n Button,\n ConsoleIcon,\n EditIcon,\n FormLayout,\n Grid,\n HelpBox,\n InputBox,\n Loader,\n PageLayout,\n RefreshIcon,\n Switch,\n Tabs,\n Tooltip,\n ValuePair,\n WarnIcon,\n ScreenTitle,\n} from \"mds\";\nimport { api } from \"api\";\nimport { ConfigurationKV } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { useAppDispatch } from \"../../../../store\";\nimport {\n setErrorSnackMessage,\n setHelpName,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { ldapFormFields, ldapHelpBoxContents } from \"../utils\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport AddIDPConfigurationHelpBox from \"../AddIDPConfigurationHelpbox\";\nimport LDAPEntitiesQuery from \"./LDAPEntitiesQuery\";\nimport ResetConfigurationModal from \"../../EventDestinations/CustomForms/ResetConfigurationModal\";\nimport HelpMenu from \"../../HelpMenu\";\n\nconst enabledConfigLDAP = [\n \"server_addr\",\n \"lookup_bind_dn\",\n \"user_dn_search_base_dn\",\n \"user_dn_search_filter\",\n];\n\nconst IDPLDAPConfigurationDetails = () => {\n const dispatch = useAppDispatch();\n\n const formFields = ldapFormFields;\n\n const [loading, setLoading] = useState(true);\n const [isEnabled, setIsEnabled] = useState(false);\n const [hasConfiguration, setHasConfiguration] = useState(false);\n const [fields, setFields] = useState({});\n const [overrideFields, setOverrideFields] = useState({});\n const [record, setRecord] = useState(\n undefined,\n );\n const [editMode, setEditMode] = useState(false);\n const [resetOpen, setResetOpen] = useState(false);\n const [curTab, setCurTab] = useState(\"configuration\");\n const [envOverride, setEnvOverride] = useState(false);\n\n const toggleEditMode = () => {\n if (editMode && record) {\n parseFields(record);\n }\n setEditMode(!editMode);\n };\n\n const parseFields = (record: ConfigurationKV[]) => {\n let fields: any = {};\n let ovrFlds: any = {};\n if (record && record.length > 0) {\n const enabled = record.find((item: any) => item.key === \"enable\");\n\n let totalCoincidences = 0;\n let totalOverride = 0;\n\n record.forEach((item: any) => {\n if (item.env_override) {\n fields[item.key] = item.env_override.value;\n ovrFlds[item.key] = item.env_override.name;\n } else {\n fields[item.key] = item.value;\n }\n\n if (\n enabledConfigLDAP.includes(item.key) &&\n ((item.value && item.value !== \"\" && item.value !== \"off\") ||\n (item.env_override &&\n item.env_override.value !== \"\" &&\n item.env_override.value !== \"off\"))\n ) {\n totalCoincidences++;\n }\n\n if (enabledConfigLDAP.includes(item.key) && item.env_override) {\n totalOverride++;\n }\n });\n\n const hasConfig = totalCoincidences !== 0;\n\n if (hasConfig && ((enabled && enabled.value !== \"off\") || !enabled)) {\n setIsEnabled(true);\n } else {\n setIsEnabled(false);\n }\n\n if (totalOverride !== 0) {\n setEnvOverride(true);\n }\n\n setHasConfiguration(hasConfig);\n }\n setOverrideFields(ovrFlds);\n setFields(fields);\n };\n\n useEffect(() => {\n const loadRecord = () => {\n api.configs\n .configInfo(\"identity_ldap\")\n .then((res) => {\n if (res.data.length > 0) {\n setRecord(res.data[0].key_values);\n parseFields(res.data[0].key_values || []);\n }\n setLoading(false);\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n if (loading) {\n loadRecord();\n }\n }, [dispatch, loading]);\n\n const validSave = () => {\n for (const [key, value] of Object.entries(formFields)) {\n if (\n value.required &&\n !(\n fields[key] !== undefined &&\n fields[key] !== null &&\n fields[key] !== \"\"\n )\n ) {\n return false;\n }\n }\n return true;\n };\n\n const saveRecord = () => {\n const keyVals = Object.keys(formFields).map((key) => {\n return {\n key,\n value: fields[key],\n };\n });\n\n api.configs\n .setConfig(\"identity_ldap\", {\n key_values: keyVals,\n })\n .then((res) => {\n setEditMode(false);\n setRecord(keyVals);\n parseFields(keyVals);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n setFields({ ...fields, lookup_bind_password: \"\" });\n\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const closeDeleteModalAndRefresh = async (refresh: boolean) => {\n setResetOpen(false);\n\n if (refresh) {\n dispatch(setServerNeedsRestart(refresh));\n setRecord(undefined);\n setFields({});\n setIsEnabled(false);\n setHasConfiguration(false);\n setEditMode(false);\n }\n };\n\n const toggleConfiguration = (value: boolean) => {\n const payload = {\n key_values: [\n {\n key: \"enable\",\n value: value ? \"on\" : \"off\",\n },\n ],\n };\n\n api.configs\n .setConfig(\"identity_ldap\", payload)\n .then((res) => {\n setIsEnabled(!isEnabled);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const renderFormField = (key: string, value: any) => {\n switch (value.type) {\n case \"toggle\":\n return (\n \n setFields({ ...fields, [key]: e.target.checked ? \"on\" : \"off\" })\n }\n description=\"\"\n disabled={!editMode}\n />\n );\n default:\n return (\n ) =>\n setFields({ ...fields, [key]: e.target.value })\n }\n placeholder={value.placeholder}\n disabled={!editMode}\n type={value.type}\n />\n );\n }\n };\n\n useEffect(() => {\n dispatch(setHelpName(\"LDAP\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {resetOpen && (\n \n )}\n } />\n \n \n \n \n }\n onClick={toggleEditMode}\n label={\"Edit Configuration\"}\n disabled={loading || envOverride}\n />\n \n {hasConfiguration && (\n \n toggleConfiguration(!isEnabled)}\n label={\n isEnabled ? \"Disable LDAP\" : \"Enable LDAP\"\n }\n variant={isEnabled ? \"secondary\" : \"regular\"}\n disabled={envOverride}\n />\n \n )}\n setLoading(true)}\n label={\"Refresh\"}\n icon={}\n />\n \n ) : null\n }\n />\n
\n {loading ? (\n \n \n \n ) : (\n \n {editMode ? (\n \n \n }\n >\n {editMode && hasConfiguration ? (\n \n \n Lookup Bind Password must be re-entered to\n change LDAP configurations\n \n }\n iconComponent={}\n help={null}\n />\n \n ) : null}\n {Object.entries(formFields).map(([key, value]) =>\n renderFormField(key, value),\n )}\n \n {editMode && hasConfiguration && (\n setResetOpen(true)}\n label={\"Reset Configuration\"}\n />\n )}\n \n \n \n \n \n ) : (\n \n \n \n {hasConfiguration && (\n \n {Object.entries(formFields).map(\n ([key, value]) => {\n if (!value.editOnly) {\n let label: React.ReactNode = value.label;\n let val: React.ReactNode = fields[key]\n ? fields[key]\n : \"\";\n\n if (overrideFields[key]) {\n label = (\n \n {value.label}\n \n \n \n \n \n \n );\n\n val = (\n \n \n {val}\n \n \n );\n }\n return (\n \n );\n }\n return null;\n },\n )}\n \n )}\n \n \n )}\n \n )}\n \n ),\n },\n {\n tabConfig: {\n id: \"entities\",\n label: \"Entities\",\n disabled: !hasConfiguration || !isEnabled,\n },\n content: (\n \n {hasConfiguration && (\n \n \n \n )}\n \n ),\n },\n ]}\n currentTabOrPath={curTab}\n onTabClick={(newTab) => {\n setCurTab(newTab);\n setEditMode(false);\n }}\n />\n
\n
\n );\n};\n\nexport default IDPLDAPConfigurationDetails;\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 { LockIcon, LoginIcon } from \"mds\";\n\nexport const ldapHelpBoxContents = [\n {\n text: \"MinIO supports using an Active Directory or LDAP (AD/LDAP) service for external management of user identities. Configuring an external IDentity Provider (IDP) enables Single-Sign On (SSO) workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"MinIO queries the configured Active Directory / LDAP server to verify the credentials specified by the application and optionally return a list of groups in which the user has membership. MinIO supports two modes (Lookup-Bind Mode and Username-Bind Mode) for performing these queries\",\n icon: null,\n iconDescription: \"\",\n },\n {\n text: \"MinIO recommends using Lookup-Bind mode as the preferred method for verifying AD/LDAP credentials. Username-Bind mode is a legacy method retained for backwards compatibility only.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDHelpBoxContents = [\n {\n text: \"MinIO supports using an OpenID Connect (OIDC) compatible IDentity Provider (IDP) such as Okta, KeyCloak, Dex, Google, or Facebook for external management of user identities.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"Configuring an external IDP enables Single-Sign On workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDFormFields = {\n config_url: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Config URL is required\" : \"\";\n },\n label: \"Config URL\",\n tooltip: \"Config URL for identity provider configuration\",\n placeholder:\n \"https://identity-provider-url/.well-known/openid-configuration\",\n type: \"text\",\n editOnly: false,\n },\n client_id: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client ID is required\" : \"\";\n },\n label: \"Client ID\",\n tooltip: \"Identity provider Client ID\",\n placeholder: \"Enter Client ID\",\n type: \"text\",\n editOnly: false,\n },\n client_secret: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client Secret is required\" : \"\";\n },\n label: \"Client Secret\",\n tooltip: \"Identity provider Client Secret\",\n placeholder: \"Enter Client Secret\",\n type: \"password\",\n editOnly: true,\n },\n claim_name: {\n required: false,\n label: \"Claim Name\",\n tooltip: \"Claim from which MinIO will read the policy or role to use\",\n placeholder: \"Enter Claim Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n display_name: {\n required: false,\n label: \"Display Name\",\n tooltip: \"\",\n placeholder: \"Enter Display Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n claim_prefix: {\n required: false,\n label: \"Claim Prefix\",\n tooltip: \"\",\n placeholder: \"Enter Claim Prefix\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n scopes: {\n required: false,\n label: \"Scopes\",\n tooltip: \"\",\n placeholder: \"openid,profile,email\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n redirect_uri: {\n required: false,\n label: \"Redirect URI\",\n tooltip: \"\",\n placeholder: \"https://console-endpoint-url/oauth_callback\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n role_policy: {\n required: false,\n label: \"Role Policy\",\n tooltip: \"\",\n placeholder: \"readonly\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n claim_userinfo: {\n required: false,\n label: \"Claim User Info\",\n tooltip: \"\",\n placeholder: \"Claim User Info\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n redirect_uri_dynamic: {\n required: false,\n label: \"Redirect URI Dynamic\",\n tooltip: \"\",\n placeholder: \"Redirect URI Dynamic\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n editOnly: false,\n },\n};\n\nexport const ldapFormFields = {\n server_insecure: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Insecure\",\n tooltip: \"Disable SSL certificate verification \",\n placeholder: \"myldapserver.com:636\",\n type: \"toggle\",\n editOnly: false,\n },\n server_addr: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Address\",\n tooltip: 'AD/LDAP server address e.g. \"myldapserver.com:636\"',\n placeholder: \"myldapserver.com:636\",\n type: \"text\",\n editOnly: false,\n },\n lookup_bind_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind DN is required\" : \"\";\n },\n label: \"Lookup Bind DN\",\n tooltip:\n \"DN (Distinguished Name) for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"cn=admin,dc=min,dc=io\",\n type: \"text\",\n editOnly: false,\n },\n lookup_bind_password: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind Password is required\" : \"\";\n },\n label: \"Lookup Bind Password\",\n tooltip:\n \"Password for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"admin\",\n type: \"password\",\n editOnly: true,\n },\n user_dn_search_base_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Base DN is required\" : \"\";\n },\n label: \"User DN Search Base\",\n tooltip: \"\",\n placeholder: \"DC=example,DC=net\",\n type: \"text\",\n editOnly: false,\n },\n user_dn_search_filter: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Filter is required\" : \"\";\n },\n label: \"User DN Search Filter\",\n tooltip: \"\",\n placeholder: \"(sAMAcountName=%s)\",\n type: \"text\",\n editOnly: false,\n },\n group_search_base_dn: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Base DN\",\n tooltip: \"\",\n placeholder: \"ou=swengg,dc=min,dc=io\",\n type: \"text\",\n editOnly: false,\n },\n group_search_filter: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Filter\",\n tooltip: \"\",\n placeholder: \"(&(objectclass=groupofnames)(member=%d))\",\n type: \"text\",\n editOnly: false,\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, useCallback, useEffect, useState } from \"react\";\n\nimport { Box, DataTable, Grid, ProgressBar } from \"mds\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"../../../api\";\n\ninterface ISelectPolicyProps {\n selectedPolicy?: string[];\n noTitle?: boolean;\n}\n\nconst PolicySelectors = ({ noTitle = false }: ISelectPolicyProps) => {\n const dispatch = useAppDispatch();\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api.policies\n .listPolicies()\n .then((res) => {\n const policies = res.data.policies ?? [];\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchPolicies();\n }\n }, [loading, fetchPolicies]);\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...currentPolicies]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n // remove empty values\n elements = elements.filter((element) => element !== \"\");\n\n dispatch(setSelectedPolicies(elements));\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter),\n );\n\n return (\n \n {loading && }\n {records.length > 0 ? (\n \n \n {\n setFilter(value);\n }}\n value={filter}\n label={!noTitle ? \"Assign Policies\" : \"\"}\n />\n \n\n \n \n ) : (\n \n No Policies Available\n \n )}\n \n );\n};\n\nexport default PolicySelectors;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["_ref","configurationName","closeResetModalAndRefresh","resetOpen","dispatch","useAppDispatch","resetLoading","setResetLoading","useState","useEffect","api","configs","resetConfig","then","catch","err","setErrorSnackMessage","errorToHandler","error","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","resetConfiguration","onClose","confirmationContent","_jsxs","Fragment","children","ProgressBar","style","maxWidth","whiteSpace","wordWrap","FeatureItem","icon","description","Box","sx","display","marginRight","height","width","marginBottom","fontSize","fontStyle","color","_ref2","helpText","docLink","docText","contents","flex","border","borderRadius","flexFlow","padding","fontWeight","alignItems","paddingBottom","HelpIconFilled","map","content","index","iconDescription","text","concat","href","target","rel","EntityResultTitle","name","CollapseCaret","transform","EntityResultItems","blockName","results","res","_ref3","_results$groups","_results$policies","_results$users","_results$groups2","_results$users2","_results$policies2","entityName","entityLength","groups","length","policies","users","className","marginTop","SectionTitle","separator","GroupsMenuIcon","actions","h4","borderBottom","margin","fill","groupData","group","user","policy","LDAPEntitiesQuery","loading","setLoading","setUsers","setGroups","setResults","selectedPolicies","useSelector","state","createUser","paddingTop","Grid","container","item","sm","md","lg","flexDirection","gap","withBorders","overflowY","minHeight","maxHeight","userDat","InputBox","id","value","onChange","e","usersElements","overlayIcon","AddIcon","RemoveIcon","overlayAction","alterUsersList","addItem","alterUsers","filteredUsers","filter","_","indx","groupDat","groupsElements","alterGroupsList","alterGroups","filteredGroups","PolicySelectors","selectedPolicy","noTitle","textAlign","Loader","timestamp","TimeIcon","DateTime","fromISO","toFormat","backgroundColor","flexGrow","LDAPResultsBlock","xs","justifyContent","Button","type","variant","onClick","searchEntities","data","cleanPolicies","pol","cleanUsers","usr","cleanGroups","grp","ldapEntities","getLdapEntities","result","SearchIcon","enabledConfigLDAP","IDPLDAPConfigurationDetails","formFields","ldapFormFields","isEnabled","setIsEnabled","hasConfiguration","setHasConfiguration","fields","setFields","overrideFields","setOverrideFields","record","setRecord","undefined","editMode","setEditMode","setResetOpen","curTab","setCurTab","envOverride","setEnvOverride","toggleEditMode","parseFields","ovrFlds","enabled","find","key","totalCoincidences","totalOverride","forEach","env_override","includes","hasConfig","configInfo","key_values","setHelpName","ResetConfigurationModal","async","refresh","setServerNeedsRestart","PageHeaderWrapper","label","HelpMenu","PageLayout","Tabs","horizontal","options","tabConfig","ScreenTitle","Tooltip","tooltip","EditIcon","disabled","payload","setConfig","restart","setSnackBarMessage","toggleConfiguration","RefreshIcon","FormLayout","helpBox","AddIDPConfigurationHelpBox","ldapHelpBoxContents","HelpBox","iconComponent","WarnIcon","help","Object","entries","renderFormField","Switch","indicatorLabels","checked","required","hasError","placeholder","validSave","saveRecord","keyVals","keys","lookup_bind_password","gridTemplateColumns","gridAutoFlow","ValuePair","editOnly","val","placement","ConsoleIcon","currentTabOrPath","onTabClick","newTab","LoginIcon","openIDHelpBoxContents","LockIcon","openIDFormFields","config_url","s","client_id","client_secret","claim_name","display_name","claim_prefix","scopes","redirect_uri","role_policy","claim_userinfo","redirect_uri_dynamic","server_insecure","server_addr","lookup_bind_dn","user_dn_search_base_dn","user_dn_search_filter","group_search_base_dn","group_search_filter","records","setRecords","setFilter","currentPolicies","fetchPolicies","useCallback","listPolicies","_res$data$policies","sort","policySort","setModalErrorSnackMessage","filteredRecords","elementItem","SearchBox","DataTable","columns","elementKey","onSelect","targetD","elements","push","element","setSelectedPolicies","selectedItems","idField","customPaperHeight","usersSort","a","b","accessKey","stringSort","policyDetailsSort"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1705.0eb547ff.chunk.js b/portal-ui/build/static/js/1705.0eb547ff.chunk.js deleted file mode 100644 index 65d6df575..000000000 --- a/portal-ui/build/static/js/1705.0eb547ff.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1705],{71705:function(e,n,t){t.r(n);var l=t(29439),c=t(72791),s=t(26181),a=t.n(s),o=t(29945),u=t(56087),i=t(38442),r=t(87995),d=t(44690),p=t(9505),f=t(75578),x=t(80184),T=(0,f.Z)(c.lazy((function(){return t.e(247).then(t.bind(t,40247))}))),h=(0,f.Z)(c.lazy((function(){return t.e(2763).then(t.bind(t,22763))})));n.default=function(e){var n=e.bucketName,t=(0,d.TL)(),s=(0,c.useState)(null),f=(0,l.Z)(s,2),v=f[0],_=f[1],S=(0,c.useState)(!1),j=(0,l.Z)(S,2),b=j[0],g=j[1],C=(0,c.useState)([]),G=(0,l.Z)(C,2),k=G[0],A=G[1],N=(0,c.useState)(["",""]),m=(0,l.Z)(N,2),U=m[0],Z=m[1],I=(0,c.useState)(!1),E=(0,l.Z)(I,2),F=E[0],P=E[1],w=(0,p.Z)((function(e){if(e&&null!=(null===e||void 0===e?void 0:e.details)){var n,t;if(e.details.tags)return _(null===e||void 0===e||null===(n=e.details)||void 0===n?void 0:n.tags),void A(Object.keys(null===e||void 0===e||null===(t=e.details)||void 0===t?void 0:t.tags));_([]),A([])}}),(function(e){t((0,r.Ih)(e))})),y=(0,l.Z)(w,2),O=y[0],B=y[1],K=function(){B("GET","/api/v1/buckets/".concat(n))};return(0,c.useEffect)((function(){K()}),[n]),(0,x.jsxs)(o.xuv,{children:[O?(0,x.jsx)(o.aNw,{style:{width:16,height:16}}):null,(0,x.jsx)(i.s,{scopes:[u.Ft.S3_GET_BUCKET_TAGGING,u.Ft.S3_GET_ACTIONS],resource:n,children:(0,x.jsx)(o.xuv,{sx:{display:"flex",flexFlow:"column",marginTop:5},children:(0,x.jsxs)(o.xuv,{sx:{display:"flex",gap:8,flexWrap:"wrap"},children:[k&&k.map((function(e,t){var l=a()(v,"".concat(e),"");return""!==l?(0,x.jsx)(i.s,{scopes:[u.Ft.S3_PUT_BUCKET_TAGGING,u.Ft.S3_PUT_ACTIONS],resource:n,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,x.jsx)(o.Vp9,{label:"".concat(e," : ").concat(l),id:"tag-".concat(e,"-").concat(l),onDelete:function(){!function(e,n){Z([e,n]),P(!0)}(e,l)}})},"chip-".concat(t)):null})),(0,x.jsx)(i.s,{scopes:[u.Ft.S3_PUT_BUCKET_TAGGING,u.Ft.S3_PUT_ACTIONS],resource:n,errorProps:{disabled:!0,onClick:null},children:(0,x.jsx)(o.Vp9,{label:"Add tag",icon:(0,x.jsx)(o.dtP,{}),id:"create-tag",variant:"outlined",onClick:function(){g(!0)},sx:{cursor:"pointer",maxWidth:90}})})]})})}),b&&(0,x.jsx)(T,{modalOpen:b,currentTags:v,bucketName:n,onCloseAndUpdate:function(e){g(!1),e&&K()}}),F&&(0,x.jsx)(h,{deleteOpen:F,currentTags:v,bucketName:n,onCloseAndUpdate:function(e){P(!1),e&&K()},selectedTag:U})]})}}}]); -//# sourceMappingURL=1705.0eb547ff.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1705.0eb547ff.chunk.js.map b/portal-ui/build/static/js/1705.0eb547ff.chunk.js.map deleted file mode 100644 index 481aa9487..000000000 --- a/portal-ui/build/static/js/1705.0eb547ff.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1705.0eb547ff.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/BucketTags.tsx"],"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 .\n\nimport React, { useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { AddIcon, Box, Loader, Tag } from \"mds\";\nimport { Bucket } from \"../../../Watch/types\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { IAM_SCOPES } from \"../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../common/SecureComponent\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\nimport useApi from \"../../../Common/Hooks/useApi\";\nimport withSuspense from \"../../../Common/Components/withSuspense\";\n\nconst AddBucketTagModal = withSuspense(\n React.lazy(() => import(\"../AddBucketTagModal\")),\n);\nconst DeleteBucketTagModal = withSuspense(\n React.lazy(() => import(\"../DeleteBucketTagModal\")),\n);\n\ntype BucketTagProps = {\n bucketName: string;\n};\n\nconst BucketTags = ({ bucketName }: BucketTagProps) => {\n const dispatch = useAppDispatch();\n\n const [tags, setTags] = useState(null);\n const [tagModalOpen, setTagModalOpen] = useState(false);\n const [tagKeys, setTagKeys] = useState([]);\n const [selectedTag, setSelectedTag] = useState([\"\", \"\"]);\n const [deleteTagModalOpen, setDeleteTagModalOpen] = useState(false);\n\n const closeAddTagModal = (refresh: boolean) => {\n setTagModalOpen(false);\n if (refresh) {\n fetchTags();\n }\n };\n\n const deleteTag = (tagKey: string, tagLabel: string) => {\n setSelectedTag([tagKey, tagLabel]);\n setDeleteTagModalOpen(true);\n };\n\n const closeDeleteTagModal = (refresh: boolean) => {\n setDeleteTagModalOpen(false);\n\n if (refresh) {\n fetchTags();\n }\n };\n\n const onTagLoaded = (res: Bucket) => {\n if (!!res && res?.details != null) {\n if (res.details.tags) {\n setTags(res?.details?.tags);\n setTagKeys(Object.keys(res?.details?.tags));\n\n return;\n }\n setTags([]);\n setTagKeys([]);\n }\n };\n\n const onTagLoadFailed = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n };\n\n const [isLoading, invokeTagsApi] = useApi(onTagLoaded, onTagLoadFailed);\n\n const fetchTags = () => {\n invokeTagsApi(\"GET\", `/api/v1/buckets/${bucketName}`);\n };\n\n useEffect(() => {\n fetchTags();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName]);\n\n return (\n \n {isLoading ? : null}\n \n \n \n {tagKeys &&\n tagKeys.map((tagKey: any, index: any) => {\n const tag = get(tags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n {\n deleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n }\n id={\"create-tag\"}\n variant={\"outlined\"}\n onClick={() => {\n setTagModalOpen(true);\n }}\n sx={{ cursor: \"pointer\", maxWidth: 90 }}\n />\n \n \n \n \n\n {/** Modals **/}\n\n {tagModalOpen && (\n \n )}\n {deleteTagModalOpen && (\n \n )}\n \n );\n};\n\nexport default BucketTags;\n"],"names":["AddBucketTagModal","withSuspense","React","DeleteBucketTagModal","_ref","bucketName","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","tags","setTags","_useState3","_useState4","tagModalOpen","setTagModalOpen","_useState5","_useState6","tagKeys","setTagKeys","_useState7","_useState8","selectedTag","setSelectedTag","_useState9","_useState10","deleteTagModalOpen","setDeleteTagModalOpen","_useApi","useApi","res","details","_res$details","_res$details2","Object","keys","err","setErrorSnackMessage","_useApi2","isLoading","invokeTagsApi","fetchTags","concat","useEffect","_jsxs","Box","children","_jsx","Loader","style","width","height","SecureComponent","scopes","IAM_SCOPES","S3_GET_BUCKET_TAGGING","S3_GET_ACTIONS","resource","sx","display","flexFlow","marginTop","gap","flexWrap","map","tagKey","index","tag","get","S3_PUT_BUCKET_TAGGING","S3_PUT_ACTIONS","matchAll","errorProps","deleteIcon","onDelete","Tag","label","id","tagLabel","deleteTag","disabled","onClick","icon","AddIcon","variant","cursor","maxWidth","modalOpen","currentTags","onCloseAndUpdate","refresh","deleteOpen"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1705.d2123b1a.chunk.js b/portal-ui/build/static/js/1705.d2123b1a.chunk.js new file mode 100644 index 000000000..1ed85c5bb --- /dev/null +++ b/portal-ui/build/static/js/1705.d2123b1a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1705],{71705:(e,t,l)=>{l.r(t),l.d(t,{default:()=>_});var s=l(72791),a=l(26181),n=l.n(a),c=l(29945),o=l(56087),r=l(38442),d=l(87995),i=l(44690),u=l(9505),p=l(75578),x=l(80184);const T=(0,p.Z)(s.lazy((()=>l.e(247).then(l.bind(l,40247))))),h=(0,p.Z)(s.lazy((()=>l.e(2763).then(l.bind(l,22763))))),_=e=>{let{bucketName:t}=e;const l=(0,i.TL)(),[a,p]=(0,s.useState)(null),[_,v]=(0,s.useState)(!1),[S,j]=(0,s.useState)([]),[b,g]=(0,s.useState)(["",""]),[C,G]=(0,s.useState)(!1),[f,k]=(0,u.Z)((e=>{if(e&&null!=(null===e||void 0===e?void 0:e.details)){var t,l;if(e.details.tags)return p(null===e||void 0===e||null===(t=e.details)||void 0===t?void 0:t.tags),void j(Object.keys(null===e||void 0===e||null===(l=e.details)||void 0===l?void 0:l.tags));p([]),j([])}}),(e=>{l((0,d.Ih)(e))})),A=()=>{k("GET","/api/v1/buckets/".concat(t))};return(0,s.useEffect)((()=>{A()}),[t]),(0,x.jsxs)(c.xuv,{children:[f?(0,x.jsx)(c.aNw,{style:{width:16,height:16}}):null,(0,x.jsx)(r.s,{scopes:[o.Ft.S3_GET_BUCKET_TAGGING,o.Ft.S3_GET_ACTIONS],resource:t,children:(0,x.jsx)(c.xuv,{sx:{display:"flex",flexFlow:"column",marginTop:5},children:(0,x.jsxs)(c.xuv,{sx:{display:"flex",gap:8,flexWrap:"wrap"},children:[S&&S.map(((e,l)=>{const s=n()(a,"".concat(e),"");return""!==s?(0,x.jsx)(r.s,{scopes:[o.Ft.S3_PUT_BUCKET_TAGGING,o.Ft.S3_PUT_ACTIONS],resource:t,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,x.jsx)(c.Vp9,{label:"".concat(e," : ").concat(s),id:"tag-".concat(e,"-").concat(s),onDelete:()=>{((e,t)=>{g([e,t]),G(!0)})(e,s)}})},"chip-".concat(l)):null})),(0,x.jsx)(r.s,{scopes:[o.Ft.S3_PUT_BUCKET_TAGGING,o.Ft.S3_PUT_ACTIONS],resource:t,errorProps:{disabled:!0,onClick:null},children:(0,x.jsx)(c.Vp9,{label:"Add tag",icon:(0,x.jsx)(c.dtP,{}),id:"create-tag",variant:"outlined",onClick:()=>{v(!0)},sx:{cursor:"pointer",maxWidth:90}})})]})})}),_&&(0,x.jsx)(T,{modalOpen:_,currentTags:a,bucketName:t,onCloseAndUpdate:e=>{v(!1),e&&A()}}),C&&(0,x.jsx)(h,{deleteOpen:C,currentTags:a,bucketName:t,onCloseAndUpdate:e=>{G(!1),e&&A()},selectedTag:b})]})}}}]); +//# sourceMappingURL=1705.d2123b1a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1705.d2123b1a.chunk.js.map b/portal-ui/build/static/js/1705.d2123b1a.chunk.js.map new file mode 100644 index 000000000..6ca900743 --- /dev/null +++ b/portal-ui/build/static/js/1705.d2123b1a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1705.d2123b1a.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/BucketTags.tsx"],"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 .\n\nimport React, { useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { AddIcon, Box, Loader, Tag } from \"mds\";\nimport { Bucket } from \"../../../Watch/types\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { IAM_SCOPES } from \"../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../common/SecureComponent\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\nimport useApi from \"../../../Common/Hooks/useApi\";\nimport withSuspense from \"../../../Common/Components/withSuspense\";\n\nconst AddBucketTagModal = withSuspense(\n React.lazy(() => import(\"../AddBucketTagModal\")),\n);\nconst DeleteBucketTagModal = withSuspense(\n React.lazy(() => import(\"../DeleteBucketTagModal\")),\n);\n\ntype BucketTagProps = {\n bucketName: string;\n};\n\nconst BucketTags = ({ bucketName }: BucketTagProps) => {\n const dispatch = useAppDispatch();\n\n const [tags, setTags] = useState(null);\n const [tagModalOpen, setTagModalOpen] = useState(false);\n const [tagKeys, setTagKeys] = useState([]);\n const [selectedTag, setSelectedTag] = useState([\"\", \"\"]);\n const [deleteTagModalOpen, setDeleteTagModalOpen] = useState(false);\n\n const closeAddTagModal = (refresh: boolean) => {\n setTagModalOpen(false);\n if (refresh) {\n fetchTags();\n }\n };\n\n const deleteTag = (tagKey: string, tagLabel: string) => {\n setSelectedTag([tagKey, tagLabel]);\n setDeleteTagModalOpen(true);\n };\n\n const closeDeleteTagModal = (refresh: boolean) => {\n setDeleteTagModalOpen(false);\n\n if (refresh) {\n fetchTags();\n }\n };\n\n const onTagLoaded = (res: Bucket) => {\n if (!!res && res?.details != null) {\n if (res.details.tags) {\n setTags(res?.details?.tags);\n setTagKeys(Object.keys(res?.details?.tags));\n\n return;\n }\n setTags([]);\n setTagKeys([]);\n }\n };\n\n const onTagLoadFailed = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n };\n\n const [isLoading, invokeTagsApi] = useApi(onTagLoaded, onTagLoadFailed);\n\n const fetchTags = () => {\n invokeTagsApi(\"GET\", `/api/v1/buckets/${bucketName}`);\n };\n\n useEffect(() => {\n fetchTags();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName]);\n\n return (\n \n {isLoading ? : null}\n \n \n \n {tagKeys &&\n tagKeys.map((tagKey: any, index: any) => {\n const tag = get(tags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n {\n deleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n }\n id={\"create-tag\"}\n variant={\"outlined\"}\n onClick={() => {\n setTagModalOpen(true);\n }}\n sx={{ cursor: \"pointer\", maxWidth: 90 }}\n />\n \n \n \n \n\n {/** Modals **/}\n\n {tagModalOpen && (\n \n )}\n {deleteTagModalOpen && (\n \n )}\n \n );\n};\n\nexport default BucketTags;\n"],"names":["AddBucketTagModal","withSuspense","React","DeleteBucketTagModal","_ref","bucketName","dispatch","useAppDispatch","tags","setTags","useState","tagModalOpen","setTagModalOpen","tagKeys","setTagKeys","selectedTag","setSelectedTag","deleteTagModalOpen","setDeleteTagModalOpen","isLoading","invokeTagsApi","useApi","res","details","_res$details","_res$details2","Object","keys","err","setErrorSnackMessage","fetchTags","concat","useEffect","_jsxs","Box","children","_jsx","Loader","style","width","height","SecureComponent","scopes","IAM_SCOPES","S3_GET_BUCKET_TAGGING","S3_GET_ACTIONS","resource","sx","display","flexFlow","marginTop","gap","flexWrap","map","tagKey","index","tag","get","S3_PUT_BUCKET_TAGGING","S3_PUT_ACTIONS","matchAll","errorProps","deleteIcon","onDelete","Tag","label","id","deleteTag","tagLabel","disabled","onClick","icon","AddIcon","variant","cursor","maxWidth","modalOpen","currentTags","onCloseAndUpdate","refresh","deleteOpen"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1829.2aaefda6.chunk.js b/portal-ui/build/static/js/1829.2aaefda6.chunk.js new file mode 100644 index 000000000..4760cb659 --- /dev/null +++ b/portal-ui/build/static/js/1829.2aaefda6.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1829],{47986:(e,t,a)=>{"use strict";a.d(t,{Z:()=>o});a(72791);var n=a(29945),s=a(80184);const o=e=>{let{iconComponent:t,entity:a}=e;return(0,s.jsx)(n.rjZ,{container:!0,children:(0,s.jsx)(n.rjZ,{item:!0,xs:12,children:(0,s.jsx)(n.KfX,{title:"".concat(a," not available"),iconComponent:t,help:(0,s.jsxs)(n.xuv,{sx:{fontSize:"14px",["@media (max-width: ".concat(n.Egj.sm,"px)")]:{display:"flex",flexFlow:"column"}},children:[(0,s.jsx)("span",{children:"This feature is not available for a single-disk setup.\xa0"}),(0,s.jsxs)("span",{children:["Please deploy a server in"," ",(0,s.jsx)("a",{href:"https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html?ref=con",target:"_blank",rel:"noopener",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},61829:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>D});var n=a(72791),s=a(78687),o=a(95087),r=a(29945),l=a(20601),i=a(38725),c=a(82839),d=a(90466),h=a(12891),x=a(35667),u=a(27281),f=a(23782),b=a(31776),p=a(82342),j=a(26824),m=a(45248),g=a(23814),v=a(56087),w=a(87995),y=a(38442),S=a(44690),k=a(47986),C=a(79844),H=a(99670),B=a(80184);const D=()=>{const e=(0,s.v9)(w.N5),[t,a]=(0,n.useState)(!1),[D,T]=(0,n.useState)(""),[_,E]=(0,n.useState)([]),[A,G]=(0,n.useState)(""),[N,O]=(0,n.useState)(!1),[Z,z]=(0,n.useState)(!1),[R,I]=(0,n.useState)(!1),[L,F]=(0,n.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""});(0,n.useEffect)((()=>{b.h.buckets.listBuckets().then((e=>{let t=[];e.data.buckets&&(t=e.data.buckets),E(t)})).catch((e=>{console.error((0,p.g)(e.error))}))}),[]),(0,n.useEffect)((()=>{Z&&I(!1)}),[Z]),(0,n.useEffect)((()=>{R&&z(!1)}),[R]);const K=e=>[e.Green,e.Yellow,e.Red,e.Grey];(0,n.useEffect)((()=>{if(t){const e={Green:0,Yellow:0,Red:0,Grey:0},t={Green:0,Yellow:0,Red:0,Grey:0},n=new URL(window.location.toString()),s=!1?"9090":n.port,r=new URL(document.baseURI).pathname,l=(0,j.x2)(n.protocol),i=new o.w3cwebsocket("".concat(l,"://").concat(n.hostname,":").concat(s).concat(r,"ws/heal/").concat(D,"?prefix=").concat(A,"&recursive=").concat(N,"&force-start=").concat(Z,"&force-stop=").concat(R));if(null!==i)return i.onopen=()=>{console.log("WebSocket Client Connected"),i.send("ok")},i.onmessage=a=>{let n=JSON.parse(a.data.toString());for(const[e,s]of Object.entries(n.healthAfterCols))t[e]=100*s/n.itemsScanned;for(const[t,s]of Object.entries(n.healthBeforeCols))e[t]=100*s/n.itemsScanned;F({beforeHeal:K(e),afterHeal:K(t),objectsHealed:n.objectsHealed,objectsScanned:n.objectsScanned,healDuration:n.healDuration,sizeScanned:(0,m.ae)(n.bytesScanned.toString())})},i.onclose=()=>{a(!1),console.log("connection closed by server")},()=>{i.close(1e3),console.log("closing websockets")}}}),[t,D,Z,R,A,N]);let P=[{name:"Green",ah:L.afterHeal[0],bh:L.beforeHeal[0],amt:100},{name:"Yellow",ah:L.afterHeal[1],bh:L.beforeHeal[1],amt:100},{name:"Red",ah:L.afterHeal[2],bh:L.beforeHeal[2],amt:100},{name:"Grey",ah:L.afterHeal[3],bh:L.beforeHeal[3],amt:100}];const M=_.map((e=>({label:e.name,value:e.name}))),X=(0,S.TL)();return(0,n.useEffect)((()=>{X((0,w.Sc)("heal"))}),[]),(0,B.jsxs)(n.Fragment,{children:[(0,B.jsx)(C.Z,{label:"Drives",actions:(0,B.jsx)(H.Z,{})}),(0,B.jsx)(r.Xgh,{children:e?(0,B.jsxs)(y.s,{scopes:[v.Ft.ADMIN_HEAL],resource:v.C3,children:[(0,B.jsxs)(r.xuv,{withBorders:!0,children:[(0,B.jsxs)(r.xuv,{sx:{display:"flex",alignItems:"center",marginBottom:15,gap:15},children:[(0,B.jsxs)(r.xuv,{sx:{flexGrow:1,width:"100%"},children:[(0,B.jsx)(r.AZs,{children:"Bucket"}),(0,B.jsx)(r.PhF,{id:"bucket-name",name:"bucket-name",value:D,onChange:e=>{T(e)},options:M,placeholder:"Select Bucket"})]}),(0,B.jsxs)(r.xuv,{sx:{flexGrow:1,width:"100%"},children:[(0,B.jsx)(r.AZs,{children:"Prefix"}),(0,B.jsx)(r.Wzg,{id:"prefix-resource",disabled:!1,onChange:e=>{G(e.target.value)}})]})]}),(0,B.jsxs)(r.xuv,{sx:{display:"flex",gap:20},children:[(0,B.jsx)(r.xuv,{children:(0,B.jsx)(r.XZJ,{name:"recursive",id:"recursive",value:"recursive",checked:N,onChange:()=>{O(!N)},disabled:!1,label:"Recursive"})}),(0,B.jsx)(r.xuv,{children:(0,B.jsx)(r.XZJ,{name:"forceStart",id:"forceStart",value:"forceStart",checked:Z,onChange:()=>{z(!Z)},disabled:!1,label:"Force Start"})}),(0,B.jsx)(r.xuv,{children:(0,B.jsx)(r.XZJ,{name:"forceStop",id:"forceStop",value:"forceStop",checked:R,onChange:()=>{I(!R)},disabled:!1,label:"Force Stop"})})]}),(0,B.jsx)(r.xuv,{sx:g.ID.modalButtonBar,children:(0,B.jsx)(r.zxk,{id:"start-heal",type:"submit",variant:"callAction",color:"primary",disabled:t,onClick:()=>a(!0),label:"Start"})})]}),(0,B.jsxs)(r.xuv,{withBorders:!0,sx:{marginTop:15,'& ul li:not([class*="Mui"])::before':{listStyle:"none",content:"' '"}},children:[(0,B.jsx)(l.h,{width:"90%",height:400,children:(0,B.jsxs)(i.v,{width:600,height:400,data:P,margin:{top:5,right:30,left:20,bottom:5},children:[(0,B.jsx)(c.q,{strokeDasharray:"3 3"}),(0,B.jsx)(d.K,{dataKey:"name"}),(0,B.jsx)(h.B,{}),(0,B.jsx)(x.u,{}),(0,B.jsx)(u.D,{verticalAlign:"top",layout:"horizontal",className:"noLi"}),(0,B.jsx)(f.$,{dataKey:"ah",name:"After Healing",fill:"#2781B060",stroke:"#2781B0"}),(0,B.jsx)(f.$,{dataKey:"bh",name:"Before Healing",fill:"#C83B5160",stroke:"#C83B51"})]})}),(0,B.jsxs)(r.rjZ,{item:!0,xs:12,sx:{marginTop:20,display:"flex",flexDirection:"row",justifyContent:"space-between","& .scanData":{}},children:[(0,B.jsxs)(r.xuv,{className:"scanData",children:[(0,B.jsx)("strong",{children:"Size scanned:"})," ",L.sizeScanned]}),(0,B.jsxs)(r.xuv,{className:"scanData",children:[(0,B.jsx)("strong",{children:"Objects healed:"})," ",L.objectsHealed," /"," ",L.objectsScanned]}),(0,B.jsxs)(r.xuv,{className:"scanData",children:[(0,B.jsx)("strong",{children:"Healing time:"})," ",L.healDuration,"s"]})]})]})]}):(0,B.jsx)(k.Z,{entity:"Heal",iconComponent:(0,B.jsx)(r.lnI,{})})})]})}},94210:e=>{var t=function(){if("object"===typeof self&&self)return self;if("object"===typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};e.exports=function(){if(this)return this;if("object"===typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(e){return t()}try{return __global__||t()}finally{delete Object.prototype.__global__}}()},38725:(e,t,a)=>{"use strict";a.d(t,{v:()=>i});var n=a(23612),s=a(23782),o=a(90466),r=a(12891),l=a(93137),i=(0,n.z)({chartName:"BarChart",GraphicalChild:s.$,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:o.K},{axisType:"yAxis",AxisComp:r.B}],formatAxisMap:l.t9})},95087:(e,t,a)=>{var n;if("object"===typeof globalThis)n=globalThis;else try{n=a(94210)}catch(l){}finally{if(n||"undefined"===typeof window||(n=window),!n)throw new Error("Could not determine global this")}var s=n.WebSocket||n.MozWebSocket,o=a(51496);function r(e,t){return t?new s(e,t):new s(e)}s&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(r,e,{get:function(){return s[e]}})})),e.exports={w3cwebsocket:s?r:null,version:o}},51496:(e,t,a)=>{e.exports=a(19794).version},19794:e=>{"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=1829.2aaefda6.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1829.2aaefda6.chunk.js.map b/portal-ui/build/static/js/1829.2aaefda6.chunk.js.map new file mode 100644 index 000000000..62df3f1fb --- /dev/null +++ b/portal-ui/build/static/js/1829.2aaefda6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1829.2aaefda6.chunk.js","mappings":"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","sources":["screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Heal/Heal.tsx","../node_modules/es5-ext/global.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.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 { HelpBox, Box, Grid, breakPoints } from \"mds\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n \n \n This feature is not available for a single-disk setup. \n \n \n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use this feature.\n \n \n }\n />\n \n \n );\n};\n\nexport default DistributedOnly;\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 { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport {\n Box,\n Button,\n Checkbox,\n Grid,\n HealIcon,\n InputBox,\n InputLabel,\n PageLayout,\n Select,\n} from \"mds\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Legend,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\n\nimport { api } from \"api\";\nimport { Bucket } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { colorH, HealStatus } from \"./types\";\nimport { niceBytes } from \"../../../common/utils\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { selDistSet, setHelpName } from \"../../../systemSlice\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport { useAppDispatch } from \"../../../store\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\n\nconst Heal = () => {\n const distributedSetup = useSelector(selDistSet);\n\n const [start, setStart] = useState(false);\n const [bucketName, setBucketName] = useState(\"\");\n const [bucketList, setBucketList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [recursive, setRecursive] = useState(false);\n const [forceStart, setForceStart] = useState(false);\n const [forceStop, setForceStop] = useState(false);\n // healStatus states\n const [hStatus, setHStatus] = useState({\n beforeHeal: [0, 0, 0, 0],\n afterHeal: [0, 0, 0, 0],\n objectsHealed: 0,\n objectsScanned: 0,\n healDuration: 0,\n sizeScanned: \"\",\n });\n\n const fetchBucketList = () => {\n api.buckets\n .listBuckets()\n .then((res) => {\n let buckets: Bucket[] = [];\n if (res.data.buckets) {\n buckets = res.data.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err) => {\n console.error(errorToHandler(err.error));\n });\n };\n\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n // forceStart and forceStop need to be mutually exclusive\n useEffect(() => {\n if (forceStart) {\n setForceStop(false);\n }\n }, [forceStart]);\n\n useEffect(() => {\n if (forceStop) {\n setForceStart(false);\n }\n }, [forceStop]);\n\n const colorHealthArr = (color: colorH) => {\n return [color.Green, color.Yellow, color.Red, color.Grey];\n };\n\n useEffect(() => {\n // begin watch if bucketName in bucketList and start pressed\n if (start) {\n // values stored here to update chart\n const cB: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n const cA: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n\n const url = new URL(window.location.toString());\n const isDev = process.env.NODE_ENV === \"development\";\n const port = isDev ? \"9090\" : url.port;\n\n // check if we are using base path, if not this always is `/`\n const baseLocation = new URL(document.baseURI);\n const baseUrl = baseLocation.pathname;\n\n const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}${baseUrl}ws/heal/${bucketName}?prefix=${prefix}&recursive=${recursive}&force-start=${forceStart}&force-stop=${forceStop}`,\n );\n\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: HealStatus = JSON.parse(message.data.toString());\n // Store percentage per health color\n for (const [key, value] of Object.entries(m.healthAfterCols)) {\n cA[key] = (value * 100) / m.itemsScanned;\n }\n for (const [key, value] of Object.entries(m.healthBeforeCols)) {\n cB[key] = (value * 100) / m.itemsScanned;\n }\n setHStatus({\n beforeHeal: colorHealthArr(cB),\n afterHeal: colorHealthArr(cA),\n objectsHealed: m.objectsHealed,\n objectsScanned: m.objectsScanned,\n healDuration: m.healDuration,\n sizeScanned: niceBytes(m.bytesScanned.toString()),\n });\n };\n c.onclose = () => {\n setStart(false);\n console.log(\"connection closed by server\");\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n console.log(\"closing websockets\");\n };\n }\n }\n }, [start, bucketName, forceStart, forceStop, prefix, recursive]);\n\n let data = [\n {\n name: \"Green\",\n ah: hStatus.afterHeal[0],\n bh: hStatus.beforeHeal[0],\n amt: 100,\n },\n {\n name: \"Yellow\",\n ah: hStatus.afterHeal[1],\n bh: hStatus.beforeHeal[1],\n amt: 100,\n },\n {\n name: \"Red\",\n ah: hStatus.afterHeal[2],\n bh: hStatus.beforeHeal[2],\n amt: 100,\n },\n {\n name: \"Grey\",\n ah: hStatus.afterHeal[3],\n bh: hStatus.beforeHeal[3],\n amt: 100,\n },\n ];\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n const dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setHelpName(\"heal\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n } />\n\n \n {!distributedSetup ? (\n } />\n ) : (\n \n \n \n \n Bucket\n {\n setBucketName(value as string);\n }}\n options={bucketNames}\n placeholder={\"Select Bucket\"}\n />\n \n \n Prefix\n {\n setPrefix(e.target.value);\n }}\n />\n \n \n \n \n {\n setRecursive(!recursive);\n }}\n disabled={false}\n label=\"Recursive\"\n />\n \n \n {\n setForceStart(!forceStart);\n }}\n disabled={false}\n label=\"Force Start\"\n />\n \n \n {\n setForceStop(!forceStop);\n }}\n disabled={false}\n label=\"Force Stop\"\n />\n \n \n \n setStart(true)}\n label={\"Start\"}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Size scanned: {hStatus.sizeScanned}\n \n \n Objects healed: {hStatus.objectsHealed} /{\" \"}\n {hStatus.objectsScanned}\n \n \n Healing time: {hStatus.healDuration}s\n \n \n \n \n )}\n \n \n );\n};\n\nexport default Heal;\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","module.exports = require('../package.json').version;\n"],"names":["_ref","iconComponent","entity","_jsx","Grid","container","children","item","xs","HelpBox","title","concat","help","_jsxs","Box","sx","fontSize","breakPoints","sm","display","flexFlow","href","target","rel","Heal","distributedSetup","useSelector","selDistSet","start","setStart","useState","bucketName","setBucketName","bucketList","setBucketList","prefix","setPrefix","recursive","setRecursive","forceStart","setForceStart","forceStop","setForceStop","hStatus","setHStatus","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","useEffect","api","buckets","listBuckets","then","res","data","catch","err","console","error","errorToHandler","colorHealthArr","color","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","process","baseUrl","document","baseURI","pathname","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","log","send","onmessage","message","m","JSON","parse","key","value","Object","entries","healthAfterCols","itemsScanned","healthBeforeCols","niceBytes","bytesScanned","onclose","close","name","ah","bh","amt","bucketNames","map","label","dispatch","useAppDispatch","setHelpName","Fragment","PageHeaderWrapper","actions","HelpMenu","PageLayout","SecureComponent","scopes","IAM_SCOPES","ADMIN_HEAL","resource","CONSOLE_UI_RESOURCE","withBorders","alignItems","marginBottom","gap","flexGrow","width","InputLabel","Select","id","onChange","options","placeholder","InputBox","disabled","e","Checkbox","checked","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","marginTop","listStyle","content","ResponsiveContainer","height","BarChart","margin","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Tooltip","Legend","verticalAlign","layout","className","Bar","fill","stroke","flexDirection","justifyContent","DistributedOnly","HealIcon","naiveFallback","self","Error","module","exports","this","globalThis","defineProperty","prototype","get","configurable","__global__","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","formatAxisMap","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","prop"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1829.bb99f80d.chunk.js b/portal-ui/build/static/js/1829.bb99f80d.chunk.js deleted file mode 100644 index 08a71c780..000000000 --- a/portal-ui/build/static/js/1829.bb99f80d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1829],{47986:function(e,t,n){"use strict";var a=n(4942),o=(n(72791),n(29945)),s=n(80184);t.Z=function(e){var t=e.iconComponent,n=e.entity;return(0,s.jsx)(o.rjZ,{container:!0,children:(0,s.jsx)(o.rjZ,{item:!0,xs:12,children:(0,s.jsx)(o.KfX,{title:"".concat(n," not available"),iconComponent:t,help:(0,s.jsxs)(o.xuv,{sx:(0,a.Z)({fontSize:"14px"},"@media (max-width: ".concat(o.Egj.sm,"px)"),{display:"flex",flexFlow:"column"}),children:[(0,s.jsx)("span",{children:"This feature is not available for a single-disk setup.\xa0"}),(0,s.jsxs)("span",{children:["Please deploy a server in"," ",(0,s.jsx)("a",{href:"https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html?ref=con",target:"_blank",rel:"noopener",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},61829:function(e,t,n){"use strict";n.r(t);var a=n(29439),o=n(72791),s=n(78687),r=n(95087),i=n(29945),c=n(20601),l=n(38725),u=n(82839),f=n(90466),d=n(12891),h=n(35667),x=n(27281),b=n(23782),p=n(31776),j=n(82342),m=n(26824),v=n(45248),g=n(23814),w=n(56087),y=n(87995),S=n(38442),k=n(44690),C=n(47986),Z=n(47974),H=n(99670),B=n(80184);t.default=function(){var e=(0,s.v9)(y.N5),t=(0,o.useState)(!1),n=(0,a.Z)(t,2),D=n[0],T=n[1],_=(0,o.useState)(""),E=(0,a.Z)(_,2),A=E[0],G=E[1],N=(0,o.useState)([]),O=(0,a.Z)(N,2),z=O[0],R=O[1],I=(0,o.useState)(""),L=(0,a.Z)(I,2),F=L[0],K=L[1],P=(0,o.useState)(!1),M=(0,a.Z)(P,2),X=M[0],J=M[1],U=(0,o.useState)(!1),W=(0,a.Z)(U,2),Y=W[0],$=W[1],q=(0,o.useState)(!1),Q=(0,a.Z)(q,2),V=Q[0],ee=Q[1],te=(0,o.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""}),ne=(0,a.Z)(te,2),ae=ne[0],oe=ne[1];(0,o.useEffect)((function(){p.h.buckets.listBuckets().then((function(e){var t=[];e.data.buckets&&(t=e.data.buckets),R(t)})).catch((function(e){console.error((0,j.g)(e.error))}))}),[]),(0,o.useEffect)((function(){Y&&ee(!1)}),[Y]),(0,o.useEffect)((function(){V&&$(!1)}),[V]);var se=function(e){return[e.Green,e.Yellow,e.Red,e.Grey]};(0,o.useEffect)((function(){if(D){var e={Green:0,Yellow:0,Red:0,Grey:0},t={Green:0,Yellow:0,Red:0,Grey:0},n=new URL(window.location.toString()),o=n.port,s=new URL(document.baseURI).pathname,i=(0,m.x2)(n.protocol),c=new r.w3cwebsocket("".concat(i,"://").concat(n.hostname,":").concat(o).concat(s,"ws/heal/").concat(A,"?prefix=").concat(F,"&recursive=").concat(X,"&force-start=").concat(Y,"&force-stop=").concat(V));if(null!==c)return c.onopen=function(){console.log("WebSocket Client Connected"),c.send("ok")},c.onmessage=function(n){for(var o=JSON.parse(n.data.toString()),s=0,r=Object.entries(o.healthAfterCols);s.\n\nimport React from \"react\";\nimport { HelpBox, Box, Grid, breakPoints } from \"mds\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n \n \n This feature is not available for a single-disk setup. \n \n \n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use this feature.\n \n \n }\n />\n \n \n );\n};\n\nexport default DistributedOnly;\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 { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport {\n Box,\n Button,\n Checkbox,\n Grid,\n HealIcon,\n InputBox,\n InputLabel,\n PageLayout,\n Select,\n} from \"mds\";\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Legend,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\n\nimport { api } from \"api\";\nimport { Bucket } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { colorH, HealStatus } from \"./types\";\nimport { niceBytes } from \"../../../common/utils\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { selDistSet, setHelpName } from \"../../../systemSlice\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport { useAppDispatch } from \"../../../store\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\n\nconst Heal = () => {\n const distributedSetup = useSelector(selDistSet);\n\n const [start, setStart] = useState(false);\n const [bucketName, setBucketName] = useState(\"\");\n const [bucketList, setBucketList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [recursive, setRecursive] = useState(false);\n const [forceStart, setForceStart] = useState(false);\n const [forceStop, setForceStop] = useState(false);\n // healStatus states\n const [hStatus, setHStatus] = useState({\n beforeHeal: [0, 0, 0, 0],\n afterHeal: [0, 0, 0, 0],\n objectsHealed: 0,\n objectsScanned: 0,\n healDuration: 0,\n sizeScanned: \"\",\n });\n\n const fetchBucketList = () => {\n api.buckets\n .listBuckets()\n .then((res) => {\n let buckets: Bucket[] = [];\n if (res.data.buckets) {\n buckets = res.data.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err) => {\n console.error(errorToHandler(err.error));\n });\n };\n\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n // forceStart and forceStop need to be mutually exclusive\n useEffect(() => {\n if (forceStart) {\n setForceStop(false);\n }\n }, [forceStart]);\n\n useEffect(() => {\n if (forceStop) {\n setForceStart(false);\n }\n }, [forceStop]);\n\n const colorHealthArr = (color: colorH) => {\n return [color.Green, color.Yellow, color.Red, color.Grey];\n };\n\n useEffect(() => {\n // begin watch if bucketName in bucketList and start pressed\n if (start) {\n // values stored here to update chart\n const cB: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n const cA: colorH = { Green: 0, Yellow: 0, Red: 0, Grey: 0 };\n\n const url = new URL(window.location.toString());\n const isDev = process.env.NODE_ENV === \"development\";\n const port = isDev ? \"9090\" : url.port;\n\n // check if we are using base path, if not this always is `/`\n const baseLocation = new URL(document.baseURI);\n const baseUrl = baseLocation.pathname;\n\n const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}${baseUrl}ws/heal/${bucketName}?prefix=${prefix}&recursive=${recursive}&force-start=${forceStart}&force-stop=${forceStop}`,\n );\n\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: HealStatus = JSON.parse(message.data.toString());\n // Store percentage per health color\n for (const [key, value] of Object.entries(m.healthAfterCols)) {\n cA[key] = (value * 100) / m.itemsScanned;\n }\n for (const [key, value] of Object.entries(m.healthBeforeCols)) {\n cB[key] = (value * 100) / m.itemsScanned;\n }\n setHStatus({\n beforeHeal: colorHealthArr(cB),\n afterHeal: colorHealthArr(cA),\n objectsHealed: m.objectsHealed,\n objectsScanned: m.objectsScanned,\n healDuration: m.healDuration,\n sizeScanned: niceBytes(m.bytesScanned.toString()),\n });\n };\n c.onclose = () => {\n setStart(false);\n console.log(\"connection closed by server\");\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n console.log(\"closing websockets\");\n };\n }\n }\n }, [start, bucketName, forceStart, forceStop, prefix, recursive]);\n\n let data = [\n {\n name: \"Green\",\n ah: hStatus.afterHeal[0],\n bh: hStatus.beforeHeal[0],\n amt: 100,\n },\n {\n name: \"Yellow\",\n ah: hStatus.afterHeal[1],\n bh: hStatus.beforeHeal[1],\n amt: 100,\n },\n {\n name: \"Red\",\n ah: hStatus.afterHeal[2],\n bh: hStatus.beforeHeal[2],\n amt: 100,\n },\n {\n name: \"Grey\",\n ah: hStatus.afterHeal[3],\n bh: hStatus.beforeHeal[3],\n amt: 100,\n },\n ];\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n const dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setHelpName(\"heal\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n } />\n\n \n {!distributedSetup ? (\n } />\n ) : (\n \n \n \n \n Bucket\n {\n setBucketName(value as string);\n }}\n options={bucketNames}\n placeholder={\"Select Bucket\"}\n />\n \n \n Prefix\n {\n setPrefix(e.target.value);\n }}\n />\n \n \n \n \n {\n setRecursive(!recursive);\n }}\n disabled={false}\n label=\"Recursive\"\n />\n \n \n {\n setForceStart(!forceStart);\n }}\n disabled={false}\n label=\"Force Start\"\n />\n \n \n {\n setForceStop(!forceStop);\n }}\n disabled={false}\n label=\"Force Stop\"\n />\n \n \n \n setStart(true)}\n label={\"Start\"}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Size scanned: {hStatus.sizeScanned}\n \n \n Objects healed: {hStatus.objectsHealed} /{\" \"}\n {hStatus.objectsScanned}\n \n \n Healing time: {hStatus.healDuration}s\n \n \n \n \n )}\n \n \n );\n};\n\nexport default Heal;\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","module.exports = require('../package.json').version;\n"],"names":["_ref","iconComponent","entity","_jsx","Grid","container","children","item","xs","HelpBox","title","concat","help","_jsxs","Box","sx","_defineProperty","fontSize","breakPoints","sm","display","flexFlow","href","target","rel","distributedSetup","useSelector","selDistSet","_useState","useState","_useState2","_slicedToArray","start","setStart","_useState3","_useState4","bucketName","setBucketName","_useState5","_useState6","bucketList","setBucketList","_useState7","_useState8","prefix","setPrefix","_useState9","_useState10","recursive","setRecursive","_useState11","_useState12","forceStart","setForceStart","_useState13","_useState14","forceStop","setForceStop","_useState15","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","_useState16","hStatus","setHStatus","useEffect","api","buckets","listBuckets","then","res","data","catch","err","console","error","errorToHandler","colorHealthArr","color","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","baseUrl","document","baseURI","pathname","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","log","send","onmessage","message","m","JSON","parse","_i","_Object$entries","Object","entries","healthAfterCols","length","_Object$entries$_i","key","value","itemsScanned","_i2","_Object$entries2","healthBeforeCols","_Object$entries2$_i","niceBytes","bytesScanned","onclose","close","name","ah","bh","amt","bucketNames","map","label","dispatch","useAppDispatch","setHelpName","Fragment","PageHeaderWrapper","actions","HelpMenu","PageLayout","SecureComponent","scopes","IAM_SCOPES","ADMIN_HEAL","resource","CONSOLE_UI_RESOURCE","withBorders","alignItems","marginBottom","gap","flexGrow","width","InputLabel","Select","id","onChange","options","placeholder","InputBox","disabled","e","Checkbox","checked","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","marginTop","listStyle","content","ResponsiveContainer","height","BarChart","margin","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Tooltip","Legend","verticalAlign","layout","className","Bar","fill","stroke","flexDirection","justifyContent","DistributedOnly","HealIcon","naiveFallback","self","Error","module","exports","this","globalThis","defineProperty","prototype","get","configurable","__global__","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","formatAxisMap","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","prop"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/191.1da33595.chunk.js b/portal-ui/build/static/js/191.1da33595.chunk.js new file mode 100644 index 000000000..c65d673b7 --- /dev/null +++ b/portal-ui/build/static/js/191.1da33595.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[191],{75578:(e,s,t)=>{t.d(s,{Z:()=>o});var r=t(72791),n=t(80184);const o=function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(t){return(0,n.jsx)(r.Suspense,{fallback:s,children:(0,n.jsx)(e,{...t})})}}},60191:(e,s,t)=>{t.r(s),t.d(s,{default:()=>G});var r=t(72791),n=t(57689),o=t(29945),l=t(31776),i=t(21639),c=t(23814),a=t(56087),d=t(38442),p=t(82342),u=t(75578),h=t(45248),x=t(87995),j=t(44690),m=t(27454),g=t(79844),f=t(99670),y=t(59114),C=t(80184);const b=(0,u.Z)(r.lazy((()=>t.e(8896).then(t.bind(t,88896))))),v=(0,u.Z)(r.lazy((()=>t.e(9134).then(t.bind(t,39134))))),G=()=>{const e=(0,j.TL)(),s=(0,n.s0)(),[t,u]=(0,r.useState)(!1),[G,k]=(0,r.useState)(!1),[A,S]=(0,r.useState)([]),[Z,F]=(0,r.useState)(""),[P,w]=(0,r.useState)(!1),[K,M]=(0,r.useState)([]);(0,r.useEffect)((()=>{k(!0)}),[]),(0,r.useEffect)((()=>{k(!0)}),[]),(0,r.useEffect)((()=>{e((0,x.Sc)("groups"))}),[]);const D=(0,d.F)(a.C3,a.vh),O=(0,d.F)(a.C3,a.oX),_=(0,d.F)(a.C3,a.k_),I=(0,d.F)(a.C3,a.fC,!0);(0,r.useEffect)((()=>{if(G)if(D){(()=>{l.h.groups.listGroups().then((e=>{let s=[];e.data.groups&&(s=e.data.groups.sort(i.V2)),S(s),k(!1)})).catch((s=>{e((0,x.Ih)((0,p.g)(s.error))),k(!1)}))})()}else k(!1)}),[G,e,D]);const R=A.filter((e=>e.includes(Z))),T=e=>{s("".concat(a.gA.GROUPS,"/").concat((0,h.LL)(e)))},z=[{type:"view",onClick:T,disableButtonFunction:()=>!_},{type:"edit",onClick:T,disableButtonFunction:()=>!_}];return(0,C.jsxs)(r.Fragment,{children:[t&&(0,C.jsx)(b,{deleteOpen:t,selectedGroups:K,closeDeleteModalAndRefresh:e=>{u(!1),M([]),e&&k(!0)}}),P&&(0,C.jsx)(v,{open:P,selectedGroups:K,selectedUser:null,closeModalAndRefresh:()=>{w(!1)}}),(0,C.jsx)(g.Z,{label:"Groups",actions:(0,C.jsx)(f.Z,{})}),(0,C.jsx)(o.Xgh,{children:(0,C.jsxs)(o.rjZ,{container:!0,children:[(0,C.jsxs)(o.rjZ,{item:!0,xs:12,sx:c.OR.actionsTray,children:[(0,C.jsx)(d.s,{resource:a.C3,scopes:a.vh,errorProps:{disabled:!0},children:(0,C.jsx)(y.Z,{placeholder:"Search Groups",onChange:F,value:Z,sx:{maxWidth:380}})}),(0,C.jsxs)(o.xuv,{sx:{display:"flex"},children:[(0,C.jsx)(d.s,{resource:a.C3,scopes:a.fC,matchAll:!0,errorProps:{disabled:!0},children:(0,C.jsx)(m.Z,{tooltip:K.length<1?"Please select Groups on which you want to apply Policies":I?"Select Policy":(0,a.MK)(a.fC,"apply policies to Groups"),children:(0,C.jsx)(o.zxk,{id:"assign-policy",onClick:()=>{w(!0)},label:"Assign Policy",icon:(0,C.jsx)(o.v42,{}),disabled:K.length<1||!I,variant:"regular"})})}),(0,C.jsx)(d.s,{resource:a.C3,scopes:a.oX,matchAll:!0,errorProps:{disabled:!0},children:(0,C.jsx)(m.Z,{tooltip:0===K.length?"Select Groups to delete":_?"Delete Selected":(0,a.MK)(a.k_,"delete Groups"),children:(0,C.jsx)(o.zxk,{id:"delete-selected-groups",onClick:()=>{u(!0)},label:"Delete Selected",icon:(0,C.jsx)(o.pJl,{}),variant:"secondary",disabled:0===K.length||!_})})}),(0,C.jsx)(d.s,{resource:a.C3,scopes:a.vN,matchAll:!0,errorProps:{disabled:!0},children:(0,C.jsx)(m.Z,{tooltip:"Create Group",children:(0,C.jsx)(o.zxk,{id:"create-group",label:"Create Group",variant:"callAction",icon:(0,C.jsx)(o.dtP,{}),onClick:()=>{s("".concat(a.gA.GROUPS_ADD))}})})})]})]}),G&&(0,C.jsx)(o.kod,{}),!G&&(0,C.jsxs)(r.Fragment,{children:[A.length>0&&(0,C.jsxs)(r.Fragment,{children:[(0,C.jsx)(o.rjZ,{item:!0,xs:12,sx:{marginBottom:15},children:(0,C.jsx)(d.s,{resource:a.C3,scopes:a.vh,errorProps:{disabled:!0},children:(0,C.jsx)(o.wQF,{itemActions:z,columns:[{label:"Name"}],isLoading:G,selectedItems:K,onSelect:O||_?e=>{const{target:{value:s="",checked:t=!1}={}}=e;let r=[...K];return t?r.push(s):r=r.filter((e=>e!==s)),M(r),r}:void 0,records:R,entityName:"Groups",idField:""})})}),(0,C.jsx)(o.rjZ,{item:!0,xs:12,children:(0,C.jsx)(o.KfX,{title:"Groups",iconComponent:(0,C.jsx)(o.wws,{}),help:(0,C.jsxs)(r.Fragment,{children:["A group can have one attached IAM policy, where all users with membership in that group inherit that policy. Groups support more simplified management of user permissions on the MinIO Tenant.",(0,C.jsx)("br",{}),(0,C.jsx)("br",{}),"You can learn more at our"," ",(0,C.jsx)("a",{href:"https://min.io/docs/minio/linux/administration/identity-access-management/minio-group-management.html?ref=con",target:"_blank",rel:"noopener",children:"documentation"}),"."]})})})]}),0===A.length&&(0,C.jsx)(o.rjZ,{container:!0,children:(0,C.jsx)(o.rjZ,{item:!0,xs:8,children:(0,C.jsx)(o.KfX,{title:"Groups",iconComponent:(0,C.jsx)(o.oyc,{}),help:(0,C.jsxs)(r.Fragment,{children:["A group can have one attached IAM policy, where all users with membership in that group inherit that policy. Groups support more simplified management of user permissions on the MinIO Tenant.",(0,C.jsxs)(d.s,{resource:a.C3,scopes:a.vN,matchAll:!0,children:[(0,C.jsx)("br",{}),(0,C.jsx)("br",{}),"To get started,"," ",(0,C.jsx)(o.vmT,{onClick:()=>{s("".concat(a.gA.GROUPS_ADD))},children:"Create a Group"}),"."]})]})})})})]})]})})]})}},21639:(e,s,t)=>{t.d(s,{KE:()=>l,LQ:()=>r,V2:()=>o,g4:()=>n});const r=(e,s)=>{if(e.accessKey&&s.accessKey){if(e.accessKey>s.accessKey)return 1;if(e.accessKeye.name>s.name?1:e.namee>s?1:ee.policy>s.policy?1:e.policy.\n\nimport React, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

(\n WrappedComponent: ComponentType

,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\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 { useNavigate } from \"react-router-dom\";\nimport {\n AddIcon,\n Button,\n DeleteIcon,\n GroupsIcon,\n HelpBox,\n IAMPoliciesIcon,\n PageLayout,\n UsersIcon,\n DataTable,\n Grid,\n Box,\n ProgressBar,\n ActionLink,\n} from \"mds\";\n\nimport { api } from \"api\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n applyPolicyPermissions,\n CONSOLE_UI_RESOURCE,\n createGroupPermissions,\n deleteGroupPermissions,\n displayGroupsPermissions,\n getGroupPermissions,\n IAM_PAGES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { errorToHandler } from \"../../../api/errors\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport SearchBox from \"../Common/SearchBox\";\n\nconst DeleteGroup = withSuspense(React.lazy(() => import(\"./DeleteGroup\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\")),\n);\n\nconst Groups = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [loading, isLoading] = useState(false);\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [policyOpen, setPolicyOpen] = useState(false);\n const [checkedGroups, setCheckedGroups] = useState([]);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n dispatch(setHelpName(\"groups\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n displayGroupsPermissions,\n );\n\n const deleteGroup = hasPermission(\n CONSOLE_UI_RESOURCE,\n deleteGroupPermissions,\n );\n\n const getGroup = hasPermission(CONSOLE_UI_RESOURCE, getGroupPermissions);\n\n const applyPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n applyPolicyPermissions,\n true,\n );\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const { target: { value = \"\", checked = false } = {} } = e;\n\n let elements: string[] = [...checkedGroups]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n\n setCheckedGroups(elements);\n\n return elements;\n };\n\n useEffect(() => {\n if (loading) {\n if (displayGroups) {\n const fetchRecords = () => {\n api.groups\n .listGroups()\n .then((res) => {\n let resGroups: string[] = [];\n if (res.data.groups) {\n resGroups = res.data.groups.sort(stringSort);\n }\n setRecords(resGroups);\n isLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n isLoading(false);\n });\n };\n fetchRecords();\n } else {\n isLoading(false);\n }\n }\n }, [loading, dispatch, displayGroups]);\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n setCheckedGroups([]);\n if (refresh) {\n isLoading(true);\n }\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.includes(filter),\n );\n\n const viewAction = (group: any) => {\n navigate(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n {\n type: \"edit\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n ];\n\n return (\n \n {deleteOpen && (\n \n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n }}\n />\n )}\n } />\n\n \n \n \n \n \n \n \n \n \n {\n setPolicyOpen(true);\n }}\n label={\"Assign Policy\"}\n icon={}\n disabled={checkedGroups.length < 1 || !applyPolicy}\n variant={\"regular\"}\n />\n \n \n \n \n {\n setDeleteOpen(true);\n }}\n label={\"Delete Selected\"}\n icon={}\n variant=\"secondary\"\n disabled={checkedGroups.length === 0 || !getGroup}\n />\n \n \n \n \n }\n onClick={() => {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n />\n \n \n \n \n {loading && }\n {!loading && (\n \n {records.length > 0 && (\n \n \n \n \n \n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n
\n
\n You can learn more at our{\" \"}\n \n documentation\n \n .\n
\n }\n />\n
\n
\n )}\n {records.length === 0 && (\n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n \n
\n
\n To get started,{\" \"}\n {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n >\n Create a Group\n \n .\n \n
\n }\n />\n
\n
\n )}\n
\n )}\n
\n
\n
\n );\n};\n\nexport default Groups;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["WrappedComponent","fallback","arguments","length","undefined","props","_jsx","Suspense","children","DeleteGroup","withSuspense","React","SetPolicy","Groups","dispatch","useAppDispatch","navigate","useNavigate","deleteOpen","setDeleteOpen","useState","loading","isLoading","records","setRecords","filter","setFilter","policyOpen","setPolicyOpen","checkedGroups","setCheckedGroups","useEffect","setHelpName","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","displayGroupsPermissions","deleteGroup","deleteGroupPermissions","getGroup","getGroupPermissions","applyPolicy","applyPolicyPermissions","fetchRecords","api","groups","listGroups","then","res","resGroups","data","sort","stringSort","catch","err","setErrorSnackMessage","errorToHandler","error","filteredRecords","elementItem","includes","viewAction","group","concat","IAM_PAGES","GROUPS","encodeURLString","tableActions","type","onClick","disableButtonFunction","_jsxs","Fragment","selectedGroups","closeDeleteModalAndRefresh","refresh","open","selectedUser","closeModalAndRefresh","PageHeaderWrapper","label","actions","HelpMenu","PageLayout","Grid","container","item","xs","sx","actionsTray","SecureComponent","resource","scopes","errorProps","disabled","SearchBox","placeholder","onChange","value","maxWidth","Box","display","matchAll","TooltipWrapper","tooltip","permissionTooltipHelper","Button","id","icon","IAMPoliciesIcon","variant","DeleteIcon","createGroupPermissions","AddIcon","GROUPS_ADD","ProgressBar","marginBottom","DataTable","itemActions","columns","selectedItems","onSelect","e","target","checked","elements","push","element","entityName","idField","HelpBox","title","iconComponent","GroupsIcon","help","href","rel","UsersIcon","ActionLink","usersSort","a","b","accessKey","policySort","name","policyDetailsSort","policy"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/191.d24fde8f.chunk.js b/portal-ui/build/static/js/191.d24fde8f.chunk.js deleted file mode 100644 index 5cd8c20ae..000000000 --- a/portal-ui/build/static/js/191.d24fde8f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[191],{75578:function(e,n,t){var s=t(1413),r=t(72791),o=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(t){return(0,o.jsx)(r.Suspense,{fallback:n,children:(0,o.jsx)(e,(0,s.Z)({},t))})}}},60191:function(e,n,t){t.r(n);var s=t(93433),r=t(29439),o=t(72791),i=t(57689),c=t(29945),l=t(31776),a=t(21639),u=t(23814),d=t(56087),p=t(38442),h=t(82342),f=t(75578),x=t(45248),j=t(87995),m=t(44690),g=t(27454),v=t(47974),y=t(99670),C=t(59114),b=t(80184),Z=(0,f.Z)(o.lazy((function(){return t.e(8896).then(t.bind(t,88896))}))),G=(0,f.Z)(o.lazy((function(){return t.e(9134).then(t.bind(t,39134))})));n.default=function(){var e=(0,m.TL)(),n=(0,i.s0)(),t=(0,o.useState)(!1),f=(0,r.Z)(t,2),k=f[0],A=f[1],S=(0,o.useState)(!1),F=(0,r.Z)(S,2),P=F[0],w=F[1],K=(0,o.useState)([]),M=(0,r.Z)(K,2),D=M[0],O=M[1],_=(0,o.useState)(""),I=(0,r.Z)(_,2),R=I[0],T=I[1],z=(0,o.useState)(!1),E=(0,r.Z)(z,2),L=E[0],X=E[1],N=(0,o.useState)([]),U=(0,r.Z)(N,2),B=U[0],Q=U[1];(0,o.useEffect)((function(){w(!0)}),[]),(0,o.useEffect)((function(){w(!0)}),[]),(0,o.useEffect)((function(){e((0,j.Sc)("groups"))}),[]);var V=(0,p.F)(d.C3,d.vh),J=(0,p.F)(d.C3,d.oX),W=(0,p.F)(d.C3,d.k_),Y=(0,p.F)(d.C3,d.fC,!0);(0,o.useEffect)((function(){if(P)if(V){l.h.groups.listGroups().then((function(e){var n=[];e.data.groups&&(n=e.data.groups.sort(a.V2)),O(n),w(!1)})).catch((function(n){e((0,j.Ih)((0,h.g)(n.error))),w(!1)}))}else w(!1)}),[P,e,V]);var q=D.filter((function(e){return e.includes(R)})),H=function(e){n("".concat(d.gA.GROUPS,"/").concat((0,x.LL)(e)))},$=[{type:"view",onClick:H,disableButtonFunction:function(){return!W}},{type:"edit",onClick:H,disableButtonFunction:function(){return!W}}];return(0,b.jsxs)(o.Fragment,{children:[k&&(0,b.jsx)(Z,{deleteOpen:k,selectedGroups:B,closeDeleteModalAndRefresh:function(e){A(!1),Q([]),e&&w(!0)}}),L&&(0,b.jsx)(G,{open:L,selectedGroups:B,selectedUser:null,closeModalAndRefresh:function(){X(!1)}}),(0,b.jsx)(v.Z,{label:"Groups",actions:(0,b.jsx)(y.Z,{})}),(0,b.jsx)(c.Xgh,{children:(0,b.jsxs)(c.rjZ,{container:!0,children:[(0,b.jsxs)(c.rjZ,{item:!0,xs:12,sx:u.OR.actionsTray,children:[(0,b.jsx)(p.s,{resource:d.C3,scopes:d.vh,errorProps:{disabled:!0},children:(0,b.jsx)(C.Z,{placeholder:"Search Groups",onChange:T,value:R,sx:{maxWidth:380}})}),(0,b.jsxs)(c.xuv,{sx:{display:"flex"},children:[(0,b.jsx)(p.s,{resource:d.C3,scopes:d.fC,matchAll:!0,errorProps:{disabled:!0},children:(0,b.jsx)(g.Z,{tooltip:B.length<1?"Please select Groups on which you want to apply Policies":Y?"Select Policy":(0,d.MK)(d.fC,"apply policies to Groups"),children:(0,b.jsx)(c.zxk,{id:"assign-policy",onClick:function(){X(!0)},label:"Assign Policy",icon:(0,b.jsx)(c.v42,{}),disabled:B.length<1||!Y,variant:"regular"})})}),(0,b.jsx)(p.s,{resource:d.C3,scopes:d.oX,matchAll:!0,errorProps:{disabled:!0},children:(0,b.jsx)(g.Z,{tooltip:0===B.length?"Select Groups to delete":W?"Delete Selected":(0,d.MK)(d.k_,"delete Groups"),children:(0,b.jsx)(c.zxk,{id:"delete-selected-groups",onClick:function(){A(!0)},label:"Delete Selected",icon:(0,b.jsx)(c.pJl,{}),variant:"secondary",disabled:0===B.length||!W})})}),(0,b.jsx)(p.s,{resource:d.C3,scopes:d.vN,matchAll:!0,errorProps:{disabled:!0},children:(0,b.jsx)(g.Z,{tooltip:"Create Group",children:(0,b.jsx)(c.zxk,{id:"create-group",label:"Create Group",variant:"callAction",icon:(0,b.jsx)(c.dtP,{}),onClick:function(){n("".concat(d.gA.GROUPS_ADD))}})})})]})]}),P&&(0,b.jsx)(c.kod,{}),!P&&(0,b.jsxs)(o.Fragment,{children:[D.length>0&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(c.rjZ,{item:!0,xs:12,sx:{marginBottom:15},children:(0,b.jsx)(p.s,{resource:d.C3,scopes:d.vh,errorProps:{disabled:!0},children:(0,b.jsx)(c.wQF,{itemActions:$,columns:[{label:"Name"}],isLoading:P,selectedItems:B,onSelect:J||W?function(e){var n=e.target,t=void 0===n?{}:n,r=t.value,o=void 0===r?"":r,i=t.checked,c=void 0!==i&&i,l=(0,s.Z)(B);return c?l.push(o):l=l.filter((function(e){return e!==o})),Q(l),l}:void 0,records:q,entityName:"Groups",idField:""})})}),(0,b.jsx)(c.rjZ,{item:!0,xs:12,children:(0,b.jsx)(c.KfX,{title:"Groups",iconComponent:(0,b.jsx)(c.wws,{}),help:(0,b.jsxs)(o.Fragment,{children:["A group can have one attached IAM policy, where all users with membership in that group inherit that policy. Groups support more simplified management of user permissions on the MinIO Tenant.",(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),"You can learn more at our"," ",(0,b.jsx)("a",{href:"https://min.io/docs/minio/linux/administration/identity-access-management/minio-group-management.html?ref=con",target:"_blank",rel:"noopener",children:"documentation"}),"."]})})})]}),0===D.length&&(0,b.jsx)(c.rjZ,{container:!0,children:(0,b.jsx)(c.rjZ,{item:!0,xs:8,children:(0,b.jsx)(c.KfX,{title:"Groups",iconComponent:(0,b.jsx)(c.oyc,{}),help:(0,b.jsxs)(o.Fragment,{children:["A group can have one attached IAM policy, where all users with membership in that group inherit that policy. Groups support more simplified management of user permissions on the MinIO Tenant.",(0,b.jsxs)(p.s,{resource:d.C3,scopes:d.vN,matchAll:!0,children:[(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),"To get started,"," ",(0,b.jsx)(c.vmT,{onClick:function(){n("".concat(d.gA.GROUPS_ADD))},children:"Create a Group"}),"."]})]})})})})]})]})})]})}},21639:function(e,n,t){t.d(n,{KE:function(){return i},LQ:function(){return s},V2:function(){return o},g4:function(){return r}});var s=function(e,n){if(e.accessKey&&n.accessKey){if(e.accessKey>n.accessKey)return 1;if(e.accessKeyn.name?1:e.namen?1:en.policy?1:e.policy.\n\nimport React, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

(\n WrappedComponent: ComponentType

,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\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 { useNavigate } from \"react-router-dom\";\nimport {\n AddIcon,\n Button,\n DeleteIcon,\n GroupsIcon,\n HelpBox,\n IAMPoliciesIcon,\n PageLayout,\n UsersIcon,\n DataTable,\n Grid,\n Box,\n ProgressBar,\n ActionLink,\n} from \"mds\";\n\nimport { api } from \"api\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport { actionsTray } from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n applyPolicyPermissions,\n CONSOLE_UI_RESOURCE,\n createGroupPermissions,\n deleteGroupPermissions,\n displayGroupsPermissions,\n getGroupPermissions,\n IAM_PAGES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { errorToHandler } from \"../../../api/errors\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport SearchBox from \"../Common/SearchBox\";\n\nconst DeleteGroup = withSuspense(React.lazy(() => import(\"./DeleteGroup\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\")),\n);\n\nconst Groups = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [loading, isLoading] = useState(false);\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [policyOpen, setPolicyOpen] = useState(false);\n const [checkedGroups, setCheckedGroups] = useState([]);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n dispatch(setHelpName(\"groups\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n displayGroupsPermissions,\n );\n\n const deleteGroup = hasPermission(\n CONSOLE_UI_RESOURCE,\n deleteGroupPermissions,\n );\n\n const getGroup = hasPermission(CONSOLE_UI_RESOURCE, getGroupPermissions);\n\n const applyPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n applyPolicyPermissions,\n true,\n );\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const { target: { value = \"\", checked = false } = {} } = e;\n\n let elements: string[] = [...checkedGroups]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n\n setCheckedGroups(elements);\n\n return elements;\n };\n\n useEffect(() => {\n if (loading) {\n if (displayGroups) {\n const fetchRecords = () => {\n api.groups\n .listGroups()\n .then((res) => {\n let resGroups: string[] = [];\n if (res.data.groups) {\n resGroups = res.data.groups.sort(stringSort);\n }\n setRecords(resGroups);\n isLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n isLoading(false);\n });\n };\n fetchRecords();\n } else {\n isLoading(false);\n }\n }\n }, [loading, dispatch, displayGroups]);\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n setCheckedGroups([]);\n if (refresh) {\n isLoading(true);\n }\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.includes(filter),\n );\n\n const viewAction = (group: any) => {\n navigate(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n {\n type: \"edit\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n ];\n\n return (\n \n {deleteOpen && (\n \n )}\n {policyOpen && (\n {\n setPolicyOpen(false);\n }}\n />\n )}\n } />\n\n \n \n \n \n \n \n \n \n \n {\n setPolicyOpen(true);\n }}\n label={\"Assign Policy\"}\n icon={}\n disabled={checkedGroups.length < 1 || !applyPolicy}\n variant={\"regular\"}\n />\n \n \n \n \n {\n setDeleteOpen(true);\n }}\n label={\"Delete Selected\"}\n icon={}\n variant=\"secondary\"\n disabled={checkedGroups.length === 0 || !getGroup}\n />\n \n \n \n \n }\n onClick={() => {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n />\n \n \n \n \n {loading && }\n {!loading && (\n \n {records.length > 0 && (\n \n \n \n \n \n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n
\n
\n You can learn more at our{\" \"}\n \n documentation\n \n .\n
\n }\n />\n
\n
\n )}\n {records.length === 0 && (\n \n \n }\n help={\n \n A group can have one attached IAM policy, where all\n users with membership in that group inherit that\n policy. Groups support more simplified management of\n user permissions on the MinIO Tenant.\n \n
\n
\n To get started,{\" \"}\n {\n navigate(`${IAM_PAGES.GROUPS_ADD}`);\n }}\n >\n Create a Group\n \n .\n \n
\n }\n />\n
\n
\n )}\n
\n )}\n
\n
\n
\n );\n};\n\nexport default Groups;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["WrappedComponent","fallback","arguments","length","undefined","props","_jsx","Suspense","children","_objectSpread","DeleteGroup","withSuspense","React","SetPolicy","dispatch","useAppDispatch","navigate","useNavigate","_useState","useState","_useState2","_slicedToArray","deleteOpen","setDeleteOpen","_useState3","_useState4","loading","isLoading","_useState5","_useState6","records","setRecords","_useState7","_useState8","filter","setFilter","_useState9","_useState10","policyOpen","setPolicyOpen","_useState11","_useState12","checkedGroups","setCheckedGroups","useEffect","setHelpName","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","displayGroupsPermissions","deleteGroup","deleteGroupPermissions","getGroup","getGroupPermissions","applyPolicy","applyPolicyPermissions","api","groups","listGroups","then","res","resGroups","data","sort","stringSort","catch","err","setErrorSnackMessage","errorToHandler","error","filteredRecords","elementItem","includes","viewAction","group","concat","IAM_PAGES","GROUPS","encodeURLString","tableActions","type","onClick","disableButtonFunction","_jsxs","Fragment","selectedGroups","closeDeleteModalAndRefresh","refresh","open","selectedUser","closeModalAndRefresh","PageHeaderWrapper","label","actions","HelpMenu","PageLayout","Grid","container","item","xs","sx","actionsTray","SecureComponent","resource","scopes","errorProps","disabled","SearchBox","placeholder","onChange","value","maxWidth","Box","display","matchAll","TooltipWrapper","tooltip","permissionTooltipHelper","Button","id","icon","IAMPoliciesIcon","variant","DeleteIcon","createGroupPermissions","AddIcon","GROUPS_ADD","ProgressBar","marginBottom","DataTable","itemActions","columns","selectedItems","onSelect","e","_e$target","target","_e$target2","_e$target2$value","_e$target2$checked","checked","elements","_toConsumableArray","push","element","entityName","idField","HelpBox","title","iconComponent","GroupsIcon","help","href","rel","UsersIcon","ActionLink","usersSort","a","b","accessKey","policySort","name","policyDetailsSort","policy"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2032.64ae0f99.chunk.js b/portal-ui/build/static/js/2032.64ae0f99.chunk.js deleted file mode 100644 index c4da1b6dd..000000000 --- a/portal-ui/build/static/js/2032.64ae0f99.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2032],{62032:function(e,t,n){n.r(t);var r=n(29439),a=n(72791),i=n(29945),o=n(87995),s=n(44690),l=n(9505),c=n(23508),u=n(80184);t.default=function(e){var t=e.closeDeleteModalAndRefresh,n=e.deleteOpen,d=e.selectedItem,f=e.endpoint,h=e.element,p=(0,s.TL)(),x=(0,l.Z)((function(){return t(!0)}),(function(e){return p((0,o.Ih)(e))})),m=(0,r.Z)(x,2),j=m[0],b=m[1],y=(0,a.useState)(""),g=(0,r.Z)(y,2),k=g[0],v=g[1];if(!d)return null;return(0,u.jsx)(c.Z,{title:"Delete ".concat(h),confirmText:"Delete",isOpen:n,titleIcon:(0,u.jsx)(i.NvT,{}),isLoading:j,onConfirm:function(){b("DELETE","".concat(f).concat(d))},onClose:function(){return t(!1)},confirmButtonProps:{disabled:k!==d||j},confirmationContent:(0,u.jsxs)(a.Fragment,{children:[(0,u.jsx)(i.rjZ,{item:!0,xs:12,children:(0,u.jsx)(i.J6i,{variant:"error",title:"WARNING",message:"Please note that this is a dangerous operation. Once a key has been deleted all data that has been encrypted with it cannot be decrypted anymore, and therefore, is lost.",sx:{margin:"15px 0"}})}),"To continue please type ",(0,u.jsx)("b",{children:d})," in the box.",(0,u.jsx)(i.rjZ,{item:!0,xs:12,children:(0,u.jsx)(i.Wzg,{id:"retype-key",name:"retype-key",onChange:function(e){v(e.target.value)},onPaste:function(e){return e.preventDefault()},label:"",value:k})})]})})}}}]); -//# sourceMappingURL=2032.64ae0f99.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2032.64ae0f99.chunk.js.map b/portal-ui/build/static/js/2032.64ae0f99.chunk.js.map deleted file mode 100644 index 646a989de..000000000 --- a/portal-ui/build/static/js/2032.64ae0f99.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2032.64ae0f99.chunk.js","mappings":"+MAmGA,UAnEuB,SAAHA,GAMS,IAL3BC,EAA0BD,EAA1BC,2BACAC,EAAUF,EAAVE,WACAC,EAAYH,EAAZG,aACAC,EAAQJ,EAARI,SACAC,EAAOL,EAAPK,QAEMC,GAAWC,EAAAA,EAAAA,MAMjBC,GAAyCC,EAAAA,EAAAA,IALpB,WAAH,OAASR,GAA2B,EAAM,IACzC,SAACS,GAAyB,OAC3CJ,GAASK,EAAAA,EAAAA,IAAqBD,GAAM,IAGmCE,GAAAC,EAAAA,EAAAA,GAAAL,EAAA,GAAlEM,EAAaF,EAAA,GAAEG,EAAeH,EAAA,GACrCI,GAAkCC,EAAAA,EAAAA,UAAS,IAAGC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAvCG,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAE9B,IAAKf,EACH,OAAO,KAOT,OACEkB,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,UAAAC,OAAYnB,GACjBoB,YAAa,SACbC,OAAQxB,EACRyB,WAAWN,EAAAA,EAAAA,KAACO,EAAAA,IAAiB,IAC7BC,UAAWf,EACXgB,UAXoB,WACtBf,EAAgB,SAAS,GAADS,OAAKpB,GAAQoB,OAAGrB,GAC1C,EAUI4B,QArBY,WAAH,OAAS9B,GAA2B,EAAO,EAsBpD+B,mBAAoB,CAClBC,SAAUd,IAAchB,GAAgBW,GAE1CoB,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,EACPhB,EAAAA,EAAAA,KAACiB,EAAAA,IAAI,CAACC,MAAI,EAACC,GAAI,GAAGH,UAChBhB,EAAAA,EAAAA,KAACoB,EAAAA,IAAkB,CACjBC,QAAS,QACTnB,MAAO,UACPoB,QACE,4KAEFC,GAAI,CAAEC,OAAQ,cAEX,4BACiBxB,EAAAA,EAAAA,KAAA,KAAAgB,SAAIlC,IAAiB,gBAC7CkB,EAAAA,EAAAA,KAACiB,EAAAA,IAAI,CAACC,MAAI,EAACC,GAAI,GAAGH,UAChBhB,EAAAA,EAAAA,KAACyB,EAAAA,IAAQ,CACPC,GAAG,aACHC,KAAK,aACLC,SAAU,SAACC,GACT9B,EAAa8B,EAAMC,OAAOC,MAC5B,EACAC,QAAS,SAACC,GAAC,OAAKA,EAAEC,gBAAgB,EAClCC,MAAM,GACNJ,MAAOjC,UAOrB,C","sources":["screens/Console/KMS/DeleteKMSModal.tsx"],"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 .\n\nimport React, { useState, Fragment } from \"react\";\nimport { ConfirmDeleteIcon, Grid, InformativeMessage, InputBox } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteKMSModalProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedItem: string;\n endpoint: string;\n element: string;\n}\n\nconst DeleteKMSModal = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedItem,\n endpoint,\n element,\n}: IDeleteKMSModalProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [retypeKey, setRetypeKey] = useState(\"\");\n\n if (!selectedItem) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `${endpoint}${selectedItem}`);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypeKey !== selectedItem || deleteLoading,\n }}\n confirmationContent={\n \n \n \n \n To continue please type {selectedItem} in the box.\n \n ) => {\n setRetypeKey(event.target.value);\n }}\n onPaste={(e) => e.preventDefault()}\n label=\"\"\n value={retypeKey}\n />\n \n \n }\n />\n );\n};\n\nexport default DeleteKMSModal;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedItem","endpoint","element","dispatch","useAppDispatch","_useApi","useApi","err","setErrorSnackMessage","_useApi2","_slicedToArray","deleteLoading","invokeDeleteApi","_useState","useState","_useState2","retypeKey","setRetypeKey","_jsx","ConfirmDialog","title","concat","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onClose","confirmButtonProps","disabled","confirmationContent","_jsxs","Fragment","children","Grid","item","xs","InformativeMessage","variant","message","sx","margin","InputBox","id","name","onChange","event","target","value","onPaste","e","preventDefault","label"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2032.79310ed7.chunk.js b/portal-ui/build/static/js/2032.79310ed7.chunk.js new file mode 100644 index 000000000..4a46bfc8f --- /dev/null +++ b/portal-ui/build/static/js/2032.79310ed7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2032],{62032:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});var a=n(72791),s=n(29945),r=n(87995),o=n(44690),l=n(9505),i=n(23508),c=n(80184);const d=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedItem:d,endpoint:h,element:p}=e;const u=(0,o.TL)(),[x,m]=(0,l.Z)((()=>t(!0)),(e=>u((0,r.Ih)(e)))),[f,j]=(0,a.useState)("");if(!d)return null;return(0,c.jsx)(i.Z,{title:"Delete ".concat(p),confirmText:"Delete",isOpen:n,titleIcon:(0,c.jsx)(s.NvT,{}),isLoading:x,onConfirm:()=>{m("DELETE","".concat(h).concat(d))},onClose:()=>t(!1),confirmButtonProps:{disabled:f!==d||x},confirmationContent:(0,c.jsxs)(a.Fragment,{children:[(0,c.jsx)(s.rjZ,{item:!0,xs:12,children:(0,c.jsx)(s.J6i,{variant:"error",title:"WARNING",message:"Please note that this is a dangerous operation. Once a key has been deleted all data that has been encrypted with it cannot be decrypted anymore, and therefore, is lost.",sx:{margin:"15px 0"}})}),"To continue please type ",(0,c.jsx)("b",{children:d})," in the box.",(0,c.jsx)(s.rjZ,{item:!0,xs:12,children:(0,c.jsx)(s.Wzg,{id:"retype-key",name:"retype-key",onChange:e=>{j(e.target.value)},onPaste:e=>e.preventDefault(),label:"",value:f})})]})})}}}]); +//# sourceMappingURL=2032.79310ed7.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2032.79310ed7.chunk.js.map b/portal-ui/build/static/js/2032.79310ed7.chunk.js.map new file mode 100644 index 000000000..2fa49cb81 --- /dev/null +++ b/portal-ui/build/static/js/2032.79310ed7.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2032.79310ed7.chunk.js","mappings":"qNAgCA,MAmEA,EAnEuBA,IAMM,IANL,2BACtBC,EAA0B,WAC1BC,EAAU,aACVC,EAAY,SACZC,EAAQ,QACRC,GACqBL,EACrB,MAAMM,GAAWC,EAAAA,EAAAA,OAMVC,EAAeC,IAAmBC,EAAAA,EAAAA,IALpBC,IAAMV,GAA2B,KAClCW,GAClBN,GAASO,EAAAA,EAAAA,IAAqBD,OAIzBE,EAAWC,IAAgBC,EAAAA,EAAAA,UAAS,IAE3C,IAAKb,EACH,OAAO,KAOT,OACEc,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,UAAAC,OAAYf,GACjBgB,YAAa,SACbC,OAAQpB,EACRqB,WAAWN,EAAAA,EAAAA,KAACO,EAAAA,IAAiB,IAC7BC,UAAWjB,EACXkB,UAXoBC,KACtBlB,EAAgB,SAAS,GAADW,OAAKhB,GAAQgB,OAAGjB,GAAe,EAWrDyB,QArBYA,IAAM3B,GAA2B,GAsB7C4B,mBAAoB,CAClBC,SAAUhB,IAAcX,GAAgBK,GAE1CuB,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,EACPjB,EAAAA,EAAAA,KAACkB,EAAAA,IAAI,CAACC,MAAI,EAACC,GAAI,GAAGH,UAChBjB,EAAAA,EAAAA,KAACqB,EAAAA,IAAkB,CACjBC,QAAS,QACTpB,MAAO,UACPqB,QACE,4KAEFC,GAAI,CAAEC,OAAQ,cAEX,4BACiBzB,EAAAA,EAAAA,KAAA,KAAAiB,SAAI/B,IAAiB,gBAC7Cc,EAAAA,EAAAA,KAACkB,EAAAA,IAAI,CAACC,MAAI,EAACC,GAAI,GAAGH,UAChBjB,EAAAA,EAAAA,KAAC0B,EAAAA,IAAQ,CACPC,GAAG,aACHC,KAAK,aACLC,SAAWC,IACThC,EAAagC,EAAMC,OAAOC,MAAM,EAElCC,QAAUC,GAAMA,EAAEC,iBAClBC,MAAM,GACNJ,MAAOnC,UAKf,C","sources":["screens/Console/KMS/DeleteKMSModal.tsx"],"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 .\n\nimport React, { useState, Fragment } from \"react\";\nimport { ConfirmDeleteIcon, Grid, InformativeMessage, InputBox } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteKMSModalProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedItem: string;\n endpoint: string;\n element: string;\n}\n\nconst DeleteKMSModal = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedItem,\n endpoint,\n element,\n}: IDeleteKMSModalProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [retypeKey, setRetypeKey] = useState(\"\");\n\n if (!selectedItem) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `${endpoint}${selectedItem}`);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypeKey !== selectedItem || deleteLoading,\n }}\n confirmationContent={\n \n \n \n \n To continue please type {selectedItem} in the box.\n \n ) => {\n setRetypeKey(event.target.value);\n }}\n onPaste={(e) => e.preventDefault()}\n label=\"\"\n value={retypeKey}\n />\n \n \n }\n />\n );\n};\n\nexport default DeleteKMSModal;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedItem","endpoint","element","dispatch","useAppDispatch","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","retypeKey","setRetypeKey","useState","_jsx","ConfirmDialog","title","concat","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","onClose","confirmButtonProps","disabled","confirmationContent","_jsxs","Fragment","children","Grid","item","xs","InformativeMessage","variant","message","sx","margin","InputBox","id","name","onChange","event","target","value","onPaste","e","preventDefault","label"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2074.1f0d525f.chunk.js b/portal-ui/build/static/js/2074.1f0d525f.chunk.js deleted file mode 100644 index 630d74169..000000000 --- a/portal-ui/build/static/js/2074.1f0d525f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2074,8896,9134],{88896:function(e,n,t){t.r(n);var s=t(37762),i=t(29439),r=t(72791),l=t(29945),o=t(45248),c=t(87995),a=t(44690),u=t(23508),d=t(9505),x=t(80184);n.default=function(e){var n=e.selectedGroups,t=e.deleteOpen,f=e.closeDeleteModalAndRefresh,h=(0,a.TL)(),p=(0,d.Z)((function(){return f(!0)}),(function(e){h((0,c.Ih)(e)),f(!1)})),m=(0,i.Z)(p,2),j=m[0],v=m[1];if(!n)return null;var g=n.map((function(e){return(0,x.jsx)("div",{children:(0,x.jsx)("b",{children:e})},e)}));return(0,x.jsx)(u.Z,{title:"Delete Group".concat(n.length>1?"s":""),confirmText:"Delete",isOpen:t,titleIcon:(0,x.jsx)(l.NvT,{}),isLoading:j,onConfirm:function(){var e,t=(0,s.Z)(n);try{for(t.s();!(e=t.n()).done;){var i=e.value;v("DELETE","/api/v1/group/".concat((0,o.LL)(i)))}}catch(r){t.e(r)}finally{t.f()}},onClose:function(){return f(!1)},confirmationContent:(0,x.jsxs)(r.Fragment,{children:["Are you sure you want to delete the following"," ",1===n.length?"":n.length," group",n.length>1?"s?":"?",g]})})}},22074:function(e,n,t){t.r(n),t.d(n,{default:function(){return L},formatPolicy:function(){return P}});var s=t(29439),i=t(72791),r=t(57689),l=t(29945),o=t(31776),c=t(82342),a=t(56087),u=t(38442),d=t(45248),x=t(87995),f=t(44690),h=t(74616),p=t(39134),m=t(23814),j=t(40228),v=t(56028),g=t(80184),b=function(e){var n=e.title,t=void 0===n?"":n,r=e.groupStatus,a=void 0===r?"enabled":r,u=e.preSelectedUsers,h=void 0===u?[]:u,p=e.selectedGroup,b=void 0===p?"":p,Z=e.open,y=e.onClose,S=(0,f.TL)(),C=(0,i.useState)(h),k=(0,s.Z)(C,2),P=k[0],L=k[1];return(0,g.jsxs)(v.Z,{modalOpen:Z,onClose:y,title:t,titleIcon:(0,g.jsx)(l.ZmA,{}),children:[(0,g.jsxs)(l.ltY,{withBorders:!1,containerPadding:!1,children:[(0,g.jsx)(l.bSr,{label:"Selected Group",sx:{width:"100%"},children:b}),(0,g.jsx)(j.Z,{selectedUsers:P,setSelectedUsers:L,editMode:!b})]}),(0,g.jsxs)(l.rjZ,{item:!0,xs:12,sx:m.ID.modalButtonBar,children:[(0,g.jsx)(l.zxk,{id:"reset-add-group-member",type:"button",variant:"regular",onClick:function(){L(h)},label:"Reset"}),(0,g.jsx)(l.zxk,{id:"save-add-group-member",type:"button",variant:"callAction",onClick:function(){o.h.group.updateGroup((0,d.LL)(b),{members:P,status:a}).then((function(){y()})).catch((function(e){y(),S((0,x.zb)((0,c.g)(e.error)))}))},label:"Save"})]})]})},Z=t(88896),y=t(59114),S=t(27454),C=t(99670),k=t(47974),P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.length<=0?[]:e.split(",")},L=function(){var e=(0,f.TL)(),n=(0,r.s0)(),t=(0,r.UO)(),m=(0,i.useState)({}),j=(0,s.Z)(m,2),v=j[0],L=j[1],A=(0,i.useState)(!1),U=(0,s.Z)(A,2),w=U[0],G=U[1],F=(0,i.useState)(!1),K=(0,s.Z)(F,2),M=K[0],E=K[1],I=(0,i.useState)(!1),z=(0,s.Z)(I,2),N=z[0],T=z[1],D=(0,i.useState)(""),O=(0,s.Z)(D,2),B=O[0],R=O[1],Q=(0,i.useState)("members"),_=(0,s.Z)(Q,2),H=_[0],W=_[1],X=(0,d.IO)(t.groupName||""),Y=v.members,J=void 0===Y?[]:Y,V=v.policy,q=void 0===V?"":V,$=v.status,ee=J.filter((function(e){return e.includes(B)})),ne=(0,u.F)(a.C3,a.iw,!0);(0,i.useEffect)((function(){e((0,x.Sc)("group_details"))}),[]),(0,i.useEffect)((function(){X&&ae()}),[X]);var te=P(q),se="enabled"===$,ie=J.length>0?"Edit Members":"Add Members",re=(0,u.F)(a.C3,a.k_),le=(0,u.F)(a.C3,a.kt,!0),oe=(0,u.F)(a.C3,a.UA,!0),ce=(0,u.F)(a.C3,a.GD,!0);function ae(){re&&o.h.group.groupInfo((0,d.LL)(X)).then((function(e){L(e.data)})).catch((function(n){e((0,x.zb)((0,c.g)(n.error))),L({})}))}var ue=(0,g.jsxs)(l.xuv,{onMouseMove:function(){e((0,x.Sc)("groups_members"))},children:[(0,g.jsx)(l.NZf,{separator:!0,sx:{marginBottom:15},actions:(0,g.jsxs)(l.xuv,{sx:{display:"flex",gap:10},children:[(0,g.jsx)(y.Z,{placeholder:"Search members",onChange:function(e){R(e)},value:B,sx:{maxWidth:280}}),(0,g.jsx)(u.s,{resource:a.C3,scopes:a.uH,errorProps:{disabled:!0},children:(0,g.jsx)(S.Z,{tooltip:le?ie:(0,a.MK)(a.vN,"edit Group membership"),children:(0,g.jsx)(l.zxk,{id:"add-user-group",label:ie,variant:"callAction",icon:(0,g.jsx)(l.dtP,{}),onClick:function(){E(!0)},disabled:!le})})})]}),children:"Members"}),(0,g.jsx)(l.rjZ,{item:!0,xs:12,children:(0,g.jsx)(u.s,{resource:a.C3,scopes:a.Rs,errorProps:{disabled:!0},children:(0,g.jsx)(S.Z,{tooltip:ne?"":(0,a.MK)(a.iw,"view User details"),children:(0,g.jsx)(l.wQF,{itemActions:[{type:"view",onClick:function(e){n("".concat(a.gA.USERS,"/").concat((0,d.LL)(e)))},isDisabled:!ne}],columns:[{label:"Access Key"}],selectedItems:[],isLoading:!1,records:ee,entityName:"Users"})})})})]}),de=(0,g.jsxs)(i.Fragment,{children:[(0,g.jsx)(l.xuv,{onMouseMove:function(){e((0,x.Sc)("groups_policies"))},children:(0,g.jsx)(l.NZf,{separator:!0,sx:{marginBottom:15},actions:(0,g.jsx)(S.Z,{tooltip:oe?"Set Policies":(0,a.MK)(a.UA,"assign Policies"),children:(0,g.jsx)(l.zxk,{id:"set-policies",label:"Set Policies",variant:"callAction",icon:(0,g.jsx)(l.v42,{}),onClick:function(){G(!0)},disabled:!oe})}),children:"Policies"})}),(0,g.jsx)(l.rjZ,{item:!0,xs:12,children:(0,g.jsx)(S.Z,{tooltip:ce?"":(0,a.MK)(a.GD,"view Policy details"),children:(0,g.jsx)(l.wQF,{itemActions:[{type:"view",onClick:function(e){n("".concat(a.gA.POLICIES,"/").concat((0,d.LL)(e)))},isDisabled:!ce}],columns:[{label:"Policy"}],isLoading:!1,records:te,entityName:"Policies"})})})]});return(0,g.jsxs)(i.Fragment,{children:[w?(0,g.jsx)(p.default,{open:w,selectedGroups:[X],selectedUser:null,closeModalAndRefresh:function(){G(!1),ae(),e((0,h.ue)([]))}}):null,M?(0,g.jsx)(b,{selectedGroup:X,onSaveClick:function(){},title:ie,groupStatus:$,preSelectedUsers:J,open:M,onClose:function(){E(!1),ae()}}):null,N&&(0,g.jsx)(Z.default,{deleteOpen:N,selectedGroups:[X],closeDeleteModalAndRefresh:function(e){T(!1),e&&n(a.gA.GROUPS)}}),(0,g.jsx)(k.Z,{label:(0,g.jsx)(i.Fragment,{children:(0,g.jsx)(l.hbI,{label:"Groups",onClick:function(){return n(a.gA.GROUPS)}})}),actions:(0,g.jsx)(C.Z,{})}),(0,g.jsxs)(l.Xgh,{children:[(0,g.jsx)(l.rjZ,{item:!0,xs:12,children:(0,g.jsx)(l.UHn,{icon:(0,g.jsx)(i.Fragment,{children:(0,g.jsx)(l.wws,{width:40})}),title:X,subTitle:null,bottomBorder:!0,actions:(0,g.jsxs)(l.xuv,{sx:{display:"flex",fontSize:14,alignItems:"center",gap:15},children:[(0,g.jsx)("span",{children:"Group Status:"}),(0,g.jsx)("span",{id:"group-status-label",style:{fontWeight:"bold"},children:se?"Enabled":"Disabled"}),(0,g.jsx)(S.Z,{tooltip:(0,u.F)(a.C3,a.xh,!0)?"":(0,a.MK)(a.xh,"enable or disable Groups"),children:(0,g.jsx)(u.s,{resource:a.C3,scopes:a.xh,errorProps:{disabled:!0},matchAll:!0,children:(0,g.jsx)(l.rsf,{indicatorLabels:["Enabled","Disabled"],checked:se,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(){var n;n=!se,o.h.group.updateGroup((0,d.LL)(X),{members:J,status:n?"enabled":"disabled"}).then((function(){ae()})).catch((function(n){e((0,x.zb)((0,c.g)(n.error)))}))},switchOnly:!0})})}),(0,g.jsx)(S.Z,{tooltip:"Delete Group",children:(0,g.jsx)(l.zxk,{id:"delete-user-group",variant:"secondary",icon:(0,g.jsx)(l.XHJ,{}),onClick:function(){T(!0)}})})]}),sx:{marginBottom:15}})}),(0,g.jsx)(l.rjZ,{item:!0,xs:12,children:(0,g.jsx)(l.mQc,{options:[{tabConfig:{id:"members",label:"Members"},content:ue},{tabConfig:{id:"policies",label:"Policies"},content:de}],currentTabOrPath:H,onTabClick:W})})]})]})}},40228:function(e,n,t){var s=t(93433),i=t(29439),r=t(72791),l=t(26181),o=t.n(l),c=t(31776),a=t(82342),u=t(29945),d=t(21639),x=t(87995),f=t(44690),h=t(59114),p=t(80184);n.Z=function(e){var n=e.selectedUsers,t=e.setSelectedUsers,l=e.editMode,m=void 0!==l&&l,j=(0,f.TL)(),v=(0,r.useState)([]),g=(0,i.Z)(v,2),b=g[0],Z=g[1],y=(0,r.useState)(!1),S=(0,i.Z)(y,2),C=S[0],k=S[1],P=(0,r.useState)(""),L=(0,i.Z)(P,2),A=L[0],U=L[1],w=(0,r.useCallback)((function(){c.h.users.listUsers().then((function(e){var n=o()(e.data,"users",[]);n||(n=[]),Z(n.sort(d.LQ)),k(!1)})).catch((function(e){j((0,x.zb)((0,a.g)(e.error))),k(!1)}))}),[j]);(0,r.useEffect)((function(){k(!0)}),[]),(0,r.useEffect)((function(){C&&w()}),[C,w]);var G=n||[],F=b.filter((function(e){return e.accessKey.includes(A)}));return(0,p.jsx)(u.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,p.jsxs)(u.xuv,{children:[C&&(0,p.jsx)(u.kod,{}),(null===b||void 0===b?void 0:b.length)>0?(0,p.jsxs)(r.Fragment,{children:[(0,p.jsx)(u.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,p.jsx)(h.Z,{label:m?"Edit Members":"Assign Users",placeholder:"Filter Users",onChange:U,value:A})}),(0,p.jsx)(u.wQF,{columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:function(e){var n=e.target,i=n.value,r=n.checked,l=(0,s.Z)(G);return r?l.push(i):l=l.filter((function(e){return e!==i})),t(l),l},selectedItems:G,isLoading:C,records:F,entityName:"Users",idField:"accessKey",customPaperHeight:"200px"})]}):(0,p.jsx)(u.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Users to display"})]})})}},58400:function(e,n,t){var s=t(93433),i=t(29439),r=t(72791),l=t(29945),o=t(21639),c=t(59114),a=t(87995),u=t(44690),d=t(74616),x=t(78687),f=t(31776),h=t(80184);n.Z=function(e){var n=e.noTitle,t=void 0!==n&&n,p=(0,u.TL)(),m=(0,r.useState)([]),j=(0,i.Z)(m,2),v=j[0],g=j[1],b=(0,r.useState)(!1),Z=(0,i.Z)(b,2),y=Z[0],S=Z[1],C=(0,r.useState)(""),k=(0,i.Z)(C,2),P=k[0],L=k[1],A=(0,x.v9)((function(e){return e.createUser.selectedPolicies})),U=(0,r.useCallback)((function(){S(!0),f.h.policies.listPolicies().then((function(e){var n,t=null!==(n=e.data.policies)&&void 0!==n?n:[];S(!1),g(t.sort(o.g4))})).catch((function(e){S(!1),p((0,a.zb)(e))}))}),[p]);(0,r.useEffect)((function(){S(!0)}),[]),(0,r.useEffect)((function(){y&&U()}),[y,U]);var w=v.filter((function(e){return e.name.includes(P)}));return(0,h.jsxs)(l.rjZ,{item:!0,xs:12,className:"inputItem",children:[y&&(0,h.jsx)(l.kod,{}),v.length>0?(0,h.jsxs)(r.Fragment,{children:[(0,h.jsx)(l.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,h.jsx)(c.Z,{placeholder:"Start typing to search for a Policy",onChange:function(e){L(e)},value:P,label:t?"":"Assign Policies"})}),(0,h.jsx)(l.wQF,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,i=n.checked,r=(0,s.Z)(A);i?r.push(t):r=r.filter((function(e){return e!==t})),r=r.filter((function(e){return""!==e})),p((0,d.ue)(r))},selectedItems:A,isLoading:y,records:w,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,h.jsx)(l.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},39134:function(e,n,t){t.r(n);var s=t(29439),i=t(72791),r=t(26181),l=t.n(r),o=t(78687),c=t(29945),a=t(45248),u=t(87995),d=t(44690),x=t(23814),f=t(74616),h=t(56028),p=t(58400),m=t(81207),j=t(80184);n.default=function(e){var n=e.closeModalAndRefresh,t=e.selectedUser,r=e.selectedGroups,v=e.open,g=(0,d.TL)(),b=(0,i.useState)(!1),Z=(0,s.Z)(b,2),y=Z[0],S=Z[1],C=(0,i.useState)([]),k=(0,s.Z)(C,2),P=k[0],L=k[1],A=(0,i.useState)([]),U=(0,s.Z)(A,2),w=U[0],G=U[1],F=(0,o.v9)((function(e){return e.createUser.selectedPolicies}));(0,i.useEffect)((function(){if(v){if(1===(null===r||void 0===r?void 0:r.length))return void(1===(null===r||void 0===r?void 0:r.length)&&m.Z.invoke("GET","/api/v1/group/".concat((0,a.LL)(r[0]))).then((function(e){var n=l()(e,"policy","");L(n.split(",")),G(n.split(",")),g((0,f.ue)(n.split(",")))})).catch((function(e){g((0,u.zb)(e)),S(!1)})));var e=l()(t,"policy",[]);L(e),G(e),g((0,f.ue)(e))}}),[v,null===r||void 0===r?void 0:r.length,t]);var K=l()(t,"accessKey","");return(0,j.jsxs)(h.Z,{onClose:function(){n()},modalOpen:v,title:"Set Policies",children:[(0,j.jsxs)(c.ltY,{withBorders:!1,containerPadding:!1,children:[(1===(null===r||void 0===r?void 0:r.length)||null!=t)&&(0,j.jsxs)(i.Fragment,{children:[(0,j.jsx)(c.bSr,{label:"Selected ".concat(null!==r?"Group":"User"),sx:{width:"100%"},children:null!==r?r[0]:K}),(0,j.jsx)(c.bSr,{label:"Current Policy",sx:{width:"100%"},children:P.join(", ")})]}),r&&(null===r||void 0===r?void 0:r.length)>1&&(0,j.jsx)(c.bSr,{label:"Selected Groups",sx:{width:"100%"},children:r.join(", ")}),(0,j.jsx)(c.rjZ,{item:!0,xs:12,children:(0,j.jsx)(p.Z,{selectedPolicy:w})})]}),(0,j.jsxs)(c.rjZ,{item:!0,xs:12,sx:x.ID.modalButtonBar,children:[(0,j.jsx)(c.zxk,{id:"reset",type:"button",variant:"regular",onClick:function(){G(P),g((0,f.ue)(P))},label:"Reset"}),(0,j.jsx)(c.zxk,{id:"save",type:"button",variant:"callAction",color:"primary",disabled:y,onClick:function(){var e=null,s=null;null!==r?s=r:null!==t&&(e=[t.accessKey]||0),S(!0),m.Z.invoke("PUT","/api/v1/set-policy-multi",{name:F,groups:s,users:e}).then((function(){S(!1),n()})).catch((function(e){S(!1),g((0,u.zb)(e))}))},label:"Save"})]}),y&&(0,j.jsx)(c.rjZ,{item:!0,xs:12,children:(0,j.jsx)(c.kod,{})})]})}},21639:function(e,n,t){t.d(n,{KE:function(){return l},LQ:function(){return s},V2:function(){return r},g4:function(){return i}});var s=function(e,n){if(e.accessKey&&n.accessKey){if(e.accessKey>n.accessKey)return 1;if(e.accessKeyn.name?1:e.namen?1:en.policy?1:e.policy.\n\nimport React, { Fragment } from \"react\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\n\ninterface IDeleteGroup {\n selectedGroups: string[];\n deleteOpen: boolean;\n closeDeleteModalAndRefresh: any;\n}\n\nconst DeleteGroup = ({\n selectedGroups,\n deleteOpen,\n closeDeleteModalAndRefresh,\n}: IDeleteGroup) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n closeDeleteModalAndRefresh(false);\n };\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedGroups) {\n return null;\n }\n const onDeleteGroups = () => {\n for (let group of selectedGroups) {\n invokeDeleteApi(\"DELETE\", `/api/v1/group/${encodeURLString(group)}`);\n }\n };\n\n const renderGroups = selectedGroups.map((group) => (\n

\n {group}\n
\n ));\n\n return (\n 1 ? \"s\" : \"\"}`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={}\n isLoading={deleteLoading}\n onConfirm={onDeleteGroups}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete the following{\" \"}\n {selectedGroups.length === 1 ? \"\" : selectedGroups.length} group\n {selectedGroups.length > 1 ? \"s?\" : \"?\"}\n {renderGroups}\n \n }\n />\n );\n};\n\nexport default DeleteGroup;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { AddMembersToGroupIcon, Button, FormLayout, Grid, ReadBox } from \"mds\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport UsersSelectors from \"./UsersSelectors\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\n\ntype UserPickerModalProps = {\n title?: string;\n preSelectedUsers?: string[];\n selectedGroup?: string;\n open: boolean;\n onClose: () => void;\n onSaveClick: () => void;\n groupStatus?: string;\n};\n\nconst AddGroupMember = ({\n title = \"\",\n groupStatus = \"enabled\",\n preSelectedUsers = [],\n selectedGroup = \"\",\n open,\n onClose,\n}: UserPickerModalProps) => {\n const dispatch = useAppDispatch();\n const [selectedUsers, setSelectedUsers] = useState(preSelectedUsers);\n\n function addMembersToGroup() {\n return api.group\n .updateGroup(encodeURLString(selectedGroup), {\n members: selectedUsers,\n status: groupStatus,\n })\n .then(() => {\n onClose();\n })\n .catch((err) => {\n onClose();\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n\n return (\n }\n >\n \n \n {selectedGroup}\n \n \n \n \n {\n setSelectedUsers(preSelectedUsers);\n }}\n label={\"Reset\"}\n />\n\n {\n addMembersToGroup();\n }}\n label={\"Save\"}\n />\n \n \n );\n};\n\nexport default AddGroupMember;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { useNavigate, useParams } from \"react-router-dom\";\nimport {\n AddIcon,\n BackLink,\n Box,\n Button,\n DataTable,\n Grid,\n GroupsIcon,\n IAMPoliciesIcon,\n PageLayout,\n ScreenTitle,\n SectionTitle,\n Switch,\n Tabs,\n TrashIcon,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { Group } from \"api/consoleApi\";\nimport {\n addUserToGroupPermissions,\n CONSOLE_UI_RESOURCE,\n createGroupPermissions,\n editGroupMembersPermissions,\n enableDisableGroupPermissions,\n getGroupPermissions,\n IAM_PAGES,\n listUsersPermissions,\n permissionTooltipHelper,\n setGroupPoliciesPermissions,\n viewPolicyPermissions,\n viewUserPermissions,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport { setHelpName, setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport SetPolicy from \"../Policies/SetPolicy\";\nimport AddGroupMember from \"./AddGroupMember\";\nimport DeleteGroup from \"./DeleteGroup\";\nimport SearchBox from \"../Common/SearchBox\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\n\nexport const formatPolicy = (policy: string = \"\"): string[] => {\n if (policy.length <= 0) return [];\n return policy.split(\",\");\n};\n\nconst GroupsDetails = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const params = useParams();\n\n const [groupDetails, setGroupDetails] = useState({});\n const [policyOpen, setPolicyOpen] = useState(false);\n const [usersOpen, setUsersOpen] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [memberFilter, setMemberFilter] = useState(\"\");\n const [currentTab, setCurrentTab] = useState(\"members\");\n\n const groupName = decodeURLString(params.groupName || \"\");\n\n const { members = [], policy = \"\", status: groupEnabled } = groupDetails;\n\n const filteredMembers = members.filter((elementItem) =>\n elementItem.includes(memberFilter),\n );\n\n const viewUser = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewUserPermissions,\n true,\n );\n\n useEffect(() => {\n dispatch(setHelpName(\"group_details\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (groupName) {\n fetchGroupInfo();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groupName]);\n\n const groupPolicies = formatPolicy(policy);\n const isGroupEnabled = groupEnabled === \"enabled\";\n const memberActionText = members.length > 0 ? \"Edit Members\" : \"Add Members\";\n\n const getGroupDetails = hasPermission(\n CONSOLE_UI_RESOURCE,\n getGroupPermissions,\n );\n\n const canEditGroupMembers = hasPermission(\n CONSOLE_UI_RESOURCE,\n editGroupMembersPermissions,\n true,\n );\n\n const canSetPolicies = hasPermission(\n CONSOLE_UI_RESOURCE,\n setGroupPoliciesPermissions,\n true,\n );\n\n const canViewPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewPolicyPermissions,\n true,\n );\n\n function fetchGroupInfo() {\n if (getGroupDetails) {\n api.group\n .groupInfo(encodeURLString(groupName))\n .then((res) => {\n setGroupDetails(res.data);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setGroupDetails({});\n });\n }\n }\n\n function toggleGroupStatus(nextStatus: boolean) {\n return api.group\n .updateGroup(encodeURLString(groupName), {\n members: members,\n status: nextStatus ? \"enabled\" : \"disabled\",\n })\n .then(() => {\n fetchGroupInfo();\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n\n const groupsTabContent = (\n {\n dispatch(setHelpName(\"groups_members\"));\n }}\n >\n \n {\n setMemberFilter(searchText);\n }}\n value={memberFilter}\n sx={{\n maxWidth: 280,\n }}\n />\n \n \n }\n onClick={() => {\n setUsersOpen(true);\n }}\n disabled={!canEditGroupMembers}\n />\n \n \n \n }\n >\n Members\n \n \n \n \n {\n navigate(`${IAM_PAGES.USERS}/${encodeURLString(userName)}`);\n },\n isDisabled: !viewUser,\n },\n ]}\n columns={[{ label: \"Access Key\" }]}\n selectedItems={[]}\n isLoading={false}\n records={filteredMembers}\n entityName=\"Users\"\n />\n \n \n \n \n );\n\n const policiesTabContent = (\n \n {\n dispatch(setHelpName(\"groups_policies\"));\n }}\n >\n \n }\n onClick={() => {\n setPolicyOpen(true);\n }}\n disabled={!canSetPolicies}\n />\n \n }\n >\n Policies\n \n \n \n \n {\n navigate(`${IAM_PAGES.POLICIES}/${encodeURLString(policy)}`);\n },\n isDisabled: !canViewPolicy,\n },\n ]}\n columns={[{ label: \"Policy\" }]}\n isLoading={false}\n records={groupPolicies}\n entityName=\"Policies\"\n />\n \n \n \n );\n\n return (\n \n {policyOpen ? (\n {\n setPolicyOpen(false);\n fetchGroupInfo();\n dispatch(setSelectedPolicies([]));\n }}\n />\n ) : null}\n\n {usersOpen ? (\n {}}\n title={memberActionText}\n groupStatus={groupEnabled}\n preSelectedUsers={members}\n open={usersOpen}\n onClose={() => {\n setUsersOpen(false);\n fetchGroupInfo();\n }}\n />\n ) : null}\n\n {deleteOpen && (\n {\n setDeleteOpen(false);\n if (isDelSuccess) {\n navigate(IAM_PAGES.GROUPS);\n }\n }}\n />\n )}\n \n navigate(IAM_PAGES.GROUPS)}\n />\n \n }\n actions={}\n />\n \n \n \n \n \n }\n title={groupName}\n subTitle={null}\n bottomBorder\n actions={\n \n Group Status:\n \n {isGroupEnabled ? \"Enabled\" : \"Disabled\"}\n \n \n \n {\n toggleGroupStatus(!isGroupEnabled);\n }}\n switchOnly\n />\n \n \n\n \n }\n onClick={() => {\n setDeleteOpen(true);\n }}\n />\n \n \n }\n sx={{ marginBottom: 15 }}\n />\n \n\n \n \n \n \n \n );\n};\n\nexport default GroupsDetails;\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, Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { Box, DataTable, Grid, ProgressBar } from \"mds\";\n\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface IGroupsProps {\n selectedUsers: string[];\n setSelectedUsers: any;\n editMode?: boolean;\n}\n\nconst UsersSelectors = ({\n selectedUsers,\n setSelectedUsers,\n editMode = false,\n}: IGroupsProps) => {\n const dispatch = useAppDispatch();\n //Local States\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const fetchUsers = useCallback(() => {\n api.users\n .listUsers()\n .then((res) => {\n let users = get(res.data, \"users\", []);\n\n if (!users) {\n users = [];\n }\n\n setRecords(users.sort(usersSort));\n isLoading(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n isLoading(false);\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchUsers();\n }\n }, [loading, fetchUsers]);\n\n const selUsers = !selectedUsers ? [] : selectedUsers;\n\n //Fetch Actions\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selUsers]; // We clone the selectedGroups array\n\n if (checked) {\n // If the user has checked this field we need to push this to selectedGroupsList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedUsers(elements);\n\n return elements;\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.accessKey.includes(filter),\n );\n\n return (\n \n \n {loading && }\n {records?.length > 0 ? (\n \n \n \n \n \n \n ) : (\n \n No Users to display\n \n )}\n \n \n );\n};\n\nexport default UsersSelectors;\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 { Box, DataTable, Grid, ProgressBar } from \"mds\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"../../../api\";\n\ninterface ISelectPolicyProps {\n selectedPolicy?: string[];\n noTitle?: boolean;\n}\n\nconst PolicySelectors = ({ noTitle = false }: ISelectPolicyProps) => {\n const dispatch = useAppDispatch();\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api.policies\n .listPolicies()\n .then((res) => {\n const policies = res.data.policies ?? [];\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchPolicies();\n }\n }, [loading, fetchPolicies]);\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...currentPolicies]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n // remove empty values\n elements = elements.filter((element) => element !== \"\");\n\n dispatch(setSelectedPolicies(elements));\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter),\n );\n\n return (\n \n {loading && }\n {records.length > 0 ? (\n \n \n {\n setFilter(value);\n }}\n value={filter}\n label={!noTitle ? \"Assign Policies\" : \"\"}\n />\n \n\n \n \n ) : (\n \n No Policies Available\n \n )}\n \n );\n};\n\nexport default PolicySelectors;\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 { Button, FormLayout, ReadBox, Grid, ProgressBar } from \"mds\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { User } from \"../Users/types\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport PolicySelectors from \"./PolicySelectors\";\nimport api from \"../../../common/api\";\n\ninterface ISetPolicyProps {\n closeModalAndRefresh: () => void;\n selectedUser: User | null;\n selectedGroups: string[] | null;\n open: boolean;\n}\n\nconst SetPolicy = ({\n closeModalAndRefresh,\n selectedUser,\n selectedGroups,\n open,\n}: ISetPolicyProps) => {\n const dispatch = useAppDispatch();\n //Local States\n const [loading, setLoading] = useState(false);\n const [actualPolicy, setActualPolicy] = useState([]);\n const [selectedPolicy, setSelectedPolicy] = useState([]);\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n const setPolicyAction = () => {\n let users = null;\n let groups = null;\n if (selectedGroups !== null) {\n groups = selectedGroups;\n } else {\n if (selectedUser !== null) {\n users = [selectedUser.accessKey] || [\" \"];\n }\n }\n\n setLoading(true);\n\n api\n .invoke(\"PUT\", `/api/v1/set-policy-multi`, {\n name: currentPolicies,\n groups: groups,\n users: users,\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n };\n\n const fetchGroupInformation = () => {\n if (selectedGroups?.length === 1) {\n api\n .invoke(\"GET\", `/api/v1/group/${encodeURLString(selectedGroups[0])}`)\n .then((res: any) => {\n const groupPolicy: String = get(res, \"policy\", \"\");\n setActualPolicy(groupPolicy.split(\",\"));\n setSelectedPolicy(groupPolicy.split(\",\"));\n dispatch(setSelectedPolicies(groupPolicy.split(\",\")));\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(err));\n setLoading(false);\n });\n }\n };\n\n const resetSelection = () => {\n setSelectedPolicy(actualPolicy);\n dispatch(setSelectedPolicies(actualPolicy));\n };\n\n useEffect(() => {\n if (open) {\n if (selectedGroups?.length === 1) {\n fetchGroupInformation();\n return;\n }\n\n const userPolicy: string[] = get(selectedUser, \"policy\", []);\n setActualPolicy(userPolicy);\n setSelectedPolicy(userPolicy);\n dispatch(setSelectedPolicies(userPolicy));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, selectedGroups?.length, selectedUser]);\n\n const userName = get(selectedUser, \"accessKey\", \"\");\n\n return (\n {\n closeModalAndRefresh();\n }}\n modalOpen={open}\n title=\"Set Policies\"\n >\n \n {(selectedGroups?.length === 1 || selectedUser != null) && (\n \n \n {selectedGroups !== null ? selectedGroups[0] : userName}\n \n \n {actualPolicy.join(\", \")}\n \n \n )}\n {selectedGroups && selectedGroups?.length > 1 && (\n \n {selectedGroups.join(\", \")}\n \n )}\n \n \n \n \n \n \n \n \n {loading && (\n \n \n \n )}\n \n );\n};\n\nexport default SetPolicy;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["_ref","selectedGroups","deleteOpen","closeDeleteModalAndRefresh","dispatch","useAppDispatch","_useApi","useApi","err","setErrorSnackMessage","_useApi2","_slicedToArray","deleteLoading","invokeDeleteApi","renderGroups","map","group","_jsx","children","ConfirmDialog","title","concat","length","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","_step","_iterator","_createForOfIteratorHelper","s","n","done","value","encodeURLString","e","f","onClose","confirmationContent","_jsxs","Fragment","_ref$title","_ref$groupStatus","groupStatus","_ref$preSelectedUsers","preSelectedUsers","_ref$selectedGroup","selectedGroup","open","_useState","useState","_useState2","selectedUsers","setSelectedUsers","ModalWrapper","modalOpen","AddMembersToGroupIcon","FormLayout","withBorders","containerPadding","ReadBox","label","sx","width","UsersSelectors","editMode","Grid","item","xs","modalStyleUtils","modalButtonBar","Button","id","type","variant","onClick","api","updateGroup","members","status","then","catch","setModalErrorSnackMessage","errorToHandler","error","formatPolicy","policy","arguments","undefined","split","navigate","useNavigate","params","useParams","groupDetails","setGroupDetails","_useState3","_useState4","policyOpen","setPolicyOpen","_useState5","_useState6","usersOpen","setUsersOpen","_useState7","_useState8","setDeleteOpen","_useState9","_useState10","memberFilter","setMemberFilter","_useState11","_useState12","currentTab","setCurrentTab","groupName","decodeURLString","_groupDetails$members","_groupDetails$policy","groupEnabled","filteredMembers","filter","elementItem","includes","viewUser","hasPermission","CONSOLE_UI_RESOURCE","viewUserPermissions","useEffect","setHelpName","fetchGroupInfo","groupPolicies","isGroupEnabled","memberActionText","getGroupDetails","getGroupPermissions","canEditGroupMembers","editGroupMembersPermissions","canSetPolicies","setGroupPoliciesPermissions","canViewPolicy","viewPolicyPermissions","groupInfo","res","data","groupsTabContent","Box","onMouseMove","SectionTitle","separator","marginBottom","actions","display","gap","SearchBox","placeholder","onChange","searchText","maxWidth","SecureComponent","resource","scopes","addUserToGroupPermissions","errorProps","disabled","TooltipWrapper","tooltip","permissionTooltipHelper","createGroupPermissions","icon","AddIcon","listUsersPermissions","DataTable","itemActions","userName","IAM_PAGES","USERS","isDisabled","columns","selectedItems","records","entityName","policiesTabContent","IAMPoliciesIcon","POLICIES","SetPolicy","selectedUser","closeModalAndRefresh","setSelectedPolicies","AddGroupMember","onSaveClick","DeleteGroup","isDelSuccess","GROUPS","PageHeaderWrapper","BackLink","HelpMenu","PageLayout","ScreenTitle","GroupsIcon","subTitle","bottomBorder","fontSize","alignItems","style","fontWeight","enableDisableGroupPermissions","matchAll","Switch","indicatorLabels","checked","name","nextStatus","switchOnly","TrashIcon","Tabs","options","tabConfig","content","currentTabOrPath","onTabClick","_ref$editMode","setRecords","loading","setFilter","fetchUsers","useCallback","users","listUsers","get","sort","usersSort","selUsers","filteredRecords","accessKey","className","ProgressBar","elementKey","onSelect","targetD","target","elements","_toConsumableArray","push","element","idField","customPaperHeight","textAlign","padding","_ref$noTitle","noTitle","currentPolicies","useSelector","state","createUser","selectedPolicies","fetchPolicies","policies","listPolicies","_res$data$policies","policySort","setLoading","actualPolicy","setActualPolicy","selectedPolicy","setSelectedPolicy","invoke","groupPolicy","userPolicy","join","PolicySelectors","color","groups","a","b","stringSort","policyDetailsSort"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2074.a60ce6fb.chunk.js b/portal-ui/build/static/js/2074.a60ce6fb.chunk.js new file mode 100644 index 000000000..4097462c0 --- /dev/null +++ b/portal-ui/build/static/js/2074.a60ce6fb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2074,8896,9134],{88896:(e,s,t)=>{t.r(s),t.d(s,{default:()=>u});var l=t(72791),i=t(29945),n=t(45248),r=t(87995),o=t(44690),c=t(23508),a=t(9505),d=t(80184);const u=e=>{let{selectedGroups:s,deleteOpen:t,closeDeleteModalAndRefresh:u}=e;const x=(0,o.TL)(),[h,p]=(0,a.Z)((()=>u(!0)),(e=>{x((0,r.Ih)(e)),u(!1)}));if(!s)return null;const m=s.map((e=>(0,d.jsx)("div",{children:(0,d.jsx)("b",{children:e})},e)));return(0,d.jsx)(c.Z,{title:"Delete Group".concat(s.length>1?"s":""),confirmText:"Delete",isOpen:t,titleIcon:(0,d.jsx)(i.NvT,{}),isLoading:h,onConfirm:()=>{for(let e of s)p("DELETE","/api/v1/group/".concat((0,n.LL)(e)))},onClose:()=>u(!1),confirmationContent:(0,d.jsxs)(l.Fragment,{children:["Are you sure you want to delete the following"," ",1===s.length?"":s.length," group",s.length>1?"s?":"?",m]})})}},22074:(e,s,t)=>{t.r(s),t.d(s,{default:()=>P,formatPolicy:()=>k});var l=t(72791),i=t(57689),n=t(29945),r=t(31776),o=t(82342),c=t(56087),a=t(38442),d=t(45248),u=t(87995),x=t(44690),h=t(74616),p=t(39134),m=t(23814),j=t(40228),g=t(56028),b=t(80184);const v=e=>{let{title:s="",groupStatus:t="enabled",preSelectedUsers:i=[],selectedGroup:c="",open:a,onClose:h}=e;const p=(0,x.TL)(),[v,f]=(0,l.useState)(i);return(0,b.jsxs)(g.Z,{modalOpen:a,onClose:h,title:s,titleIcon:(0,b.jsx)(n.ZmA,{}),children:[(0,b.jsxs)(n.ltY,{withBorders:!1,containerPadding:!1,children:[(0,b.jsx)(n.bSr,{label:"Selected Group",sx:{width:"100%"},children:c}),(0,b.jsx)(j.Z,{selectedUsers:v,setSelectedUsers:f,editMode:!c})]}),(0,b.jsxs)(n.rjZ,{item:!0,xs:12,sx:m.ID.modalButtonBar,children:[(0,b.jsx)(n.zxk,{id:"reset-add-group-member",type:"button",variant:"regular",onClick:()=>{f(i)},label:"Reset"}),(0,b.jsx)(n.zxk,{id:"save-add-group-member",type:"button",variant:"callAction",onClick:()=>{r.h.group.updateGroup((0,d.LL)(c),{members:v,status:t}).then((()=>{h()})).catch((e=>{h(),p((0,u.zb)((0,o.g)(e.error)))}))},label:"Save"})]})]})};var f=t(88896),y=t(59114),S=t(27454),C=t(99670),Z=t(79844);const k=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.length<=0?[]:e.split(",")},P=()=>{const e=(0,x.TL)(),s=(0,i.s0)(),t=(0,i.UO)(),[m,j]=(0,l.useState)({}),[g,P]=(0,l.useState)(!1),[L,A]=(0,l.useState)(!1),[U,w]=(0,l.useState)(!1),[G,F]=(0,l.useState)(""),[K,M]=(0,l.useState)("members"),E=(0,d.IO)(t.groupName||""),{members:I=[],policy:z="",status:N}=m,T=I.filter((e=>e.includes(G))),D=(0,a.F)(c.C3,c.iw,!0);(0,l.useEffect)((()=>{e((0,u.Sc)("group_details"))}),[]),(0,l.useEffect)((()=>{E&&X()}),[E]);const O=k(z),B="enabled"===N,R=I.length>0?"Edit Members":"Add Members",Q=(0,a.F)(c.C3,c.k_),_=(0,a.F)(c.C3,c.kt,!0),H=(0,a.F)(c.C3,c.UA,!0),W=(0,a.F)(c.C3,c.GD,!0);function X(){Q&&r.h.group.groupInfo((0,d.LL)(E)).then((e=>{j(e.data)})).catch((s=>{e((0,u.zb)((0,o.g)(s.error))),j({})}))}const Y=(0,b.jsxs)(n.xuv,{onMouseMove:()=>{e((0,u.Sc)("groups_members"))},children:[(0,b.jsx)(n.NZf,{separator:!0,sx:{marginBottom:15},actions:(0,b.jsxs)(n.xuv,{sx:{display:"flex",gap:10},children:[(0,b.jsx)(y.Z,{placeholder:"Search members",onChange:e=>{F(e)},value:G,sx:{maxWidth:280}}),(0,b.jsx)(a.s,{resource:c.C3,scopes:c.uH,errorProps:{disabled:!0},children:(0,b.jsx)(S.Z,{tooltip:_?R:(0,c.MK)(c.vN,"edit Group membership"),children:(0,b.jsx)(n.zxk,{id:"add-user-group",label:R,variant:"callAction",icon:(0,b.jsx)(n.dtP,{}),onClick:()=>{A(!0)},disabled:!_})})})]}),children:"Members"}),(0,b.jsx)(n.rjZ,{item:!0,xs:12,children:(0,b.jsx)(a.s,{resource:c.C3,scopes:c.Rs,errorProps:{disabled:!0},children:(0,b.jsx)(S.Z,{tooltip:D?"":(0,c.MK)(c.iw,"view User details"),children:(0,b.jsx)(n.wQF,{itemActions:[{type:"view",onClick:e=>{s("".concat(c.gA.USERS,"/").concat((0,d.LL)(e)))},isDisabled:!D}],columns:[{label:"Access Key"}],selectedItems:[],isLoading:!1,records:T,entityName:"Users"})})})})]}),J=(0,b.jsxs)(l.Fragment,{children:[(0,b.jsx)(n.xuv,{onMouseMove:()=>{e((0,u.Sc)("groups_policies"))},children:(0,b.jsx)(n.NZf,{separator:!0,sx:{marginBottom:15},actions:(0,b.jsx)(S.Z,{tooltip:H?"Set Policies":(0,c.MK)(c.UA,"assign Policies"),children:(0,b.jsx)(n.zxk,{id:"set-policies",label:"Set Policies",variant:"callAction",icon:(0,b.jsx)(n.v42,{}),onClick:()=>{P(!0)},disabled:!H})}),children:"Policies"})}),(0,b.jsx)(n.rjZ,{item:!0,xs:12,children:(0,b.jsx)(S.Z,{tooltip:W?"":(0,c.MK)(c.GD,"view Policy details"),children:(0,b.jsx)(n.wQF,{itemActions:[{type:"view",onClick:e=>{s("".concat(c.gA.POLICIES,"/").concat((0,d.LL)(e)))},isDisabled:!W}],columns:[{label:"Policy"}],isLoading:!1,records:O,entityName:"Policies"})})})]});return(0,b.jsxs)(l.Fragment,{children:[g?(0,b.jsx)(p.default,{open:g,selectedGroups:[E],selectedUser:null,closeModalAndRefresh:()=>{P(!1),X(),e((0,h.ue)([]))}}):null,L?(0,b.jsx)(v,{selectedGroup:E,onSaveClick:()=>{},title:R,groupStatus:N,preSelectedUsers:I,open:L,onClose:()=>{A(!1),X()}}):null,U&&(0,b.jsx)(f.default,{deleteOpen:U,selectedGroups:[E],closeDeleteModalAndRefresh:e=>{w(!1),e&&s(c.gA.GROUPS)}}),(0,b.jsx)(Z.Z,{label:(0,b.jsx)(l.Fragment,{children:(0,b.jsx)(n.hbI,{label:"Groups",onClick:()=>s(c.gA.GROUPS)})}),actions:(0,b.jsx)(C.Z,{})}),(0,b.jsxs)(n.Xgh,{children:[(0,b.jsx)(n.rjZ,{item:!0,xs:12,children:(0,b.jsx)(n.UHn,{icon:(0,b.jsx)(l.Fragment,{children:(0,b.jsx)(n.wws,{width:40})}),title:E,subTitle:null,bottomBorder:!0,actions:(0,b.jsxs)(n.xuv,{sx:{display:"flex",fontSize:14,alignItems:"center",gap:15},children:[(0,b.jsx)("span",{children:"Group Status:"}),(0,b.jsx)("span",{id:"group-status-label",style:{fontWeight:"bold"},children:B?"Enabled":"Disabled"}),(0,b.jsx)(S.Z,{tooltip:(0,a.F)(c.C3,c.xh,!0)?"":(0,c.MK)(c.xh,"enable or disable Groups"),children:(0,b.jsx)(a.s,{resource:c.C3,scopes:c.xh,errorProps:{disabled:!0},matchAll:!0,children:(0,b.jsx)(n.rsf,{indicatorLabels:["Enabled","Disabled"],checked:B,value:"group_enabled",id:"group-status",name:"group-status",onChange:()=>{var s;s=!B,r.h.group.updateGroup((0,d.LL)(E),{members:I,status:s?"enabled":"disabled"}).then((()=>{X()})).catch((s=>{e((0,u.zb)((0,o.g)(s.error)))}))},switchOnly:!0})})}),(0,b.jsx)(S.Z,{tooltip:"Delete Group",children:(0,b.jsx)(n.zxk,{id:"delete-user-group",variant:"secondary",icon:(0,b.jsx)(n.XHJ,{}),onClick:()=>{w(!0)}})})]}),sx:{marginBottom:15}})}),(0,b.jsx)(n.rjZ,{item:!0,xs:12,children:(0,b.jsx)(n.mQc,{options:[{tabConfig:{id:"members",label:"Members"},content:Y},{tabConfig:{id:"policies",label:"Policies"},content:J}],currentTabOrPath:K,onTabClick:M})})]})]})}},40228:(e,s,t)=>{t.d(s,{Z:()=>p});var l=t(72791),i=t(26181),n=t.n(i),r=t(31776),o=t(82342),c=t(29945),a=t(21639),d=t(87995),u=t(44690),x=t(59114),h=t(80184);const p=e=>{let{selectedUsers:s,setSelectedUsers:t,editMode:i=!1}=e;const p=(0,u.TL)(),[m,j]=(0,l.useState)([]),[g,b]=(0,l.useState)(!1),[v,f]=(0,l.useState)(""),y=(0,l.useCallback)((()=>{r.h.users.listUsers().then((e=>{let s=n()(e.data,"users",[]);s||(s=[]),j(s.sort(a.LQ)),b(!1)})).catch((e=>{p((0,d.zb)((0,o.g)(e.error))),b(!1)}))}),[p]);(0,l.useEffect)((()=>{b(!0)}),[]),(0,l.useEffect)((()=>{g&&y()}),[g,y]);const S=s||[],C=m.filter((e=>e.accessKey.includes(v)));return(0,h.jsx)(c.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,h.jsxs)(c.xuv,{children:[g&&(0,h.jsx)(c.kod,{}),(null===m||void 0===m?void 0:m.length)>0?(0,h.jsxs)(l.Fragment,{children:[(0,h.jsx)(c.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,h.jsx)(x.Z,{label:i?"Edit Members":"Assign Users",placeholder:"Filter Users",onChange:f,value:v})}),(0,h.jsx)(c.wQF,{columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:e=>{const s=e.target,l=s.value,i=s.checked;let n=[...S];return i?n.push(l):n=n.filter((e=>e!==l)),t(n),n},selectedItems:S,isLoading:g,records:C,entityName:"Users",idField:"accessKey",customPaperHeight:"200px"})]}):(0,h.jsx)(c.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Users to display"})]})})}},58400:(e,s,t)=>{t.d(s,{Z:()=>h});var l=t(72791),i=t(29945),n=t(21639),r=t(59114),o=t(87995),c=t(44690),a=t(74616),d=t(78687),u=t(31776),x=t(80184);const h=e=>{let{noTitle:s=!1}=e;const t=(0,c.TL)(),[h,p]=(0,l.useState)([]),[m,j]=(0,l.useState)(!1),[g,b]=(0,l.useState)(""),v=(0,d.v9)((e=>e.createUser.selectedPolicies)),f=(0,l.useCallback)((()=>{j(!0),u.h.policies.listPolicies().then((e=>{var s;const t=null!==(s=e.data.policies)&&void 0!==s?s:[];j(!1),p(t.sort(n.g4))})).catch((e=>{j(!1),t((0,o.zb)(e))}))}),[t]);(0,l.useEffect)((()=>{j(!0)}),[]),(0,l.useEffect)((()=>{m&&f()}),[m,f]);const y=h.filter((e=>e.name.includes(g)));return(0,x.jsxs)(i.rjZ,{item:!0,xs:12,className:"inputItem",children:[m&&(0,x.jsx)(i.kod,{}),h.length>0?(0,x.jsxs)(l.Fragment,{children:[(0,x.jsx)(i.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,x.jsx)(r.Z,{placeholder:"Start typing to search for a Policy",onChange:e=>{b(e)},value:g,label:s?"":"Assign Policies"})}),(0,x.jsx)(i.wQF,{columns:[{label:"Policy",elementKey:"name"}],onSelect:e=>{const s=e.target,l=s.value,i=s.checked;let n=[...v];i?n.push(l):n=n.filter((e=>e!==l)),n=n.filter((e=>""!==e)),t((0,a.ue)(n))},selectedItems:v,isLoading:m,records:y,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,x.jsx)(i.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},39134:(e,s,t)=>{t.r(s),t.d(s,{default:()=>g});var l=t(72791),i=t(26181),n=t.n(i),r=t(78687),o=t(29945),c=t(45248),a=t(87995),d=t(44690),u=t(23814),x=t(74616),h=t(56028),p=t(58400),m=t(81207),j=t(80184);const g=e=>{let{closeModalAndRefresh:s,selectedUser:t,selectedGroups:i,open:g}=e;const b=(0,d.TL)(),[v,f]=(0,l.useState)(!1),[y,S]=(0,l.useState)([]),[C,Z]=(0,l.useState)([]),k=(0,r.v9)((e=>e.createUser.selectedPolicies));(0,l.useEffect)((()=>{if(g){if(1===(null===i||void 0===i?void 0:i.length))return void(1===(null===i||void 0===i?void 0:i.length)&&m.Z.invoke("GET","/api/v1/group/".concat((0,c.LL)(i[0]))).then((e=>{const s=n()(e,"policy","");S(s.split(",")),Z(s.split(",")),b((0,x.ue)(s.split(",")))})).catch((e=>{b((0,a.zb)(e)),f(!1)})));const e=n()(t,"policy",[]);S(e),Z(e),b((0,x.ue)(e))}}),[g,null===i||void 0===i?void 0:i.length,t]);const P=n()(t,"accessKey","");return(0,j.jsxs)(h.Z,{onClose:()=>{s()},modalOpen:g,title:"Set Policies",children:[(0,j.jsxs)(o.ltY,{withBorders:!1,containerPadding:!1,children:[(1===(null===i||void 0===i?void 0:i.length)||null!=t)&&(0,j.jsxs)(l.Fragment,{children:[(0,j.jsx)(o.bSr,{label:"Selected ".concat(null!==i?"Group":"User"),sx:{width:"100%"},children:null!==i?i[0]:P}),(0,j.jsx)(o.bSr,{label:"Current Policy",sx:{width:"100%"},children:y.join(", ")})]}),i&&(null===i||void 0===i?void 0:i.length)>1&&(0,j.jsx)(o.bSr,{label:"Selected Groups",sx:{width:"100%"},children:i.join(", ")}),(0,j.jsx)(o.rjZ,{item:!0,xs:12,children:(0,j.jsx)(p.Z,{selectedPolicy:C})})]}),(0,j.jsxs)(o.rjZ,{item:!0,xs:12,sx:u.ID.modalButtonBar,children:[(0,j.jsx)(o.zxk,{id:"reset",type:"button",variant:"regular",onClick:()=>{Z(y),b((0,x.ue)(y))},label:"Reset"}),(0,j.jsx)(o.zxk,{id:"save",type:"button",variant:"callAction",color:"primary",disabled:v,onClick:()=>{let e=null,l=null;null!==i?l=i:null!==t&&(e=[t.accessKey]||0),f(!0),m.Z.invoke("PUT","/api/v1/set-policy-multi",{name:k,groups:l,users:e}).then((()=>{f(!1),s()})).catch((e=>{f(!1),b((0,a.zb)(e))}))},label:"Save"})]}),v&&(0,j.jsx)(o.rjZ,{item:!0,xs:12,children:(0,j.jsx)(o.kod,{})})]})}},21639:(e,s,t)=>{t.d(s,{KE:()=>r,LQ:()=>l,V2:()=>n,g4:()=>i});const l=(e,s)=>{if(e.accessKey&&s.accessKey){if(e.accessKey>s.accessKey)return 1;if(e.accessKeye.name>s.name?1:e.namee>s?1:ee.policy>s.policy?1:e.policy.\n\nimport React, { Fragment } from \"react\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\n\ninterface IDeleteGroup {\n selectedGroups: string[];\n deleteOpen: boolean;\n closeDeleteModalAndRefresh: any;\n}\n\nconst DeleteGroup = ({\n selectedGroups,\n deleteOpen,\n closeDeleteModalAndRefresh,\n}: IDeleteGroup) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n closeDeleteModalAndRefresh(false);\n };\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedGroups) {\n return null;\n }\n const onDeleteGroups = () => {\n for (let group of selectedGroups) {\n invokeDeleteApi(\"DELETE\", `/api/v1/group/${encodeURLString(group)}`);\n }\n };\n\n const renderGroups = selectedGroups.map((group) => (\n
\n {group}\n
\n ));\n\n return (\n 1 ? \"s\" : \"\"}`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={}\n isLoading={deleteLoading}\n onConfirm={onDeleteGroups}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete the following{\" \"}\n {selectedGroups.length === 1 ? \"\" : selectedGroups.length} group\n {selectedGroups.length > 1 ? \"s?\" : \"?\"}\n {renderGroups}\n \n }\n />\n );\n};\n\nexport default DeleteGroup;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { AddMembersToGroupIcon, Button, FormLayout, Grid, ReadBox } from \"mds\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport UsersSelectors from \"./UsersSelectors\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\n\ntype UserPickerModalProps = {\n title?: string;\n preSelectedUsers?: string[];\n selectedGroup?: string;\n open: boolean;\n onClose: () => void;\n onSaveClick: () => void;\n groupStatus?: string;\n};\n\nconst AddGroupMember = ({\n title = \"\",\n groupStatus = \"enabled\",\n preSelectedUsers = [],\n selectedGroup = \"\",\n open,\n onClose,\n}: UserPickerModalProps) => {\n const dispatch = useAppDispatch();\n const [selectedUsers, setSelectedUsers] = useState(preSelectedUsers);\n\n function addMembersToGroup() {\n return api.group\n .updateGroup(encodeURLString(selectedGroup), {\n members: selectedUsers,\n status: groupStatus,\n })\n .then(() => {\n onClose();\n })\n .catch((err) => {\n onClose();\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n\n return (\n }\n >\n \n \n {selectedGroup}\n \n \n \n \n {\n setSelectedUsers(preSelectedUsers);\n }}\n label={\"Reset\"}\n />\n\n {\n addMembersToGroup();\n }}\n label={\"Save\"}\n />\n \n \n );\n};\n\nexport default AddGroupMember;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { useNavigate, useParams } from \"react-router-dom\";\nimport {\n AddIcon,\n BackLink,\n Box,\n Button,\n DataTable,\n Grid,\n GroupsIcon,\n IAMPoliciesIcon,\n PageLayout,\n ScreenTitle,\n SectionTitle,\n Switch,\n Tabs,\n TrashIcon,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { Group } from \"api/consoleApi\";\nimport {\n addUserToGroupPermissions,\n CONSOLE_UI_RESOURCE,\n createGroupPermissions,\n editGroupMembersPermissions,\n enableDisableGroupPermissions,\n getGroupPermissions,\n IAM_PAGES,\n listUsersPermissions,\n permissionTooltipHelper,\n setGroupPoliciesPermissions,\n viewPolicyPermissions,\n viewUserPermissions,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport { setHelpName, setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport SetPolicy from \"../Policies/SetPolicy\";\nimport AddGroupMember from \"./AddGroupMember\";\nimport DeleteGroup from \"./DeleteGroup\";\nimport SearchBox from \"../Common/SearchBox\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\n\nexport const formatPolicy = (policy: string = \"\"): string[] => {\n if (policy.length <= 0) return [];\n return policy.split(\",\");\n};\n\nconst GroupsDetails = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const params = useParams();\n\n const [groupDetails, setGroupDetails] = useState({});\n const [policyOpen, setPolicyOpen] = useState(false);\n const [usersOpen, setUsersOpen] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [memberFilter, setMemberFilter] = useState(\"\");\n const [currentTab, setCurrentTab] = useState(\"members\");\n\n const groupName = decodeURLString(params.groupName || \"\");\n\n const { members = [], policy = \"\", status: groupEnabled } = groupDetails;\n\n const filteredMembers = members.filter((elementItem) =>\n elementItem.includes(memberFilter),\n );\n\n const viewUser = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewUserPermissions,\n true,\n );\n\n useEffect(() => {\n dispatch(setHelpName(\"group_details\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (groupName) {\n fetchGroupInfo();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groupName]);\n\n const groupPolicies = formatPolicy(policy);\n const isGroupEnabled = groupEnabled === \"enabled\";\n const memberActionText = members.length > 0 ? \"Edit Members\" : \"Add Members\";\n\n const getGroupDetails = hasPermission(\n CONSOLE_UI_RESOURCE,\n getGroupPermissions,\n );\n\n const canEditGroupMembers = hasPermission(\n CONSOLE_UI_RESOURCE,\n editGroupMembersPermissions,\n true,\n );\n\n const canSetPolicies = hasPermission(\n CONSOLE_UI_RESOURCE,\n setGroupPoliciesPermissions,\n true,\n );\n\n const canViewPolicy = hasPermission(\n CONSOLE_UI_RESOURCE,\n viewPolicyPermissions,\n true,\n );\n\n function fetchGroupInfo() {\n if (getGroupDetails) {\n api.group\n .groupInfo(encodeURLString(groupName))\n .then((res) => {\n setGroupDetails(res.data);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setGroupDetails({});\n });\n }\n }\n\n function toggleGroupStatus(nextStatus: boolean) {\n return api.group\n .updateGroup(encodeURLString(groupName), {\n members: members,\n status: nextStatus ? \"enabled\" : \"disabled\",\n })\n .then(() => {\n fetchGroupInfo();\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n\n const groupsTabContent = (\n {\n dispatch(setHelpName(\"groups_members\"));\n }}\n >\n \n {\n setMemberFilter(searchText);\n }}\n value={memberFilter}\n sx={{\n maxWidth: 280,\n }}\n />\n \n \n }\n onClick={() => {\n setUsersOpen(true);\n }}\n disabled={!canEditGroupMembers}\n />\n \n \n \n }\n >\n Members\n \n \n \n \n {\n navigate(`${IAM_PAGES.USERS}/${encodeURLString(userName)}`);\n },\n isDisabled: !viewUser,\n },\n ]}\n columns={[{ label: \"Access Key\" }]}\n selectedItems={[]}\n isLoading={false}\n records={filteredMembers}\n entityName=\"Users\"\n />\n \n \n \n \n );\n\n const policiesTabContent = (\n \n {\n dispatch(setHelpName(\"groups_policies\"));\n }}\n >\n \n }\n onClick={() => {\n setPolicyOpen(true);\n }}\n disabled={!canSetPolicies}\n />\n \n }\n >\n Policies\n \n \n \n \n {\n navigate(`${IAM_PAGES.POLICIES}/${encodeURLString(policy)}`);\n },\n isDisabled: !canViewPolicy,\n },\n ]}\n columns={[{ label: \"Policy\" }]}\n isLoading={false}\n records={groupPolicies}\n entityName=\"Policies\"\n />\n \n \n \n );\n\n return (\n \n {policyOpen ? (\n {\n setPolicyOpen(false);\n fetchGroupInfo();\n dispatch(setSelectedPolicies([]));\n }}\n />\n ) : null}\n\n {usersOpen ? (\n {}}\n title={memberActionText}\n groupStatus={groupEnabled}\n preSelectedUsers={members}\n open={usersOpen}\n onClose={() => {\n setUsersOpen(false);\n fetchGroupInfo();\n }}\n />\n ) : null}\n\n {deleteOpen && (\n {\n setDeleteOpen(false);\n if (isDelSuccess) {\n navigate(IAM_PAGES.GROUPS);\n }\n }}\n />\n )}\n \n navigate(IAM_PAGES.GROUPS)}\n />\n \n }\n actions={}\n />\n \n \n \n \n \n }\n title={groupName}\n subTitle={null}\n bottomBorder\n actions={\n \n Group Status:\n \n {isGroupEnabled ? \"Enabled\" : \"Disabled\"}\n \n \n \n {\n toggleGroupStatus(!isGroupEnabled);\n }}\n switchOnly\n />\n \n \n\n \n }\n onClick={() => {\n setDeleteOpen(true);\n }}\n />\n \n \n }\n sx={{ marginBottom: 15 }}\n />\n \n\n \n \n \n \n \n );\n};\n\nexport default GroupsDetails;\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, Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { Box, DataTable, Grid, ProgressBar } from \"mds\";\n\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface IGroupsProps {\n selectedUsers: string[];\n setSelectedUsers: any;\n editMode?: boolean;\n}\n\nconst UsersSelectors = ({\n selectedUsers,\n setSelectedUsers,\n editMode = false,\n}: IGroupsProps) => {\n const dispatch = useAppDispatch();\n //Local States\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const fetchUsers = useCallback(() => {\n api.users\n .listUsers()\n .then((res) => {\n let users = get(res.data, \"users\", []);\n\n if (!users) {\n users = [];\n }\n\n setRecords(users.sort(usersSort));\n isLoading(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n isLoading(false);\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchUsers();\n }\n }, [loading, fetchUsers]);\n\n const selUsers = !selectedUsers ? [] : selectedUsers;\n\n //Fetch Actions\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selUsers]; // We clone the selectedGroups array\n\n if (checked) {\n // If the user has checked this field we need to push this to selectedGroupsList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n setSelectedUsers(elements);\n\n return elements;\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.accessKey.includes(filter),\n );\n\n return (\n \n \n {loading && }\n {records?.length > 0 ? (\n \n \n \n \n \n \n ) : (\n \n No Users to display\n \n )}\n \n \n );\n};\n\nexport default UsersSelectors;\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 { Box, DataTable, Grid, ProgressBar } from \"mds\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"../../../api\";\n\ninterface ISelectPolicyProps {\n selectedPolicy?: string[];\n noTitle?: boolean;\n}\n\nconst PolicySelectors = ({ noTitle = false }: ISelectPolicyProps) => {\n const dispatch = useAppDispatch();\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api.policies\n .listPolicies()\n .then((res) => {\n const policies = res.data.policies ?? [];\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchPolicies();\n }\n }, [loading, fetchPolicies]);\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...currentPolicies]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n // remove empty values\n elements = elements.filter((element) => element !== \"\");\n\n dispatch(setSelectedPolicies(elements));\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter),\n );\n\n return (\n \n {loading && }\n {records.length > 0 ? (\n \n \n {\n setFilter(value);\n }}\n value={filter}\n label={!noTitle ? \"Assign Policies\" : \"\"}\n />\n \n\n \n \n ) : (\n \n No Policies Available\n \n )}\n \n );\n};\n\nexport default PolicySelectors;\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 { Button, FormLayout, ReadBox, Grid, ProgressBar } from \"mds\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { User } from \"../Users/types\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport PolicySelectors from \"./PolicySelectors\";\nimport api from \"../../../common/api\";\n\ninterface ISetPolicyProps {\n closeModalAndRefresh: () => void;\n selectedUser: User | null;\n selectedGroups: string[] | null;\n open: boolean;\n}\n\nconst SetPolicy = ({\n closeModalAndRefresh,\n selectedUser,\n selectedGroups,\n open,\n}: ISetPolicyProps) => {\n const dispatch = useAppDispatch();\n //Local States\n const [loading, setLoading] = useState(false);\n const [actualPolicy, setActualPolicy] = useState([]);\n const [selectedPolicy, setSelectedPolicy] = useState([]);\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n const setPolicyAction = () => {\n let users = null;\n let groups = null;\n if (selectedGroups !== null) {\n groups = selectedGroups;\n } else {\n if (selectedUser !== null) {\n users = [selectedUser.accessKey] || [\" \"];\n }\n }\n\n setLoading(true);\n\n api\n .invoke(\"PUT\", `/api/v1/set-policy-multi`, {\n name: currentPolicies,\n groups: groups,\n users: users,\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n };\n\n const fetchGroupInformation = () => {\n if (selectedGroups?.length === 1) {\n api\n .invoke(\"GET\", `/api/v1/group/${encodeURLString(selectedGroups[0])}`)\n .then((res: any) => {\n const groupPolicy: String = get(res, \"policy\", \"\");\n setActualPolicy(groupPolicy.split(\",\"));\n setSelectedPolicy(groupPolicy.split(\",\"));\n dispatch(setSelectedPolicies(groupPolicy.split(\",\")));\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(err));\n setLoading(false);\n });\n }\n };\n\n const resetSelection = () => {\n setSelectedPolicy(actualPolicy);\n dispatch(setSelectedPolicies(actualPolicy));\n };\n\n useEffect(() => {\n if (open) {\n if (selectedGroups?.length === 1) {\n fetchGroupInformation();\n return;\n }\n\n const userPolicy: string[] = get(selectedUser, \"policy\", []);\n setActualPolicy(userPolicy);\n setSelectedPolicy(userPolicy);\n dispatch(setSelectedPolicies(userPolicy));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, selectedGroups?.length, selectedUser]);\n\n const userName = get(selectedUser, \"accessKey\", \"\");\n\n return (\n {\n closeModalAndRefresh();\n }}\n modalOpen={open}\n title=\"Set Policies\"\n >\n \n {(selectedGroups?.length === 1 || selectedUser != null) && (\n \n \n {selectedGroups !== null ? selectedGroups[0] : userName}\n \n \n {actualPolicy.join(\", \")}\n \n \n )}\n {selectedGroups && selectedGroups?.length > 1 && (\n \n {selectedGroups.join(\", \")}\n \n )}\n \n \n \n \n \n \n \n \n {loading && (\n \n \n \n )}\n \n );\n};\n\nexport default SetPolicy;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n"],"names":["_ref","selectedGroups","deleteOpen","closeDeleteModalAndRefresh","dispatch","useAppDispatch","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","renderGroups","map","group","_jsx","children","ConfirmDialog","title","concat","length","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onDeleteGroups","encodeURLString","onClose","confirmationContent","_jsxs","Fragment","groupStatus","preSelectedUsers","selectedGroup","open","selectedUsers","setSelectedUsers","useState","ModalWrapper","modalOpen","AddMembersToGroupIcon","FormLayout","withBorders","containerPadding","ReadBox","label","sx","width","UsersSelectors","editMode","Grid","item","xs","modalStyleUtils","modalButtonBar","Button","id","type","variant","onClick","api","updateGroup","members","status","then","catch","setModalErrorSnackMessage","errorToHandler","error","formatPolicy","policy","arguments","undefined","split","GroupsDetails","navigate","useNavigate","params","useParams","groupDetails","setGroupDetails","policyOpen","setPolicyOpen","usersOpen","setUsersOpen","setDeleteOpen","memberFilter","setMemberFilter","currentTab","setCurrentTab","groupName","decodeURLString","groupEnabled","filteredMembers","filter","elementItem","includes","viewUser","hasPermission","CONSOLE_UI_RESOURCE","viewUserPermissions","useEffect","setHelpName","fetchGroupInfo","groupPolicies","isGroupEnabled","memberActionText","getGroupDetails","getGroupPermissions","canEditGroupMembers","editGroupMembersPermissions","canSetPolicies","setGroupPoliciesPermissions","canViewPolicy","viewPolicyPermissions","groupInfo","res","data","groupsTabContent","Box","onMouseMove","SectionTitle","separator","marginBottom","actions","display","gap","SearchBox","placeholder","onChange","searchText","value","maxWidth","SecureComponent","resource","scopes","addUserToGroupPermissions","errorProps","disabled","TooltipWrapper","tooltip","permissionTooltipHelper","createGroupPermissions","icon","AddIcon","listUsersPermissions","DataTable","itemActions","userName","IAM_PAGES","USERS","isDisabled","columns","selectedItems","records","entityName","policiesTabContent","IAMPoliciesIcon","POLICIES","SetPolicy","selectedUser","closeModalAndRefresh","setSelectedPolicies","AddGroupMember","onSaveClick","DeleteGroup","isDelSuccess","GROUPS","PageHeaderWrapper","BackLink","HelpMenu","PageLayout","ScreenTitle","GroupsIcon","subTitle","bottomBorder","fontSize","alignItems","style","fontWeight","enableDisableGroupPermissions","matchAll","Switch","indicatorLabels","checked","name","nextStatus","switchOnly","TrashIcon","Tabs","options","tabConfig","content","currentTabOrPath","onTabClick","setRecords","loading","setFilter","fetchUsers","useCallback","users","listUsers","get","sort","usersSort","selUsers","filteredRecords","accessKey","className","ProgressBar","elementKey","onSelect","e","targetD","target","elements","push","element","idField","customPaperHeight","textAlign","padding","noTitle","currentPolicies","useSelector","state","createUser","selectedPolicies","fetchPolicies","policies","listPolicies","_res$data$policies","policySort","setLoading","actualPolicy","setActualPolicy","selectedPolicy","setSelectedPolicy","invoke","groupPolicy","userPolicy","join","PolicySelectors","resetSelection","color","setPolicyAction","groups","a","b","stringSort","policyDetailsSort"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2185.47993549.chunk.js b/portal-ui/build/static/js/2185.47993549.chunk.js deleted file mode 100644 index 82d84a9c3..000000000 --- a/portal-ui/build/static/js/2185.47993549.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2185],{62185:function(e,t,n){n.r(t);var r=n(29439),a=n(72791),i=n(57689),o=n(78687),l=n(29945),s=n(56028),c=n(23814),u=n(45248),d=n(44690),f=n(87995),h=n(80184),x=(0,o.$j)((function(e){return{simplePath:e.objectBrowser.simplePath}}));t.default=x((function(e){var t=e.modalOpen,n=(e.folderName,e.bucketName),x=e.onClose,p=e.simplePath,m=(0,d.TL)(),v=(0,i.s0)(),j=(0,a.useState)(""),b=(0,r.Z)(j,2),w=b[0],g=b[1],C=(0,a.useState)(!1),P=(0,r.Z)(C,2),k=P[0],Z=P[1],y=(0,a.useState)(n),z=(0,r.Z)(y,2),B=z[0],E=z[1],S=(0,o.v9)((function(e){return e.objectBrowser.records}));(0,a.useEffect)((function(){if(p){var e="".concat(n).concat(n.endsWith("/")||p.startsWith("/")?"":"/").concat(p);E(e)}}),[p,n]);var F=function(){var e="/";p&&(e=p.endsWith("/")?p:"".concat(p,"/"));if(-1===S.findIndex((function(t){return t.name===e+w}))){var t=w.split("/").filter((function(e){return""!==e.trim()})).join("/");"/"===e.slice(0,1)&&(e=e.slice(1));var r="/browser/".concat(n,"/").concat((0,u.LL)("".concat(e).concat(t,"/")));v(r),x()}else m((0,f.zb)({errorMessage:"Folder cannot have the same name as an existing file",detailedError:""}))};(0,a.useEffect)((function(){var e=!0;0===w.trim().length&&(e=!1),Z(e)}),[w]);return(0,h.jsx)(a.Fragment,{children:(0,h.jsx)(s.Z,{modalOpen:t,title:"Choose or create a new path",onClose:x,titleIcon:(0,h.jsx)(l.Z9m,{}),children:(0,h.jsxs)(l.ltY,{withBorders:!1,containerPadding:!1,children:[(0,h.jsxs)(l.xuv,{className:"inputItem",sx:{display:"flex",gap:8},children:[(0,h.jsx)("strong",{children:"Current Path:"})," ",(0,h.jsx)("br",{}),(0,h.jsx)(l.xuv,{sx:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",fontSize:14,textAlign:"left"},dir:"rtl",children:B})]}),(0,h.jsx)(l.Wzg,{value:w,label:"New Folder Path",id:"folderPath",name:"folderPath",placeholder:"Enter the new Folder Path",onChange:function(e){g(e.target.value)},onKeyPress:function(e){"Enter"===e.code&&""!==w&&F()},required:!0}),(0,h.jsxs)(l.rjZ,{item:!0,xs:12,sx:c.ID.modalButtonBar,children:[(0,h.jsx)(l.zxk,{id:"clear",type:"button",color:"primary",variant:"regular",onClick:function(){g("")},label:"Clear"}),(0,h.jsx)(l.zxk,{id:"create",type:"submit",variant:"callAction",disabled:!k,onClick:F,label:"Create"})]})]})})})}))}}]); -//# sourceMappingURL=2185.47993549.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2185.47993549.chunk.js.map b/portal-ui/build/static/js/2185.47993549.chunk.js.map deleted file mode 100644 index ce903f139..000000000 --- a/portal-ui/build/static/js/2185.47993549.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2185.47993549.chunk.js","mappings":"iPA6LMA,GAAYC,EAAAA,EAAAA,KAJM,SAAHC,GAAmB,MAAkB,CACxDC,WADsCD,EAAbE,cACCD,WAC3B,IAID,UAAeH,GArJS,SAAHK,GAMD,IALlBC,EAASD,EAATC,UAEAC,GADUF,EAAVG,WACUH,EAAVE,YACAE,EAAOJ,EAAPI,QACAN,EAAUE,EAAVF,WAEMO,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MAEjBC,GAA8BC,EAAAA,EAAAA,UAAS,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAnCI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1BI,GAAsCL,EAAAA,EAAAA,WAAkB,GAAMM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAAvDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAClCG,GAAsCT,EAAAA,EAAAA,UAASR,GAAWkB,GAAAR,EAAAA,EAAAA,GAAAO,EAAA,GAAnDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAE5BG,GAAUC,EAAAA,EAAAA,KAAY,SAACC,GAAe,OAAKA,EAAM1B,cAAcwB,OAAO,KAE5EG,EAAAA,EAAAA,YAAU,WACR,GAAI5B,EAAY,CACd,IAAM6B,EAAO,GAAAC,OAAM1B,GAAU0B,OAC1B1B,EAAW2B,SAAS,MAAS/B,EAAWgC,WAAW,KAAa,GAAN,KAAQF,OAClE9B,GAEHwB,EAAeK,EACjB,CACF,GAAG,CAAC7B,EAAYI,IAEhB,IAIM6B,EAAgB,WACpB,IAAIC,EAAa,IAEblC,IACFkC,EAAalC,EAAW+B,SAAS,KAAO/B,EAAU,GAAA8B,OAAM9B,EAAU,MAMpE,IAAuC,IAAnCyB,EAAQU,WAHO,SAACC,GAAwB,OAC1CA,EAAOC,OAASH,EAAanB,CAAQ,IAEvC,CAUA,IAAMuB,EAAevB,EAClBwB,MAAM,KACNC,QAAO,SAACC,GAAS,MAA0B,KAArBA,EAAUC,MAAa,IAC7CC,KAAK,KAEuB,MAA3BT,EAAWU,MAAM,EAAG,KACtBV,EAAaA,EAAWU,MAAM,IAGhC,IAAMf,EAAO,YAAAC,OAAe1B,EAAU,KAAA0B,QAAIe,EAAAA,EAAAA,IAAgB,GAADf,OACpDI,GAAUJ,OAAGQ,EAAY,OAG9B7B,EAASoB,GACTvB,GAhBA,MAPEC,GACEuC,EAAAA,EAAAA,IAA0B,CACxBC,aAAc,uDACdC,cAAe,KAqBvB,GAEApB,EAAAA,EAAAA,YAAU,WACR,IAAIqB,GAAQ,EACkB,IAA1BlC,EAAQ2B,OAAOQ,SACjBD,GAAQ,GAEV7B,EAAe6B,EACjB,GAAG,CAAClC,IAYJ,OACEoC,EAAAA,EAAAA,KAACC,EAAAA,SAAc,CAAAC,UACbF,EAAAA,EAAAA,KAACG,EAAAA,EAAY,CACXnD,UAAWA,EACXoD,MAAM,8BACNjD,QAASA,EACTkD,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAAIJ,UAEjCK,EAAAA,EAAAA,MAACC,EAAAA,IAAU,CAACC,aAAa,EAAOC,kBAAkB,EAAMR,SAAA,EACtDK,EAAAA,EAAAA,MAACI,EAAAA,IAAG,CAACC,UAAW,YAAaC,GAAI,CAAEC,QAAS,OAAQC,IAAK,GAAIb,SAAA,EAC3DF,EAAAA,EAAAA,KAAA,UAAAE,SAAQ,kBAAsB,KAACF,EAAAA,EAAAA,KAAA,UAC/BA,EAAAA,EAAAA,KAACW,EAAAA,IAAG,CACFE,GAAI,CACFG,aAAc,WACdC,WAAY,SACZC,SAAU,SACVC,SAAU,GACVC,UAAW,QAEbC,IAAK,MAAMnB,SAEV9B,QAGL4B,EAAAA,EAAAA,KAACsB,EAAAA,IAAQ,CACPC,MAAO3D,EACP4D,MAAO,kBACPC,GAAI,aACJvC,KAAM,aACNwC,YAAa,4BACbC,SAxCU,SAACC,GACnB/D,EAAW+D,EAAEC,OAAON,MACtB,EAuCUO,WArCS,SAACF,GACH,UAAXA,EAAEG,MAAgC,KAAZnE,GACxBkB,GAEJ,EAkCUkD,UAAQ,KAEVzB,EAAAA,EAAAA,MAAC0B,EAAAA,IAAI,CAACC,MAAI,EAACC,GAAI,GAAItB,GAAIuB,EAAAA,GAAgBC,eAAenC,SAAA,EACpDF,EAAAA,EAAAA,KAACsC,EAAAA,IAAM,CACLb,GAAI,QACJc,KAAK,SACLC,MAAM,UACNC,QAAQ,UACRC,QAnGM,WAChB7E,EAAW,GACb,EAkGY2D,MAAO,WAETxB,EAAAA,EAAAA,KAACsC,EAAAA,IAAM,CACLb,GAAI,SACJc,KAAK,SACLE,QAAQ,aACRE,UAAW3E,EACX0E,QAAS5D,EACT0C,MAAO,oBAOrB,G","sources":["screens/Console/Buckets/ListBuckets/Objects/ListObjects/CreatePathModal.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, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { connect, useSelector } from \"react-redux\";\nimport {\n Button,\n CreateNewPathIcon,\n InputBox,\n Grid,\n FormLayout,\n Box,\n} from \"mds\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { BucketObjectItem } from \"./types\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\n\ninterface ICreatePath {\n modalOpen: boolean;\n bucketName: string;\n folderName: string;\n onClose: () => any;\n simplePath: string | null;\n}\n\nconst CreatePathModal = ({\n modalOpen,\n folderName,\n bucketName,\n onClose,\n simplePath,\n}: ICreatePath) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [pathUrl, setPathUrl] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n const [currentPath, setCurrentPath] = useState(bucketName);\n\n const records = useSelector((state: AppState) => state.objectBrowser.records);\n\n useEffect(() => {\n if (simplePath) {\n const newPath = `${bucketName}${\n !bucketName.endsWith(\"/\") && !simplePath.startsWith(\"/\") ? \"/\" : \"\"\n }${simplePath}`;\n\n setCurrentPath(newPath);\n }\n }, [simplePath, bucketName]);\n\n const resetForm = () => {\n setPathUrl(\"\");\n };\n\n const createProcess = () => {\n let folderPath = \"/\";\n\n if (simplePath) {\n folderPath = simplePath.endsWith(\"/\") ? simplePath : `${simplePath}/`;\n }\n\n const sharesName = (record: BucketObjectItem) =>\n record.name === folderPath + pathUrl;\n\n if (records.findIndex(sharesName) !== -1) {\n dispatch(\n setModalErrorSnackMessage({\n errorMessage: \"Folder cannot have the same name as an existing file\",\n detailedError: \"\",\n }),\n );\n return;\n }\n\n const cleanPathURL = pathUrl\n .split(\"/\")\n .filter((splitItem) => splitItem.trim() !== \"\")\n .join(\"/\");\n\n if (folderPath.slice(0, 1) === \"/\") {\n folderPath = folderPath.slice(1); //trim '/'\n }\n\n const newPath = `/browser/${bucketName}/${encodeURLString(\n `${folderPath}${cleanPathURL}/`,\n )}`;\n\n navigate(newPath);\n onClose();\n };\n\n useEffect(() => {\n let valid = true;\n if (pathUrl.trim().length === 0) {\n valid = false;\n }\n setIsFormValid(valid);\n }, [pathUrl]);\n\n const inputChange = (e: React.ChangeEvent) => {\n setPathUrl(e.target.value);\n };\n\n const keyPressed = (e: any) => {\n if (e.code === \"Enter\" && pathUrl !== \"\") {\n createProcess();\n }\n };\n\n return (\n \n }\n >\n \n \n Current Path:
\n \n {currentPath}\n
\n \n \n \n \n \n \n
\n \n
\n );\n};\n\nconst mapStateToProps = ({ objectBrowser }: AppState) => ({\n simplePath: objectBrowser.simplePath,\n});\n\nconst connector = connect(mapStateToProps);\n\nexport default connector(CreatePathModal);\n"],"names":["connector","connect","_ref2","simplePath","objectBrowser","_ref","modalOpen","bucketName","folderName","onClose","dispatch","useAppDispatch","navigate","useNavigate","_useState","useState","_useState2","_slicedToArray","pathUrl","setPathUrl","_useState3","_useState4","isFormValid","setIsFormValid","_useState5","_useState6","currentPath","setCurrentPath","records","useSelector","state","useEffect","newPath","concat","endsWith","startsWith","createProcess","folderPath","findIndex","record","name","cleanPathURL","split","filter","splitItem","trim","join","slice","encodeURLString","setModalErrorSnackMessage","errorMessage","detailedError","valid","length","_jsx","React","children","ModalWrapper","title","titleIcon","CreateNewPathIcon","_jsxs","FormLayout","withBorders","containerPadding","Box","className","sx","display","gap","textOverflow","whiteSpace","overflow","fontSize","textAlign","dir","InputBox","value","label","id","placeholder","onChange","e","target","onKeyPress","code","required","Grid","item","xs","modalStyleUtils","modalButtonBar","Button","type","color","variant","onClick","disabled"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2185.e19ab290.chunk.js b/portal-ui/build/static/js/2185.e19ab290.chunk.js new file mode 100644 index 000000000..cb7fa3592 --- /dev/null +++ b/portal-ui/build/static/js/2185.e19ab290.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2185],{62185:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});var r=a(72791),s=a(57689),l=a(78687),n=a(29945),o=a(56028),i=a(23814),c=a(45248),d=a(44690),h=a(87995),u=a(80184);const p=(0,l.$j)((e=>{let{objectBrowser:t}=e;return{simplePath:t.simplePath}}))((e=>{let{modalOpen:t,folderName:a,bucketName:p,onClose:m,simplePath:x,limitedSubPath:f}=e;const w=(0,d.TL)(),j=(0,s.s0)(),[b,v]=(0,r.useState)(""),[g,P]=(0,r.useState)(!1),[y,C]=(0,r.useState)(p),k=(0,l.v9)((e=>e.objectBrowser.records));(0,r.useEffect)((()=>{if(x){const e="".concat(p).concat(p.endsWith("/")||x.startsWith("/")?"":"/").concat(x);C(e)}}),[x,p]);const S=()=>{let e="/";x&&(e=x.endsWith("/")?x:"".concat(x,"/"));if(-1!==k.findIndex((t=>t.name===e+b)))return void w((0,h.zb)({errorMessage:"Folder cannot have the same name as an existing file",detailedError:""}));const t=b.split("/").filter((e=>""!==e.trim())).join("/");"/"===e.slice(0,1)&&(e=e.slice(1));const a="/browser/".concat(p,"/").concat((0,c.LL)("".concat(e).concat(t,"/")));j(a),m()};(0,r.useEffect)((()=>{let e=!0;0===b.trim().length&&(e=!1),P(e)}),[b]);return(0,u.jsx)(r.Fragment,{children:(0,u.jsx)(o.Z,{modalOpen:t,title:"Choose or create a new path",onClose:m,titleIcon:(0,u.jsx)(n.Z9m,{}),children:(0,u.jsxs)(n.ltY,{withBorders:!1,containerPadding:!1,children:[(0,u.jsxs)(n.xuv,{className:"inputItem",sx:{display:"flex",gap:8},children:[(0,u.jsx)("strong",{children:"Current Path:"})," ",(0,u.jsx)("br",{}),(0,u.jsx)(n.xuv,{sx:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",fontSize:14,textAlign:"left"},dir:"rtl",children:y})]}),(0,u.jsx)(n.Wzg,{value:b,label:"New Folder Path",id:"folderPath",name:"folderPath",placeholder:"Enter the new Folder Path",onChange:e=>{v(e.target.value)},onKeyPress:e=>{"Enter"===e.code&&""!==b&&S()},required:!0,tooltip:f?"You may only have write access on a limited set of subpaths within this path. Please carefully review your User permissions to understand the paths to which you may write.":""}),(0,u.jsxs)(n.rjZ,{item:!0,xs:12,sx:i.ID.modalButtonBar,children:[(0,u.jsx)(n.zxk,{id:"clear",type:"button",color:"primary",variant:"regular",onClick:()=>{v("")},label:"Clear"}),(0,u.jsx)(n.zxk,{id:"create",type:"submit",variant:"callAction",disabled:!g,onClick:S,label:"Create"})]})]})})})}))}}]); +//# sourceMappingURL=2185.e19ab290.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2185.e19ab290.chunk.js.map b/portal-ui/build/static/js/2185.e19ab290.chunk.js.map new file mode 100644 index 000000000..b02c663a9 --- /dev/null +++ b/portal-ui/build/static/js/2185.e19ab290.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2185.e19ab290.chunk.js","mappings":"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","sources":["screens/Console/Buckets/ListBuckets/Objects/ListObjects/CreatePathModal.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, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { connect, useSelector } from \"react-redux\";\nimport {\n Button,\n CreateNewPathIcon,\n InputBox,\n Grid,\n FormLayout,\n Box,\n} from \"mds\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { BucketObjectItem } from \"./types\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\n\ninterface ICreatePath {\n modalOpen: boolean;\n bucketName: string;\n folderName: string;\n onClose: () => any;\n simplePath: string | null;\n limitedSubPath?: boolean;\n}\n\nconst CreatePathModal = ({\n modalOpen,\n folderName,\n bucketName,\n onClose,\n simplePath,\n limitedSubPath,\n}: ICreatePath) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [pathUrl, setPathUrl] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n const [currentPath, setCurrentPath] = useState(bucketName);\n\n const records = useSelector((state: AppState) => state.objectBrowser.records);\n\n useEffect(() => {\n if (simplePath) {\n const newPath = `${bucketName}${\n !bucketName.endsWith(\"/\") && !simplePath.startsWith(\"/\") ? \"/\" : \"\"\n }${simplePath}`;\n\n setCurrentPath(newPath);\n }\n }, [simplePath, bucketName]);\n\n const resetForm = () => {\n setPathUrl(\"\");\n };\n\n const createProcess = () => {\n let folderPath = \"/\";\n\n if (simplePath) {\n folderPath = simplePath.endsWith(\"/\") ? simplePath : `${simplePath}/`;\n }\n\n const sharesName = (record: BucketObjectItem) =>\n record.name === folderPath + pathUrl;\n\n if (records.findIndex(sharesName) !== -1) {\n dispatch(\n setModalErrorSnackMessage({\n errorMessage: \"Folder cannot have the same name as an existing file\",\n detailedError: \"\",\n }),\n );\n return;\n }\n\n const cleanPathURL = pathUrl\n .split(\"/\")\n .filter((splitItem) => splitItem.trim() !== \"\")\n .join(\"/\");\n\n if (folderPath.slice(0, 1) === \"/\") {\n folderPath = folderPath.slice(1); //trim '/'\n }\n\n const newPath = `/browser/${bucketName}/${encodeURLString(\n `${folderPath}${cleanPathURL}/`,\n )}`;\n\n navigate(newPath);\n onClose();\n };\n\n useEffect(() => {\n let valid = true;\n if (pathUrl.trim().length === 0) {\n valid = false;\n }\n setIsFormValid(valid);\n }, [pathUrl]);\n\n const inputChange = (e: React.ChangeEvent) => {\n setPathUrl(e.target.value);\n };\n\n const keyPressed = (e: any) => {\n if (e.code === \"Enter\" && pathUrl !== \"\") {\n createProcess();\n }\n };\n\n return (\n \n }\n >\n \n \n Current Path:
\n \n {currentPath}\n
\n \n \n \n \n \n \n
\n \n
\n );\n};\n\nconst mapStateToProps = ({ objectBrowser }: AppState) => ({\n simplePath: objectBrowser.simplePath,\n});\n\nconst connector = connect(mapStateToProps);\n\nexport default connector(CreatePathModal);\n"],"names":["connect","_ref2","objectBrowser","simplePath","_ref","modalOpen","folderName","bucketName","onClose","limitedSubPath","dispatch","useAppDispatch","navigate","useNavigate","pathUrl","setPathUrl","useState","isFormValid","setIsFormValid","currentPath","setCurrentPath","records","useSelector","state","useEffect","newPath","concat","endsWith","startsWith","createProcess","folderPath","findIndex","record","name","setModalErrorSnackMessage","errorMessage","detailedError","cleanPathURL","split","filter","splitItem","trim","join","slice","encodeURLString","valid","length","_jsx","React","children","ModalWrapper","title","titleIcon","CreateNewPathIcon","_jsxs","FormLayout","withBorders","containerPadding","Box","className","sx","display","gap","textOverflow","whiteSpace","overflow","fontSize","textAlign","dir","InputBox","value","label","id","placeholder","onChange","e","target","onKeyPress","code","required","tooltip","Grid","item","xs","modalStyleUtils","modalButtonBar","Button","type","color","variant","onClick","resetForm","disabled"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.7e05398b.chunk.js b/portal-ui/build/static/js/2338.7e05398b.chunk.js deleted file mode 100644 index 040f0b2e6..000000000 --- a/portal-ui/build/static/js/2338.7e05398b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2338],{72338:function(e,t,n){n.r(t),n.d(t,{default:function(){return b}});var i=n(4942),o=n(72791),r=n(57689),a=n(34345),s=n(56087),c=n(17691),l=n(26181),m=n.n(l),u=n(80184),g=c.ZP.button((function(e){var t=e.theme;return{background:m()(t,"boxBackground","#FFF"),border:"".concat(m()(t,"borderColor","#E2E2E2")," 1px solid"),borderRadius:5,height:80,display:"flex",alignItems:"center",justifyContent:"start",marginBottom:16,marginRight:8,cursor:"pointer",overflow:"hidden","&:hover":{backgroundColor:m()(t,"buttons.regular.hover.background","#ebebeb")},"& .imageContainer":{width:80,"& .min-icon":{maxWidth:46,maxHeight:46}},"& .tierNotifTitle":{color:m()(t,"buttons.callAction.enabled.background","#07193E"),fontSize:16,fontFamily:"Inter,sans-serif",paddingLeft:18,fontWeight:"bold"}}})),d=function(e){var t=e.onClick,n=e.icon,i=e.name;return(0,u.jsxs)(g,{onClick:function(){t(i)},children:[(0,u.jsx)("span",{className:"imageContainer",children:n}),(0,u.jsx)("span",{className:"tierNotifTitle",children:i})]})},h=n(29945),f=n(47974),j=n(99670),p=n(87995),x=n(44690),b=function(){var e=(0,r.s0)(),t=(0,x.TL)();return(0,o.useEffect)((function(){t((0,p.Sc)("tier-type-selector"))}),[t]),(0,u.jsxs)(o.Fragment,{children:[(0,u.jsx)(f.Z,{label:(0,u.jsx)(o.Fragment,{children:(0,u.jsx)(h.hbI,{label:"Tier Types",onClick:function(){return e(s.gA.TIERS)}})}),actions:(0,u.jsx)(j.Z,{})}),(0,u.jsx)(h.Xgh,{children:(0,u.jsx)(h.ltY,{title:"Select Tier Type",icon:(0,u.jsx)(h.y2Y,{}),helpBox:(0,u.jsx)(h.KfX,{iconComponent:(0,u.jsx)(h.y2Y,{}),title:"Tier Types",help:(0,u.jsxs)(o.Fragment,{children:["MinIO supports creating object transition lifecycle management rules, where MinIO can automatically move an object to a remote storage \u201ctier\u201d.",(0,u.jsx)("br",{}),(0,u.jsx)("br",{}),"MinIO supports the following Tier types:",(0,u.jsx)("br",{}),(0,u.jsxs)("ul",{children:[(0,u.jsx)("li",{children:(0,u.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-s3.html#minio-lifecycle-management-transition-to-s3?ref=con",target:"_blank",rel:"noopener",children:"MinIO or other S3-compatible storage"})}),(0,u.jsx)("li",{children:(0,u.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-s3.html#minio-lifecycle-management-transition-to-s3?ref=con",target:"_blank",rel:"noopener",children:"Amazon S3"})}),(0,u.jsx)("li",{children:(0,u.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-gcs.html#minio-lifecycle-management-transition-to-gcs?ref=con",target:"_blank",rel:"noopener",children:"Google Cloud Storage"})}),(0,u.jsx)("li",{children:(0,u.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-azure.html#minio-lifecycle-management-transition-to-azure?ref=con",target:"_blank",rel:"noopener",children:"Microsoft Azure Blob Storage"})})]})]})}),children:(0,u.jsx)(h.xuv,{sx:(0,i.Z)({margin:"15px",display:"grid",gridGap:"20px",gridTemplateColumns:"repeat(2, 1fr)"},"@media (max-width: ".concat(h.Egj.md,"px)"),{gridTemplateColumns:"repeat(1, 1fr)"}),children:a.Bh.map((function(t,n){return(0,u.jsx)(d,{name:t.targetTitle,onClick:function(){var n;n=t.serviceName,e("".concat(s.gA.TIERS_ADD,"/").concat(n))},icon:t.logo},"tierOpt-".concat(n.toString,"-").concat(t.targetTitle))}))})})})]})}},34345:function(e,t,n){n.d(t,{Bh:function(){return l},Pp:function(){return r},b2:function(){return s},f0:function(){return a},vB:function(){return c}});var i=n(29945),o=n(80184),r="minio",a="gcs",s="s3",c="azure",l=[{serviceName:r,targetTitle:"MinIO",logo:(0,o.jsx)(i.$E9,{}),logoXs:(0,o.jsx)(i.YEz,{})},{serviceName:a,targetTitle:"Google Cloud Storage",logo:(0,o.jsx)(i.UQG,{}),logoXs:(0,o.jsx)(i.Vwu,{})},{serviceName:s,targetTitle:"AWS S3",logo:(0,o.jsx)(i.feu,{}),logoXs:(0,o.jsx)(i.Xj3,{})},{serviceName:c,targetTitle:"Azure",logo:(0,o.jsx)(i.jze,{}),logoXs:(0,o.jsx)(i.nAe,{})}]}}]); -//# sourceMappingURL=2338.7e05398b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.7e05398b.chunk.js.map b/portal-ui/build/static/js/2338.7e05398b.chunk.js.map deleted file mode 100644 index e19ef0369..000000000 --- a/portal-ui/build/static/js/2338.7e05398b.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2338.7e05398b.chunk.js","mappings":"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","sources":["screens/Console/Configurations/TiersConfiguration/TierTypeCard.tsx","screens/Console/Configurations/TiersConfiguration/TierTypeSelector.tsx","screens/Console/Configurations/TiersConfiguration/utils.tsx"],"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 .\n\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport get from \"lodash/get\";\n\nconst TierButtonBase = styled.button(({ theme }) => ({\n background: get(theme, \"boxBackground\", \"#FFF\"),\n border: `${get(theme, \"borderColor\", \"#E2E2E2\")} 1px solid`,\n borderRadius: 5,\n height: 80,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"start\",\n marginBottom: 16,\n marginRight: 8,\n cursor: \"pointer\",\n overflow: \"hidden\",\n \"&:hover\": {\n backgroundColor: get(theme, \"buttons.regular.hover.background\", \"#ebebeb\"),\n },\n \"& .imageContainer\": {\n width: 80,\n \"& .min-icon\": {\n maxWidth: 46,\n maxHeight: 46,\n },\n },\n \"& .tierNotifTitle\": {\n color: get(theme, \"buttons.callAction.enabled.background\", \"#07193E\"),\n fontSize: 16,\n fontFamily: \"Inter,sans-serif\",\n paddingLeft: 18,\n fontWeight: \"bold\",\n },\n}));\n\ntype TierTypeCardProps = {\n onClick: (name: string) => void;\n icon?: any;\n name: string;\n};\nconst TierTypeCard = ({ onClick, icon, name }: TierTypeCardProps) => {\n return (\n {\n onClick(name);\n }}\n >\n {icon}\n {name}\n \n );\n};\n\nexport default TierTypeCard;\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 } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { tierTypes } from \"./utils\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport TierTypeCard from \"./TierTypeCard\";\nimport {\n BackLink,\n Box,\n breakPoints,\n FormLayout,\n HelpBox,\n PageLayout,\n TiersIcon,\n} from \"mds\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../../HelpMenu\";\nimport { setHelpName } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\nconst TierTypeSelector = () => {\n const navigate = useNavigate();\n\n const typeSelect = (selectName: string) => {\n navigate(`${IAM_PAGES.TIERS_ADD}/${selectName}`);\n };\n const dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setHelpName(\"tier-type-selector\"));\n }, [dispatch]);\n\n return (\n \n \n navigate(IAM_PAGES.TIERS)}\n />\n \n }\n actions={}\n />\n\n \n }\n helpBox={\n }\n title={\"Tier Types\"}\n help={\n \n MinIO supports creating object transition lifecycle management\n rules, where MinIO can automatically move an object to a\n remote storage “tier”.\n
\n
\n MinIO supports the following Tier types:\n
\n
    \n
  • \n \n MinIO or other S3-compatible storage\n \n
  • \n
  • \n \n Amazon S3\n \n
  • \n
  • \n \n Google Cloud Storage\n \n
  • \n
  • \n \n Microsoft Azure Blob Storage\n \n
  • \n
\n
\n }\n />\n }\n >\n \n {tierTypes.map((tierType, index) => (\n {\n typeSelect(tierType.serviceName);\n }}\n icon={tierType.logo}\n />\n ))}\n \n \n
\n \n );\n};\n\nexport default TierTypeSelector;\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 AzureTierIcon,\n AzureTierIconXs,\n GoogleTierIcon,\n GoogleTierIconXs,\n MinIOTierIcon,\n MinIOTierIconXs,\n S3TierIcon,\n S3TierIconXs,\n} from \"mds\";\n\nexport const minioServiceName = \"minio\";\nexport const gcsServiceName = \"gcs\";\nexport const s3ServiceName = \"s3\";\nexport const azureServiceName = \"azure\";\n\nexport const tierTypes = [\n {\n serviceName: minioServiceName,\n targetTitle: \"MinIO\",\n logo: ,\n logoXs: ,\n },\n {\n serviceName: gcsServiceName,\n targetTitle: \"Google Cloud Storage\",\n logo: ,\n logoXs: ,\n },\n {\n serviceName: s3ServiceName,\n targetTitle: \"AWS S3\",\n logo: ,\n logoXs: ,\n },\n {\n serviceName: azureServiceName,\n targetTitle: \"Azure\",\n logo: ,\n logoXs: ,\n },\n];\n"],"names":["TierButtonBase","styled","button","_ref","theme","background","get","border","concat","borderRadius","height","display","alignItems","justifyContent","marginBottom","marginRight","cursor","overflow","backgroundColor","width","maxWidth","maxHeight","color","fontSize","fontFamily","paddingLeft","fontWeight","_ref2","onClick","icon","name","_jsxs","children","_jsx","className","navigate","useNavigate","dispatch","useAppDispatch","useEffect","setHelpName","Fragment","PageHeaderWrapper","label","BackLink","IAM_PAGES","TIERS","actions","HelpMenu","PageLayout","FormLayout","title","TiersIcon","helpBox","HelpBox","iconComponent","help","href","target","rel","Box","sx","_defineProperty","margin","gridGap","gridTemplateColumns","breakPoints","md","tierTypes","map","tierType","index","TierTypeCard","targetTitle","selectName","serviceName","TIERS_ADD","logo","toString","minioServiceName","gcsServiceName","s3ServiceName","azureServiceName","MinIOTierIcon","logoXs","MinIOTierIconXs","GoogleTierIcon","GoogleTierIconXs","S3TierIcon","S3TierIconXs","AzureTierIcon","AzureTierIconXs"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.d41810b3.chunk.js b/portal-ui/build/static/js/2338.d41810b3.chunk.js new file mode 100644 index 000000000..9a16b8d39 --- /dev/null +++ b/portal-ui/build/static/js/2338.d41810b3.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2338],{72338:(e,t,n)=>{n.r(t),n.d(t,{default:()=>b});var o=n(72791),i=n(57689),r=n(34345),a=n(56087),s=n(16444),l=n(26181),c=n.n(l),m=n(80184);const g=s.ZP.button((e=>{let{theme:t}=e;return{background:c()(t,"boxBackground","#FFF"),border:"".concat(c()(t,"borderColor","#E2E2E2")," 1px solid"),borderRadius:5,height:80,display:"flex",alignItems:"center",justifyContent:"start",marginBottom:16,marginRight:8,cursor:"pointer",overflow:"hidden","&:hover":{backgroundColor:c()(t,"buttons.regular.hover.background","#ebebeb")},"& .imageContainer":{width:80,"& .min-icon":{maxWidth:46,maxHeight:46}},"& .tierNotifTitle":{color:c()(t,"buttons.callAction.enabled.background","#07193E"),fontSize:16,fontFamily:"Inter,sans-serif",paddingLeft:18,fontWeight:"bold"}}})),d=e=>{let{onClick:t,icon:n,name:o}=e;return(0,m.jsxs)(g,{onClick:()=>{t(o)},children:[(0,m.jsx)("span",{className:"imageContainer",children:n}),(0,m.jsx)("span",{className:"tierNotifTitle",children:o})]})};var h=n(29945),j=n(79844),p=n(99670),u=n(87995),x=n(44690);const b=()=>{const e=(0,i.s0)(),t=(0,x.TL)();return(0,o.useEffect)((()=>{t((0,u.Sc)("tier-type-selector"))}),[t]),(0,m.jsxs)(o.Fragment,{children:[(0,m.jsx)(j.Z,{label:(0,m.jsx)(o.Fragment,{children:(0,m.jsx)(h.hbI,{label:"Tier Types",onClick:()=>e(a.gA.TIERS)})}),actions:(0,m.jsx)(p.Z,{})}),(0,m.jsx)(h.Xgh,{children:(0,m.jsx)(h.ltY,{title:"Select Tier Type",icon:(0,m.jsx)(h.y2Y,{}),helpBox:(0,m.jsx)(h.KfX,{iconComponent:(0,m.jsx)(h.y2Y,{}),title:"Tier Types",help:(0,m.jsxs)(o.Fragment,{children:["MinIO supports creating object transition lifecycle management rules, where MinIO can automatically move an object to a remote storage \u201ctier\u201d.",(0,m.jsx)("br",{}),(0,m.jsx)("br",{}),"MinIO supports the following Tier types:",(0,m.jsx)("br",{}),(0,m.jsxs)("ul",{children:[(0,m.jsx)("li",{children:(0,m.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-s3.html#minio-lifecycle-management-transition-to-s3?ref=con",target:"_blank",rel:"noopener",children:"MinIO or other S3-compatible storage"})}),(0,m.jsx)("li",{children:(0,m.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-s3.html#minio-lifecycle-management-transition-to-s3?ref=con",target:"_blank",rel:"noopener",children:"Amazon S3"})}),(0,m.jsx)("li",{children:(0,m.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-gcs.html#minio-lifecycle-management-transition-to-gcs?ref=con",target:"_blank",rel:"noopener",children:"Google Cloud Storage"})}),(0,m.jsx)("li",{children:(0,m.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/administration/object-management/transition-objects-to-azure.html#minio-lifecycle-management-transition-to-azure?ref=con",target:"_blank",rel:"noopener",children:"Microsoft Azure Blob Storage"})})]})]})}),children:(0,m.jsx)(h.xuv,{sx:{margin:"15px",display:"grid",gridGap:"20px",gridTemplateColumns:"repeat(2, 1fr)",["@media (max-width: ".concat(h.Egj.md,"px)")]:{gridTemplateColumns:"repeat(1, 1fr)"}},children:r.Bh.map(((t,n)=>(0,m.jsx)(d,{name:t.targetTitle,onClick:()=>{var n;n=t.serviceName,e("".concat(a.gA.TIERS_ADD,"/").concat(n))},icon:t.logo},"tierOpt-".concat(n.toString,"-").concat(t.targetTitle))))})})})]})}},34345:(e,t,n)=>{n.d(t,{Bh:()=>c,Pp:()=>r,b2:()=>s,f0:()=>a,vB:()=>l});var o=n(29945),i=n(80184);const r="minio",a="gcs",s="s3",l="azure",c=[{serviceName:r,targetTitle:"MinIO",logo:(0,i.jsx)(o.$E9,{}),logoXs:(0,i.jsx)(o.YEz,{})},{serviceName:a,targetTitle:"Google Cloud Storage",logo:(0,i.jsx)(o.UQG,{}),logoXs:(0,i.jsx)(o.Vwu,{})},{serviceName:s,targetTitle:"AWS S3",logo:(0,i.jsx)(o.feu,{}),logoXs:(0,i.jsx)(o.Xj3,{})},{serviceName:l,targetTitle:"Azure",logo:(0,i.jsx)(o.jze,{}),logoXs:(0,i.jsx)(o.nAe,{})}]}}]); +//# sourceMappingURL=2338.d41810b3.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.d41810b3.chunk.js.map b/portal-ui/build/static/js/2338.d41810b3.chunk.js.map new file mode 100644 index 000000000..9e6c8b0d4 --- /dev/null +++ b/portal-ui/build/static/js/2338.d41810b3.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2338.d41810b3.chunk.js","mappings":"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","sources":["screens/Console/Configurations/TiersConfiguration/TierTypeCard.tsx","screens/Console/Configurations/TiersConfiguration/TierTypeSelector.tsx","screens/Console/Configurations/TiersConfiguration/utils.tsx"],"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 .\n\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport get from \"lodash/get\";\n\nconst TierButtonBase = styled.button(({ theme }) => ({\n background: get(theme, \"boxBackground\", \"#FFF\"),\n border: `${get(theme, \"borderColor\", \"#E2E2E2\")} 1px solid`,\n borderRadius: 5,\n height: 80,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"start\",\n marginBottom: 16,\n marginRight: 8,\n cursor: \"pointer\",\n overflow: \"hidden\",\n \"&:hover\": {\n backgroundColor: get(theme, \"buttons.regular.hover.background\", \"#ebebeb\"),\n },\n \"& .imageContainer\": {\n width: 80,\n \"& .min-icon\": {\n maxWidth: 46,\n maxHeight: 46,\n },\n },\n \"& .tierNotifTitle\": {\n color: get(theme, \"buttons.callAction.enabled.background\", \"#07193E\"),\n fontSize: 16,\n fontFamily: \"Inter,sans-serif\",\n paddingLeft: 18,\n fontWeight: \"bold\",\n },\n}));\n\ntype TierTypeCardProps = {\n onClick: (name: string) => void;\n icon?: any;\n name: string;\n};\nconst TierTypeCard = ({ onClick, icon, name }: TierTypeCardProps) => {\n return (\n {\n onClick(name);\n }}\n >\n {icon}\n {name}\n \n );\n};\n\nexport default TierTypeCard;\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 } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { tierTypes } from \"./utils\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport TierTypeCard from \"./TierTypeCard\";\nimport {\n BackLink,\n Box,\n breakPoints,\n FormLayout,\n HelpBox,\n PageLayout,\n TiersIcon,\n} from \"mds\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../../HelpMenu\";\nimport { setHelpName } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\nconst TierTypeSelector = () => {\n const navigate = useNavigate();\n\n const typeSelect = (selectName: string) => {\n navigate(`${IAM_PAGES.TIERS_ADD}/${selectName}`);\n };\n const dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setHelpName(\"tier-type-selector\"));\n }, [dispatch]);\n\n return (\n \n \n navigate(IAM_PAGES.TIERS)}\n />\n \n }\n actions={}\n />\n\n \n }\n helpBox={\n }\n title={\"Tier Types\"}\n help={\n \n MinIO supports creating object transition lifecycle management\n rules, where MinIO can automatically move an object to a\n remote storage “tier”.\n
\n
\n MinIO supports the following Tier types:\n
\n
    \n
  • \n \n MinIO or other S3-compatible storage\n \n
  • \n
  • \n \n Amazon S3\n \n
  • \n
  • \n \n Google Cloud Storage\n \n
  • \n
  • \n \n Microsoft Azure Blob Storage\n \n
  • \n
\n
\n }\n />\n }\n >\n \n {tierTypes.map((tierType, index) => (\n {\n typeSelect(tierType.serviceName);\n }}\n icon={tierType.logo}\n />\n ))}\n \n \n
\n \n );\n};\n\nexport default TierTypeSelector;\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 AzureTierIcon,\n AzureTierIconXs,\n GoogleTierIcon,\n GoogleTierIconXs,\n MinIOTierIcon,\n MinIOTierIconXs,\n S3TierIcon,\n S3TierIconXs,\n} from \"mds\";\n\nexport const minioServiceName = \"minio\";\nexport const gcsServiceName = \"gcs\";\nexport const s3ServiceName = \"s3\";\nexport const azureServiceName = \"azure\";\n\nexport const tierTypes = [\n {\n serviceName: minioServiceName,\n targetTitle: \"MinIO\",\n logo: ,\n logoXs: ,\n },\n {\n serviceName: gcsServiceName,\n targetTitle: \"Google Cloud Storage\",\n logo: ,\n logoXs: ,\n },\n {\n serviceName: s3ServiceName,\n targetTitle: \"AWS S3\",\n logo: ,\n logoXs: ,\n },\n {\n serviceName: azureServiceName,\n targetTitle: \"Azure\",\n logo: ,\n logoXs: ,\n },\n];\n"],"names":["TierButtonBase","styled","button","_ref","theme","background","get","border","concat","borderRadius","height","display","alignItems","justifyContent","marginBottom","marginRight","cursor","overflow","backgroundColor","width","maxWidth","maxHeight","color","fontSize","fontFamily","paddingLeft","fontWeight","_ref2","onClick","icon","name","_jsxs","children","_jsx","className","TierTypeSelector","navigate","useNavigate","dispatch","useAppDispatch","useEffect","setHelpName","Fragment","PageHeaderWrapper","label","BackLink","IAM_PAGES","TIERS","actions","HelpMenu","PageLayout","FormLayout","title","TiersIcon","helpBox","HelpBox","iconComponent","help","href","target","rel","Box","sx","margin","gridGap","gridTemplateColumns","breakPoints","md","tierTypes","map","tierType","index","TierTypeCard","targetTitle","selectName","serviceName","TIERS_ADD","logo","toString","minioServiceName","gcsServiceName","s3ServiceName","azureServiceName","MinIOTierIcon","logoXs","MinIOTierIconXs","GoogleTierIcon","GoogleTierIconXs","S3TierIcon","S3TierIconXs","AzureTierIcon","AzureTierIconXs"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/247.39dd8f3a.chunk.js b/portal-ui/build/static/js/247.39dd8f3a.chunk.js new file mode 100644 index 000000000..61d7554c5 --- /dev/null +++ b/portal-ui/build/static/js/247.39dd8f3a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[247],{40247:(e,a,t)=>{t.r(a),t.d(a,{default:()=>g});var l=t(72791),n=t(29945),r=t(23814),s=t(56028),o=t(87995),c=t(44690),i=t(31776),d=t(82342),u=t(80184);const g=e=>{let{modalOpen:a,currentTags:t,onCloseAndUpdate:g,bucketName:b}=e;const h=(0,c.TL)(),[x,p]=(0,l.useState)(""),[k,m]=(0,l.useState)(""),[T,w]=(0,l.useState)(!1);return(0,u.jsx)(s.Z,{modalOpen:a,title:"Add New Tag ",onClose:()=>{g(!1)},titleIcon:(0,u.jsx)(n.OCT,{}),children:(0,u.jsxs)(n.ltY,{withBorders:!1,containerPadding:!1,children:[(0,u.jsxs)(n.xuv,{sx:{marginBottom:15},children:[(0,u.jsx)("strong",{children:"Bucket"}),": ",b]}),(0,u.jsx)(n.Wzg,{value:x,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:e=>{p(e.target.value)}}),(0,u.jsx)(n.Wzg,{value:k,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:e=>{m(e.target.value)}}),(0,u.jsxs)(n.rjZ,{item:!0,xs:12,sx:r.ID.modalButtonBar,children:[(0,u.jsx)(n.zxk,{id:"clear",type:"button",variant:"regular",onClick:()=>{m(""),p("")},label:"Clear"}),(0,u.jsx)(n.zxk,{id:"save-add-bucket-tag",type:"submit",variant:"callAction",color:"primary",disabled:""===k.trim()||""===x.trim()||T,onClick:()=>{w(!0);const e={};e[x]=k;const a={...t,...e};i.h.buckets.putBucketTags(b,{tags:a}).then((()=>{w(!1),g(!0)})).catch((e=>{h((0,o.zb)((0,d.g)(e.error))),w(!1)}))},label:"Save"})]})]})})}}}]); +//# sourceMappingURL=247.39dd8f3a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/247.39dd8f3a.chunk.js.map b/portal-ui/build/static/js/247.39dd8f3a.chunk.js.map new file mode 100644 index 000000000..7e8c3e408 --- /dev/null +++ b/portal-ui/build/static/js/247.39dd8f3a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/247.39dd8f3a.chunk.js","mappings":"2OAgCA,MA+FA,EA/F0BA,IAKF,IALG,UACzBC,EAAS,YACTC,EAAW,iBACXC,EAAgB,WAChBC,GACgBJ,EAChB,MAAMK,GAAWC,EAAAA,EAAAA,OACVC,EAAQC,IAAaC,EAAAA,EAAAA,UAAiB,KACtCC,EAAUC,IAAeF,EAAAA,EAAAA,UAAiB,KAC1CG,EAAWC,IAAgBJ,EAAAA,EAAAA,WAAkB,GA4BpD,OACEK,EAAAA,EAAAA,KAACC,EAAAA,EAAY,CACXd,UAAWA,EACXe,MAAK,eACLC,QAASA,KACPd,GAAiB,EAAM,EAEzBe,WAAWJ,EAAAA,EAAAA,KAACK,EAAAA,IAAa,IAAIC,UAE7BC,EAAAA,EAAAA,MAACC,EAAAA,IAAU,CAACC,aAAa,EAAOC,kBAAkB,EAAMJ,SAAA,EACtDC,EAAAA,EAAAA,MAACI,EAAAA,IAAG,CAACC,GAAI,CAAEC,aAAc,IAAKP,SAAA,EAC5BN,EAAAA,EAAAA,KAAA,UAAAM,SAAQ,WAAe,KAAGhB,MAE5BU,EAAAA,EAAAA,KAACc,EAAAA,IAAQ,CACPC,MAAOtB,EACPuB,MAAO,cACPC,GAAI,YACJC,KAAM,YACNC,YAAa,oBACbC,SAAWC,IACT3B,EAAU2B,EAAEC,OAAOP,MAAM,KAG7Bf,EAAAA,EAAAA,KAACc,EAAAA,IAAQ,CACPC,MAAOnB,EACPoB,MAAO,gBACPC,GAAI,cACJC,KAAM,cACNC,YAAa,sBACbC,SAAWC,IACTxB,EAAYwB,EAAEC,OAAOP,MAAM,KAG/BR,EAAAA,EAAAA,MAACgB,EAAAA,IAAI,CAACC,MAAI,EAACC,GAAI,GAAIb,GAAIc,EAAAA,GAAgBC,eAAerB,SAAA,EACpDN,EAAAA,EAAAA,KAAC4B,EAAAA,IAAM,CACLX,GAAI,QACJY,KAAK,SACLC,QAAQ,UACRC,QAhEQC,KAChBnC,EAAY,IACZH,EAAU,GAAG,EA+DLsB,MAAO,WAEThB,EAAAA,EAAAA,KAAC4B,EAAAA,IAAM,CACLX,GAAI,sBACJY,KAAK,SACLC,QAAQ,aACRG,MAAM,UACNC,SACsB,KAApBtC,EAASuC,QAAmC,KAAlB1C,EAAO0C,QAAiBrC,EAEpDiC,QAtEYK,KACpBrC,GAAa,GACb,MAAMsC,EAAc,CAAC,EAErBA,EAAO5C,GAAUG,EACjB,MAAM0C,EAAa,IAAKlD,KAAgBiD,GAExCE,EAAAA,EAAIC,QACDC,cAAcnD,EAAY,CACzBoD,KAAMJ,IAEPK,MAAK,KACJ5C,GAAa,GACbV,GAAiB,EAAK,IAEvBuD,OAAOC,IACNtD,GAASuD,EAAAA,EAAAA,KAA0BC,EAAAA,EAAAA,GAAeF,EAAMA,SACxD9C,GAAa,EAAM,GACnB,EAqDIiB,MAAO,gBAIA,C","sources":["screens/Console/Buckets/BucketDetails/AddBucketTagModal.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, { useState } from \"react\";\nimport { AddNewTagIcon, Box, Button, FormLayout, Grid, InputBox } from \"mds\";\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IBucketTagModal {\n modalOpen: boolean;\n currentTags: any;\n bucketName: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst AddBucketTagModal = ({\n modalOpen,\n currentTags,\n onCloseAndUpdate,\n bucketName,\n}: IBucketTagModal) => {\n const dispatch = useAppDispatch();\n const [newKey, setNewKey] = useState(\"\");\n const [newLabel, setNewLabel] = useState(\"\");\n const [isSending, setIsSending] = useState(false);\n\n const resetForm = () => {\n setNewLabel(\"\");\n setNewKey(\"\");\n };\n\n const addTagProcess = () => {\n setIsSending(true);\n const newTag: any = {};\n\n newTag[newKey] = newLabel;\n const newTagList = { ...currentTags, ...newTag };\n\n api.buckets\n .putBucketTags(bucketName, {\n tags: newTagList,\n })\n .then(() => {\n setIsSending(false);\n onCloseAndUpdate(true);\n })\n .catch((error) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(error.error)));\n setIsSending(false);\n });\n };\n\n return (\n {\n onCloseAndUpdate(false);\n }}\n titleIcon={}\n >\n \n \n Bucket: {bucketName}\n \n {\n setNewKey(e.target.value);\n }}\n />\n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n \n \n \n );\n};\n\nexport default AddBucketTagModal;\n"],"names":["_ref","modalOpen","currentTags","onCloseAndUpdate","bucketName","dispatch","useAppDispatch","newKey","setNewKey","useState","newLabel","setNewLabel","isSending","setIsSending","_jsx","ModalWrapper","title","onClose","titleIcon","AddNewTagIcon","children","_jsxs","FormLayout","withBorders","containerPadding","Box","sx","marginBottom","InputBox","value","label","id","name","placeholder","onChange","e","target","Grid","item","xs","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","resetForm","color","disabled","trim","addTagProcess","newTag","newTagList","api","buckets","putBucketTags","tags","then","catch","error","setModalErrorSnackMessage","errorToHandler"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/247.69f3daa1.chunk.js b/portal-ui/build/static/js/247.69f3daa1.chunk.js deleted file mode 100644 index 7613be818..000000000 --- a/portal-ui/build/static/js/247.69f3daa1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[247],{40247:function(e,a,t){t.r(a);var n=t(1413),l=t(29439),r=t(72791),i=t(29945),o=t(23814),u=t(56028),c=t(87995),s=t(44690),d=t(31776),g=t(82342),b=t(80184);a.default=function(e){var a=e.modalOpen,t=e.currentTags,h=e.onCloseAndUpdate,x=e.bucketName,p=(0,s.TL)(),k=(0,r.useState)(""),m=(0,l.Z)(k,2),v=m[0],T=m[1],f=(0,r.useState)(""),w=(0,l.Z)(f,2),j=w[0],C=w[1],y=(0,r.useState)(!1),Z=(0,l.Z)(y,2),B=Z[0],N=Z[1];return(0,b.jsx)(u.Z,{modalOpen:a,title:"Add New Tag ",onClose:function(){h(!1)},titleIcon:(0,b.jsx)(i.OCT,{}),children:(0,b.jsxs)(i.ltY,{withBorders:!1,containerPadding:!1,children:[(0,b.jsxs)(i.xuv,{sx:{marginBottom:15},children:[(0,b.jsx)("strong",{children:"Bucket"}),": ",x]}),(0,b.jsx)(i.Wzg,{value:v,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:function(e){T(e.target.value)}}),(0,b.jsx)(i.Wzg,{value:j,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:function(e){C(e.target.value)}}),(0,b.jsxs)(i.rjZ,{item:!0,xs:12,sx:o.ID.modalButtonBar,children:[(0,b.jsx)(i.zxk,{id:"clear",type:"button",variant:"regular",onClick:function(){C(""),T("")},label:"Clear"}),(0,b.jsx)(i.zxk,{id:"save-add-bucket-tag",type:"submit",variant:"callAction",color:"primary",disabled:""===j.trim()||""===v.trim()||B,onClick:function(){N(!0);var e={};e[v]=j;var a=(0,n.Z)((0,n.Z)({},t),e);d.h.buckets.putBucketTags(x,{tags:a}).then((function(){N(!1),h(!0)})).catch((function(e){p((0,c.zb)((0,g.g)(e.error))),N(!1)}))},label:"Save"})]})]})})}}}]); -//# sourceMappingURL=247.69f3daa1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/247.69f3daa1.chunk.js.map b/portal-ui/build/static/js/247.69f3daa1.chunk.js.map deleted file mode 100644 index 5869d1601..000000000 --- a/portal-ui/build/static/js/247.69f3daa1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/247.69f3daa1.chunk.js","mappings":"+OA+HA,UA/F0B,SAAHA,GAKC,IAJtBC,EAASD,EAATC,UACAC,EAAWF,EAAXE,YACAC,EAAgBH,EAAhBG,iBACAC,EAAUJ,EAAVI,WAEMC,GAAWC,EAAAA,EAAAA,MACjBC,GAA4BC,EAAAA,EAAAA,UAAiB,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAzCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GACxBI,GAAgCL,EAAAA,EAAAA,UAAiB,IAAGM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAA7CE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5BG,GAAkCT,EAAAA,EAAAA,WAAkB,GAAMU,GAAAR,EAAAA,EAAAA,GAAAO,EAAA,GAAnDE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GA4B9B,OACEG,EAAAA,EAAAA,KAACC,EAAAA,EAAY,CACXrB,UAAWA,EACXsB,MAAK,eACLC,QAAS,WACPrB,GAAiB,EACnB,EACAsB,WAAWJ,EAAAA,EAAAA,KAACK,EAAAA,IAAa,IAAIC,UAE7BC,EAAAA,EAAAA,MAACC,EAAAA,IAAU,CAACC,aAAa,EAAOC,kBAAkB,EAAMJ,SAAA,EACtDC,EAAAA,EAAAA,MAACI,EAAAA,IAAG,CAACC,GAAI,CAAEC,aAAc,IAAKP,SAAA,EAC5BN,EAAAA,EAAAA,KAAA,UAAAM,SAAQ,WAAe,KAAGvB,MAE5BiB,EAAAA,EAAAA,KAACc,EAAAA,IAAQ,CACPC,MAAOzB,EACP0B,MAAO,cACPC,GAAI,YACJC,KAAM,YACNC,YAAa,oBACbC,SAAU,SAACC,GACT9B,EAAU8B,EAAEC,OAAOP,MACrB,KAEFf,EAAAA,EAAAA,KAACc,EAAAA,IAAQ,CACPC,MAAOrB,EACPsB,MAAO,gBACPC,GAAI,cACJC,KAAM,cACNC,YAAa,sBACbC,SAAU,SAACC,GACT1B,EAAY0B,EAAEC,OAAOP,MACvB,KAEFR,EAAAA,EAAAA,MAACgB,EAAAA,IAAI,CAACC,MAAI,EAACC,GAAI,GAAIb,GAAIc,EAAAA,GAAgBC,eAAerB,SAAA,EACpDN,EAAAA,EAAAA,KAAC4B,EAAAA,IAAM,CACLX,GAAI,QACJY,KAAK,SACLC,QAAQ,UACRC,QAhEQ,WAChBpC,EAAY,IACZJ,EAAU,GACZ,EA8DUyB,MAAO,WAEThB,EAAAA,EAAAA,KAAC4B,EAAAA,IAAM,CACLX,GAAI,sBACJY,KAAK,SACLC,QAAQ,aACRE,MAAM,UACNC,SACsB,KAApBvC,EAASwC,QAAmC,KAAlB5C,EAAO4C,QAAiBpC,EAEpDiC,QAtEY,WACpBhC,GAAa,GACb,IAAMoC,EAAc,CAAC,EAErBA,EAAO7C,GAAUI,EACjB,IAAM0C,GAAUC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQxD,GAAgBsD,GAExCG,EAAAA,EAAIC,QACDC,cAAczD,EAAY,CACzB0D,KAAML,IAEPM,MAAK,WACJ3C,GAAa,GACbjB,GAAiB,EACnB,IACC6D,OAAM,SAACC,GACN5D,GAAS6D,EAAAA,EAAAA,KAA0BC,EAAAA,EAAAA,GAAeF,EAAMA,SACxD7C,GAAa,EACf,GACJ,EAoDUiB,MAAO,gBAMnB,C","sources":["screens/Console/Buckets/BucketDetails/AddBucketTagModal.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, { useState } from \"react\";\nimport { AddNewTagIcon, Box, Button, FormLayout, Grid, InputBox } from \"mds\";\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IBucketTagModal {\n modalOpen: boolean;\n currentTags: any;\n bucketName: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst AddBucketTagModal = ({\n modalOpen,\n currentTags,\n onCloseAndUpdate,\n bucketName,\n}: IBucketTagModal) => {\n const dispatch = useAppDispatch();\n const [newKey, setNewKey] = useState(\"\");\n const [newLabel, setNewLabel] = useState(\"\");\n const [isSending, setIsSending] = useState(false);\n\n const resetForm = () => {\n setNewLabel(\"\");\n setNewKey(\"\");\n };\n\n const addTagProcess = () => {\n setIsSending(true);\n const newTag: any = {};\n\n newTag[newKey] = newLabel;\n const newTagList = { ...currentTags, ...newTag };\n\n api.buckets\n .putBucketTags(bucketName, {\n tags: newTagList,\n })\n .then(() => {\n setIsSending(false);\n onCloseAndUpdate(true);\n })\n .catch((error) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(error.error)));\n setIsSending(false);\n });\n };\n\n return (\n {\n onCloseAndUpdate(false);\n }}\n titleIcon={}\n >\n \n \n Bucket: {bucketName}\n \n {\n setNewKey(e.target.value);\n }}\n />\n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n \n \n \n );\n};\n\nexport default AddBucketTagModal;\n"],"names":["_ref","modalOpen","currentTags","onCloseAndUpdate","bucketName","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","newKey","setNewKey","_useState3","_useState4","newLabel","setNewLabel","_useState5","_useState6","isSending","setIsSending","_jsx","ModalWrapper","title","onClose","titleIcon","AddNewTagIcon","children","_jsxs","FormLayout","withBorders","containerPadding","Box","sx","marginBottom","InputBox","value","label","id","name","placeholder","onChange","e","target","Grid","item","xs","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","color","disabled","trim","newTag","newTagList","_objectSpread","api","buckets","putBucketTags","tags","then","catch","error","setModalErrorSnackMessage","errorToHandler"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2545.508d30a1.chunk.js b/portal-ui/build/static/js/2545.508d30a1.chunk.js new file mode 100644 index 000000000..92dcaae18 --- /dev/null +++ b/portal-ui/build/static/js/2545.508d30a1.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2545],{92217:(e,t,o)=>{"use strict";o.d(t,{Z:()=>s});var r=o(72791),n=o(29945),i=o(78029),a=o.n(i),c=o(27454),l=o(80184);const s=e=>{let{value:t,label:o="",tooltip:i="",mode:s="json",onChange:u,editorHeight:p=250,helptip:d}=e;return(0,l.jsx)(n.pq4,{value:t,onChange:e=>u(e),mode:s,tooltip:i,editorHeight:p,label:o,helpTools:(0,l.jsx)(r.Fragment,{children:(0,l.jsx)(c.Z,{tooltip:"Copy to Clipboard",children:(0,l.jsx)(a(),{text:t,children:(0,l.jsx)(n.zxk,{type:"button",id:"copy-code-mirror",icon:(0,l.jsx)(n.TIy,{}),color:"primary",variant:"regular"})})})}),helpTip:d,helpTipPlacement:"right"})}},52545:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>m});var r=o(72791),n=o(29945),i=o(80184);const a=e=>{let{icon:t,description:o}=e;return(0,i.jsxs)(n.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,i.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:o})]})},c=()=>(0,i.jsxs)(n.xuv,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px"},children:[(0,i.jsxs)(n.xuv,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,i.jsx)(n.M9A,{}),(0,i.jsx)("div",{children:"Learn more about Policies"})]}),(0,i.jsxs)(n.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:[(0,i.jsxs)(n.xuv,{sx:{paddingBottom:"20px"},children:[(0,i.jsx)(a,{icon:(0,i.jsx)(n.v42,{}),description:"Create Policies"}),(0,i.jsxs)(n.xuv,{sx:{paddingTop:"20px"},children:["MinIO uses Policy-Based Access Control (PBAC) to define the authorized actions and resources to which an authenticated user has access. Each policy describes one or more actions and conditions that outline the permissions of a user or group of users."," "]})]}),(0,i.jsx)(n.xuv,{sx:{paddingBottom:"20px"},children:"MinIO PBAC is built for compatibility with AWS IAM policy syntax, structure, and behavior."}),(0,i.jsx)(n.xuv,{sx:{paddingBottom:"20px"},children:"Each user can access only those resources and operations which are explicitly granted by the built-in role. MinIO denies access to any other resource or action by default."})]})]});var l=o(92217),s=o(79844),u=o(99670),p=o(56087),d=o(87995),f=o(57689),y=o(44690),x=o(19859),h=o(31776);const m=()=>{const e=(0,y.TL)(),t=(0,f.s0)(),[o,a]=(0,r.useState)(!1),[m,b]=(0,r.useState)(""),[g,v]=(0,r.useState)(x.L),j=""!==m.trim()&&-1===m.indexOf(" ")&&""!==g.trim();return(0,r.useEffect)((()=>{e((0,d.Sc)("add_policy"))}),[]),(0,i.jsx)(r.Fragment,{children:(0,i.jsxs)(n.rjZ,{item:!0,xs:12,children:[(0,i.jsx)(s.Z,{label:(0,i.jsx)(n.hbI,{label:"Policies",onClick:()=>t(p.gA.POLICIES)}),actions:(0,i.jsx)(u.Z,{})}),(0,i.jsx)(n.Xgh,{children:(0,i.jsx)(n.ltY,{title:"Create Policy",icon:(0,i.jsx)(n.sR0,{}),helpBox:(0,i.jsx)(c,{}),children:(0,i.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:r=>{r.preventDefault(),o||(a(!0),h.h.policies.addPolicy({name:m,policy:g}).then((e=>{a(!1),t("".concat(p.gA.POLICIES))})).catch((t=>{a(!1),e((0,d.Ih)({errorMessage:"There was an error creating a Policy ",detailedError:"There was an error creating a Policy: "+(t.error.detailedMessage||"")+". Please check Policy syntax."}))})))},children:(0,i.jsxs)(n.rjZ,{container:!0,children:[(0,i.jsx)(n.rjZ,{item:!0,xs:12,children:(0,i.jsx)(n.Wzg,{id:"policy-name",name:"policy-name",label:"Policy Name",autoFocus:!0,value:m,error:(e=>-1!==e.indexOf(" ")?"Policy name cannot contain spaces":"")(m),onChange:e=>{b(e.target.value)}})}),(0,i.jsx)(n.rjZ,{item:!0,xs:12,children:(0,i.jsx)(l.Z,{label:"Write Policy",value:g,onChange:e=>{v(e)},editorHeight:"350px",helptip:(0,i.jsx)(r.Fragment,{children:(0,i.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management/policy-based-access-control.html#policy-document-structure",children:"Guide to access policy structure"})})})}),(0,i.jsx)(n.rjZ,{item:!0,xs:12,sx:{textAlign:"right"},children:(0,i.jsxs)(n.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[(0,i.jsx)(n.zxk,{id:"clear",type:"button",variant:"regular",onClick:()=>{b(""),v("")},label:"Clear"}),(0,i.jsx)(n.zxk,{id:"save-policy",type:"submit",variant:"callAction",color:"primary",disabled:o||!j,label:"Save"})]})})]})})})})]})})}},19859:(e,t,o)=>{"use strict";o.d(t,{L:()=>r});const r='{\n "Version": "2012-10-17",\n "Statement": [\n \n ]\n}'},76998:(e,t,o)=>{"use strict";var r=o(42458),n={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var o,i,a,c,l,s,u=!1;t||(t={}),o=t.debug||!1;try{if(a=r(),c=document.createRange(),l=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){o&&console.warn("unable to use e.clipboardData"),o&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=n[t.format]||n.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(s),c.selectNodeContents(s),l.addRange(c),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(p){o&&console.error("unable to copy using execCommand: ",p),o&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(p){o&&console.error("unable to copy using clipboardData: ",p),o&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(c):l.removeAllRanges()),s&&document.body.removeChild(s),a()}return u}},568:(e,t,o)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var n=c(o(72791)),i=c(o(76998)),a=["text","onCopy","options","children"];function c(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}function p(e,t){for(var o=0;o{"use strict";var r=o(568).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},42458:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,o=[],r=0;r.\n\nimport React, { Fragment } from \"react\";\nimport { Button, CodeEditor, CopyIcon } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n onChange: (value: string) => any;\n editorHeight?: string | number;\n helptip?: any;\n}\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n onChange,\n editorHeight = 250,\n helptip,\n}: ICodeWrapper) => {\n return (\n onChange(value)}\n mode={mode}\n tooltip={tooltip}\n editorHeight={editorHeight}\n label={label}\n helpTools={\n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n }\n helpTip={helptip}\n helpTipPlacement=\"right\"\n />\n );\n};\n\nexport default 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 .\nimport React from \"react\";\n\nimport { Box, HelpIconFilled, IAMPoliciesIcon } from \"mds\";\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};\n\nconst AddPolicyHelpBox = () => {\n return (\n \n \n \n
Learn more about Policies
\n \n \n \n }\n description={`Create Policies`}\n />\n \n MinIO uses Policy-Based Access Control (PBAC) to define the\n authorized actions and resources to which an authenticated user has\n access. Each policy describes one or more actions and conditions\n that outline the permissions of a user or group of users.{\" \"}\n \n \n \n MinIO PBAC is built for compatibility with AWS IAM policy syntax,\n structure, and behavior.\n \n \n Each user can access only those resources and operations which are\n explicitly granted by the built-in role. MinIO denies access to any\n other resource or action by default.\n \n \n \n );\n};\n\nexport default AddPolicyHelpBox;\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 {\n AddAccessRuleIcon,\n BackLink,\n Box,\n Button,\n FormLayout,\n Grid,\n InputBox,\n PageLayout,\n} from \"mds\";\nimport AddPolicyHelpBox from \"./AddPolicyHelpBox\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../../store\";\nimport { emptyPolicy } from \"./utils\";\nimport { api } from \"../../../api\";\n\nconst AddPolicyScreen = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [addLoading, setAddLoading] = useState(false);\n const [policyName, setPolicyName] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(emptyPolicy);\n\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api.policies\n .addPolicy({\n name: policyName,\n policy: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n navigate(`${IAM_PAGES.POLICIES}`);\n })\n .catch((err) => {\n setAddLoading(false);\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"There was an error creating a Policy \",\n detailedError:\n \"There was an error creating a Policy: \" +\n (err.error.detailedMessage || \"\") +\n \". Please check Policy syntax.\",\n }),\n );\n });\n };\n\n const resetForm = () => {\n setPolicyName(\"\");\n setPolicyDefinition(\"\");\n };\n\n const validatePolicyname = (policyName: string) => {\n if (policyName.indexOf(\" \") !== -1) {\n return \"Policy name cannot contain spaces\";\n } else return \"\";\n };\n\n const validSave =\n policyName.trim() !== \"\" &&\n policyName.indexOf(\" \") === -1 &&\n policyDefinition.trim() !== \"\";\n\n useEffect(() => {\n dispatch(setHelpName(\"add_policy\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n \n \n navigate(IAM_PAGES.POLICIES)}\n />\n }\n actions={}\n />\n \n }\n helpBox={}\n >\n ) => {\n addRecord(e);\n }}\n >\n \n \n ) => {\n setPolicyName(e.target.value);\n }}\n />\n \n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n helptip={\n \n \n Guide to access policy structure\n \n \n }\n />\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AddPolicyScreen;\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 emptyPolicy =\n \"{\\n\" +\n ' \"Version\": \"2012-10-17\",\\n' +\n ' \"Statement\": [\\n' +\n \" \\n\" +\n \" ]\\n\" +\n \"}\";\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["_ref","value","label","tooltip","mode","onChange","editorHeight","helptip","_jsx","CodeEditor","helpTools","Fragment","children","TooltipWrapper","CopyToClipboard","text","Button","type","id","icon","CopyIcon","color","variant","helpTip","helpTipPlacement","FeatureItem","description","_jsxs","Box","sx","display","marginRight","height","width","marginBottom","style","fontSize","fontStyle","AddPolicyHelpBox","flex","border","borderRadius","flexFlow","padding","fontWeight","alignItems","paddingBottom","HelpIconFilled","IAMPoliciesIcon","paddingTop","AddPolicyScreen","dispatch","useAppDispatch","navigate","useNavigate","addLoading","setAddLoading","useState","policyName","setPolicyName","policyDefinition","setPolicyDefinition","emptyPolicy","validSave","trim","indexOf","useEffect","setHelpName","Grid","item","xs","PageHeaderWrapper","BackLink","onClick","IAM_PAGES","POLICIES","actions","HelpMenu","PageLayout","FormLayout","title","AddAccessRuleIcon","helpBox","noValidate","autoComplete","onSubmit","e","preventDefault","api","policies","addPolicy","name","policy","then","res","concat","catch","err","setErrorSnackMessage","errorMessage","detailedError","error","detailedMessage","container","InputBox","autoFocus","validatePolicyname","target","CodeMirrorWrapper","href","textAlign","justifyContent","marginTop","gap","resetForm","disabled","deselectCurrent","require","clipboardToIE11Formatting","module","exports","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","ariaHidden","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","self","TypeError","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","args","Array","_key","event","_this$props","elem","Children","only","_this$props2","cloneElement","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2545.b9034e94.chunk.js b/portal-ui/build/static/js/2545.b9034e94.chunk.js deleted file mode 100644 index 47c1e078e..000000000 --- a/portal-ui/build/static/js/2545.b9034e94.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2545],{92217:function(e,t,n){"use strict";var o=n(72791),r=n(29945),i=n(78029),a=n.n(i),c=n(27454),l=n(80184);t.Z=function(e){var t=e.value,n=e.label,i=void 0===n?"":n,s=e.tooltip,u=void 0===s?"":s,p=e.mode,f=void 0===p?"json":p,d=e.onChange,y=e.editorHeight,x=void 0===y?250:y,h=e.helptip;return(0,l.jsx)(r.pq4,{value:t,onChange:function(e){return d(e)},mode:f,tooltip:u,editorHeight:x,label:i,helpTools:(0,l.jsx)(o.Fragment,{children:(0,l.jsx)(c.Z,{tooltip:"Copy to Clipboard",children:(0,l.jsx)(a(),{text:t,children:(0,l.jsx)(r.zxk,{type:"button",id:"copy-code-mirror",icon:(0,l.jsx)(r.TIy,{}),color:"primary",variant:"regular"})})})}),helpTip:h,helpTipPlacement:"right"})}},52545:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return b}});var o=n(29439),r=n(72791),i=n(29945),a=n(80184),c=function(e){var t=e.icon,n=e.description;return(0,a.jsxs)(i.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,a.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:n})]})},l=function(){return(0,a.jsxs)(i.xuv,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px"},children:[(0,a.jsxs)(i.xuv,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,a.jsx)(i.M9A,{}),(0,a.jsx)("div",{children:"Learn more about Policies"})]}),(0,a.jsxs)(i.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:[(0,a.jsxs)(i.xuv,{sx:{paddingBottom:"20px"},children:[(0,a.jsx)(c,{icon:(0,a.jsx)(i.v42,{}),description:"Create Policies"}),(0,a.jsxs)(i.xuv,{sx:{paddingTop:"20px"},children:["MinIO uses Policy-Based Access Control (PBAC) to define the authorized actions and resources to which an authenticated user has access. Each policy describes one or more actions and conditions that outline the permissions of a user or group of users."," "]})]}),(0,a.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:"MinIO PBAC is built for compatibility with AWS IAM policy syntax, structure, and behavior."}),(0,a.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:"Each user can access only those resources and operations which are explicitly granted by the built-in role. MinIO denies access to any other resource or action by default."})]})]})},s=n(92217),u=n(47974),p=n(99670),f=n(56087),d=n(87995),y=n(57689),x=n(44690),h=n(19859),m=n(31776),b=function(){var e=(0,x.TL)(),t=(0,y.s0)(),n=(0,r.useState)(!1),c=(0,o.Z)(n,2),b=c[0],g=c[1],v=(0,r.useState)(""),j=(0,o.Z)(v,2),C=j[0],w=j[1],O=(0,r.useState)(h.L),P=(0,o.Z)(O,2),S=P[0],E=P[1],k=""!==C.trim()&&-1===C.indexOf(" ")&&""!==S.trim();return(0,r.useEffect)((function(){e((0,d.Sc)("add_policy"))}),[]),(0,a.jsx)(r.Fragment,{children:(0,a.jsxs)(i.rjZ,{item:!0,xs:12,children:[(0,a.jsx)(u.Z,{label:(0,a.jsx)(i.hbI,{label:"Policies",onClick:function(){return t(f.gA.POLICIES)}}),actions:(0,a.jsx)(p.Z,{})}),(0,a.jsx)(i.Xgh,{children:(0,a.jsx)(i.ltY,{title:"Create Policy",icon:(0,a.jsx)(i.sR0,{}),helpBox:(0,a.jsx)(l,{}),children:(0,a.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(n){n.preventDefault(),b||(g(!0),m.h.policies.addPolicy({name:C,policy:S}).then((function(e){g(!1),t("".concat(f.gA.POLICIES))})).catch((function(t){g(!1),e((0,d.Ih)({errorMessage:"There was an error creating a Policy ",detailedError:"There was an error creating a Policy: "+(t.error.detailedMessage||"")+". Please check Policy syntax."}))})))},children:(0,a.jsxs)(i.rjZ,{container:!0,children:[(0,a.jsx)(i.rjZ,{item:!0,xs:12,children:(0,a.jsx)(i.Wzg,{id:"policy-name",name:"policy-name",label:"Policy Name",autoFocus:!0,value:C,error:function(e){return-1!==e.indexOf(" ")?"Policy name cannot contain spaces":""}(C),onChange:function(e){w(e.target.value)}})}),(0,a.jsx)(i.rjZ,{item:!0,xs:12,children:(0,a.jsx)(s.Z,{label:"Write Policy",value:S,onChange:function(e){E(e)},editorHeight:"350px",helptip:(0,a.jsx)(r.Fragment,{children:(0,a.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/identity-access-management/policy-based-access-control.html#policy-document-structure",children:"Guide to access policy structure"})})})}),(0,a.jsx)(i.rjZ,{item:!0,xs:12,sx:{textAlign:"right"},children:(0,a.jsxs)(i.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[(0,a.jsx)(i.zxk,{id:"clear",type:"button",variant:"regular",onClick:function(){w(""),E("")},label:"Clear"}),(0,a.jsx)(i.zxk,{id:"save-policy",type:"submit",variant:"callAction",color:"primary",disabled:b||!k,label:"Save"})]})})]})})})})]})})}},19859:function(e,t,n){"use strict";n.d(t,{L:function(){return o}});var o='{\n "Version": "2012-10-17",\n "Statement": [\n \n ]\n}'},76998:function(e,t,n){"use strict";var o=n(42458),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,a,c,l,s,u=!1;t||(t={}),n=t.debug||!1;try{if(a=o(),c=document.createRange(),l=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(o){if(o.stopPropagation(),t.format)if(o.preventDefault(),"undefined"===typeof o.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=r[t.format]||r.default;window.clipboardData.setData(i,e)}else o.clipboardData.clearData(),o.clipboardData.setData(t.format,e);t.onCopy&&(o.preventDefault(),t.onCopy(o.clipboardData))})),document.body.appendChild(s),c.selectNodeContents(s),l.addRange(c),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(p){n&&console.error("unable to copy using execCommand: ",p),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(p){n&&console.error("unable to copy using clipboardData: ",p),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(c):l.removeAllRanges()),s&&document.body.removeChild(s),a()}return u}},568:function(e,t,n){"use strict";function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var r=c(n(72791)),i=c(n(76998)),a=["text","onCopy","options","children"];function c(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function p(e,t){for(var n=0;n.\n\nimport React, { Fragment } from \"react\";\nimport { Button, CodeEditor, CopyIcon } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n onChange: (value: string) => any;\n editorHeight?: string | number;\n helptip?: any;\n}\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n onChange,\n editorHeight = 250,\n helptip,\n}: ICodeWrapper) => {\n return (\n onChange(value)}\n mode={mode}\n tooltip={tooltip}\n editorHeight={editorHeight}\n label={label}\n helpTools={\n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n }\n helpTip={helptip}\n helpTipPlacement=\"right\"\n />\n );\n};\n\nexport default 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 .\nimport React from \"react\";\n\nimport { Box, HelpIconFilled, IAMPoliciesIcon } from \"mds\";\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};\n\nconst AddPolicyHelpBox = () => {\n return (\n \n \n \n
Learn more about Policies
\n \n \n \n }\n description={`Create Policies`}\n />\n \n MinIO uses Policy-Based Access Control (PBAC) to define the\n authorized actions and resources to which an authenticated user has\n access. Each policy describes one or more actions and conditions\n that outline the permissions of a user or group of users.{\" \"}\n \n \n \n MinIO PBAC is built for compatibility with AWS IAM policy syntax,\n structure, and behavior.\n \n \n Each user can access only those resources and operations which are\n explicitly granted by the built-in role. MinIO denies access to any\n other resource or action by default.\n \n \n \n );\n};\n\nexport default AddPolicyHelpBox;\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 {\n AddAccessRuleIcon,\n BackLink,\n Box,\n Button,\n FormLayout,\n Grid,\n InputBox,\n PageLayout,\n} from \"mds\";\nimport AddPolicyHelpBox from \"./AddPolicyHelpBox\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport HelpMenu from \"../HelpMenu\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../../store\";\nimport { emptyPolicy } from \"./utils\";\nimport { api } from \"../../../api\";\n\nconst AddPolicyScreen = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [addLoading, setAddLoading] = useState(false);\n const [policyName, setPolicyName] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(emptyPolicy);\n\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api.policies\n .addPolicy({\n name: policyName,\n policy: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n navigate(`${IAM_PAGES.POLICIES}`);\n })\n .catch((err) => {\n setAddLoading(false);\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"There was an error creating a Policy \",\n detailedError:\n \"There was an error creating a Policy: \" +\n (err.error.detailedMessage || \"\") +\n \". Please check Policy syntax.\",\n }),\n );\n });\n };\n\n const resetForm = () => {\n setPolicyName(\"\");\n setPolicyDefinition(\"\");\n };\n\n const validatePolicyname = (policyName: string) => {\n if (policyName.indexOf(\" \") !== -1) {\n return \"Policy name cannot contain spaces\";\n } else return \"\";\n };\n\n const validSave =\n policyName.trim() !== \"\" &&\n policyName.indexOf(\" \") === -1 &&\n policyDefinition.trim() !== \"\";\n\n useEffect(() => {\n dispatch(setHelpName(\"add_policy\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n \n \n navigate(IAM_PAGES.POLICIES)}\n />\n }\n actions={}\n />\n \n }\n helpBox={}\n >\n ) => {\n addRecord(e);\n }}\n >\n \n \n ) => {\n setPolicyName(e.target.value);\n }}\n />\n \n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n helptip={\n \n \n Guide to access policy structure\n \n \n }\n />\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AddPolicyScreen;\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 emptyPolicy =\n \"{\\n\" +\n ' \"Version\": \"2012-10-17\",\\n' +\n ' \"Statement\": [\\n' +\n \" \\n\" +\n \" ]\\n\" +\n \"}\";\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["_ref","value","_ref$label","label","_ref$tooltip","tooltip","_ref$mode","mode","onChange","_ref$editorHeight","editorHeight","helptip","_jsx","CodeEditor","helpTools","Fragment","children","TooltipWrapper","CopyToClipboard","text","Button","type","id","icon","CopyIcon","color","variant","helpTip","helpTipPlacement","FeatureItem","description","_jsxs","Box","sx","display","marginRight","height","width","marginBottom","style","fontSize","fontStyle","flex","border","borderRadius","flexFlow","padding","fontWeight","alignItems","paddingBottom","HelpIconFilled","IAMPoliciesIcon","paddingTop","dispatch","useAppDispatch","navigate","useNavigate","_useState","useState","_useState2","_slicedToArray","addLoading","setAddLoading","_useState3","_useState4","policyName","setPolicyName","_useState5","emptyPolicy","_useState6","policyDefinition","setPolicyDefinition","validSave","trim","indexOf","useEffect","setHelpName","Grid","item","xs","PageHeaderWrapper","BackLink","onClick","IAM_PAGES","POLICIES","actions","HelpMenu","PageLayout","FormLayout","title","AddAccessRuleIcon","helpBox","AddPolicyHelpBox","noValidate","autoComplete","onSubmit","e","preventDefault","api","policies","addPolicy","name","policy","then","res","concat","catch","err","setErrorSnackMessage","errorMessage","detailedError","error","detailedMessage","container","InputBox","autoFocus","validatePolicyname","target","CodeMirrorWrapper","href","textAlign","justifyContent","marginTop","gap","disabled","deselectCurrent","require","clipboardToIE11Formatting","module","exports","options","debug","message","reselectPrevious","range","selection","mark","success","document","createRange","getSelection","createElement","textContent","ariaHidden","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_defineProperties","props","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","self","TypeError","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","args","Array","_key","event","_this$props","elem","Children","only","_this$props2","cloneElement","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2603.dca1b3d2.chunk.js b/portal-ui/build/static/js/2603.dca1b3d2.chunk.js new file mode 100644 index 000000000..e7dad4238 --- /dev/null +++ b/portal-ui/build/static/js/2603.dca1b3d2.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2603,4619],{94619:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});var s=n(72791),o=n(56028),i=n(29945),a=n(31776),l=n(82342),r=n(23814),c=n(87995),d=n(44690),u=n(80184);const h=e=>{let{modalOpen:t,onClose:n,bucket:h,prefilledRoute:x}=e;const m=(0,d.TL)(),[p,j]=(0,s.useState)(""),[b,g]=(0,s.useState)("readonly");(0,s.useEffect)((()=>{x&&j(x)}),[x]);return(0,u.jsx)(o.Z,{modalOpen:t,title:"Add Anonymous Access Rule",onClose:n,titleIcon:(0,u.jsx)(i.sR0,{}),children:(0,u.jsxs)(i.ltY,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(i.Wzg,{value:p,label:"Prefix",id:"prefix",name:"prefix",placeholder:"Enter Prefix",onChange:e=>{j(e.target.value)},tooltip:"Enter '/' to apply the rule to all prefixes and objects at the bucket root. Do not include the wildcard asterisk '*' as part of the prefix *unless* it is an explicit part of the prefix name. The Console automatically appends an asterisk to the appropriate sections of the resulting IAM policy."}),(0,u.jsx)(i.PhF,{id:"access",name:"Access",onChange:e=>{g(e)},label:"Access",value:b,options:[{label:"readonly",value:"readonly"},{label:"writeonly",value:"writeonly"},{label:"readwrite",value:"readwrite"}],disabled:!1,helpTip:(0,u.jsx)(s.Fragment,{children:"Select the desired level of access available to unauthenticated Users"}),helpTipPlacement:"right"}),(0,u.jsxs)(i.rjZ,{item:!0,xs:12,sx:r.ID.modalButtonBar,children:[(0,u.jsx)(i.zxk,{id:"clear",type:"button",variant:"regular",onClick:()=>{j(""),g("readonly")},label:"Clear"}),(0,u.jsx)(i.zxk,{id:"add-access-save",type:"submit",variant:"callAction",disabled:""===p.trim(),onClick:()=>{a.h.bucket.setAccessRuleWithBucket(h,{prefix:p,access:b}).then((e=>{m((0,c.y1)("Access Rule added successfully")),n()})).catch((e=>{m((0,c.Ih)((0,l.g)(e.error))),n()}))},label:"Save"})]})]})})}},32603:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Je});var s=n(72791),o=n(78687),i=n(57689),a=n(31776),l=n(44690),r=n(56087),c=n(45248),d=n(54756),u=n(26181),h=n.n(u),x=n(29945),m=n(82342),p=n(43954),j=n(99779),b=n(78029),g=n.n(b),v=n(16444),f=n(11087),_=n(38442),S=n(75578),T=n(87995);const w=e=>(e.match(/\.([^.]*?)(?=\?|#|$)/)||[])[1],y=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const s=Object.keys(e).reduce(((n,s)=>(w(s)&&s.includes(t)&&(n[s]=e[s]),n)),{});return Object.keys(s).filter((e=>{const o=s[e].some((e=>n.find((t=>{let n=!1;if(-1!==t.indexOf("*")){const s=t.substring(0,t.length-1);n=e.includes(s)}return n||e===t})))),i=e.substring(0,e.indexOf("/*."))==="arn:aws:s3:::".concat(t);return o&&(i&&"arn:aws:s3:::*"!==e)}))};var C=n(80184);const E=(0,S.Z)(s.lazy((()=>n.e(2185).then(n.bind(n,62185))))),O=v.ZP.div((()=>({display:"flex","& .additionalOptions":{paddingRight:"10px",display:"flex",alignItems:"center",["@media (max-width: ".concat(x.Egj.lg,"px)")]:{display:"none"}},"& .slashSpacingStyle":{margin:"0 5px"}}))),F=e=>{let{bucketName:t,internalPaths:n,hidePathButton:a,additionalOptions:u}=e;const h=(0,l.TL)(),m=(0,i.s0)(),p=(0,o.v9)((e=>e.objectBrowser.rewind.rewindEnabled)),j=(0,o.v9)((e=>e.objectBrowser.versionsMode)),b=(0,o.v9)((e=>e.objectBrowser.versionedFile)),v=(0,o.v9)((e=>e.system.anonymousMode)),[S,w]=(0,s.useState)(!1),[F,I]=(0,s.useState)(!1),N=[r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],k=(0,o.v9)((e=>e.console.session&&e.console.session.permissions||{}));let B=n;""!==n&&(B="/".concat(n));const L=B.split("/").filter((e=>""!==e)),A=L.length-1,D=t+B||t,P=y(k,D,N);(0,s.useEffect)((()=>{I(!1),Object.keys(k).forEach((e=>{e.includes(D)&&e.includes("/*")&&I(!0)}))}),[D,n,k]);const R=(0,_.F)([D,...P],N)||v||F;let M=L.map(((e,n)=>{const o="".concat(L.slice(0,n+1).join("/"),"/"),i="/browser/".concat(t,"/").concat(o?"".concat((0,c.LL)(o)):"");return n===A&&e===b?null:(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)("span",{className:"slashSpacingStyle",children:"/"}),n===A?(0,C.jsx)("span",{style:{cursor:"default",whiteSpace:"pre"},children:(0,c.eC)(e)}):(0,C.jsx)(f.rU,{style:{whiteSpace:"pre"},to:i,onClick:()=>{h((0,d.db)({status:!1,objectName:""}))},children:(0,c.eC)(e)})]},"breadcrumbs-".concat(n.toString()))})),U=[];j&&(U=[(0,C.jsx)(s.Fragment,{children:(0,C.jsxs)("span",{children:[(0,C.jsx)("span",{className:"slashSpacingStyle",children:"/"}),b," - Versions"]})},"breadcrumbs-versionedItem")]);const G=[(0,C.jsx)(s.Fragment,{children:(0,C.jsx)(f.rU,{to:"/browser/".concat(t),onClick:()=>{h((0,d.db)({status:!1,objectName:""}))},children:t})},"breadcrumbs-root-path"),...M,...U];return(0,C.jsxs)(s.Fragment,{children:[(0,C.jsxs)(O,{children:[S&&(0,C.jsx)(E,{modalOpen:S,bucketName:t,folderName:n,onClose:()=>{w(!1)},limitedSubPath:F&&!((0,_.F)([D,...P],N)||v)}),(0,C.jsx)(x.OoM,{sx:{whiteSpace:"pre"},goBackFunction:()=>{if(j)h((0,d.db)({status:!1,objectName:""}));else{if(0===L.length)return void m("/browser");const e=L.slice(0,-1);m("/browser/".concat(t).concat(e.length>0?"/".concat((0,c.LL)("".concat(e.join("/"),"/"))):""))}},additionalOptions:(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)(g(),{text:"".concat(t,"/").concat(L.join("/")),children:(0,C.jsx)(x.zxk,{id:"copy-path",icon:(0,C.jsx)(x.TIy,{style:{width:"12px",height:"12px",fill:"#969FA8",marginTop:-1}}),variant:"regular",onClick:()=>{h((0,T.y1)("Path copied to clipboard"))},style:{width:"28px",height:"28px",color:"#969FA8",border:"#969FA8 1px solid",marginRight:5}})}),(0,C.jsx)(x.xuv,{className:"additionalOptions",children:u})]}),children:G}),!a&&(0,C.jsx)(x.ua7,{tooltip:R?"Choose or create a new path":(0,r.MK)([r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],"create a new path"),children:(0,C.jsx)(x.zxk,{id:"new-path",onClick:()=>{w(!0)},disabled:!v&&(p||!R),icon:(0,C.jsx)(x.N$q,{style:{fill:"#969FA8"}}),style:{whiteSpace:"nowrap"},variant:"regular",label:"Create new path"})})]}),(0,C.jsx)(x.xuv,{sx:{display:"none",marginTop:15,marginBottom:5,justifyContent:"flex-start","& > div":{fontSize:12,fontWeight:"normal",flexDirection:"row",flexWrap:"nowrap"},["@media (max-width: ".concat(x.Egj.lg,"px)")]:{display:"flex"}},children:u})]})};var I=n(47922);const N=e=>"Enabled"===e||"Suspended"===e;var k=n(76610),B=n(9859),L=n(96382);const A=(0,L.hg)("objectBrowser/downloadSelected",(async(e,t)=>{let{getState:n,rejectWithValue:s,dispatch:o}=t;const i=n(),a=t=>{const n=(0,c.LL)("".concat(e,"-").concat(t.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),s=(0,k.YO)(8),i=(0,I.LR)(e,(0,c.LL)(t.name),t.version_id,t.size,null,s,(e=>{o((0,d.RO)({instanceID:n,progress:e}))}),(()=>{o((0,d.oK)(n))}),(e=>{o((0,d.qJ)({instanceID:n,msg:e}))}),(()=>{o((0,d.Im)(n))}),(()=>{o((0,T.y1)("File download will be handled directly by the browser."))}));(0,k.EN)(s,i),o((0,d.Mc)({ID:s,bucketName:e,done:!1,instanceID:n,percentage:0,prefix:t.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))};if(0!==i.objectBrowser.selectedObjects.length){let t=[];const n=e=>i.objectBrowser.selectedObjects.includes(e.name);if(t=i.objectBrowser.records.filter(n),1===t.length){if(t[0].name.length>200&&(0,c.mv)().toLowerCase().includes("win"))return void o((0,d.$y)(t[0]));a(t[0])}else if(1===t.length)a(t[0]);else if(t.length>1){const n="".concat(j.ou.now().toFormat("LL-dd-yyyy-HH-mm-ss"),"_files_list.zip"),s=t.reduce(((e,t)=>{const n=null===t||void 0===t?void 0:t.delete_flag;return t&&!n?e.push(t.name):console.log("Skipping ".concat(null===t||void 0===t?void 0:t.name," from download.")),e}),[]);return void await(0,I.Sv)(e,s,n)}}})),D=(0,L.hg)("objectBrowser/openPreview",(async(e,t)=>{let{getState:n,rejectWithValue:s,dispatch:o}=t;const i=n();if(1===i.objectBrowser.selectedObjects.length){let e;const t=e=>i.objectBrowser.selectedObjects.includes(e.name);e=i.objectBrowser.records.find(t),e&&(o((0,d.eP)(e)),o((0,d.ei)(!0)))}})),P=(0,L.hg)("objectBrowser/openShare",(async(e,t)=>{let{getState:n,rejectWithValue:s,dispatch:o}=t;const i=n();if(1===i.objectBrowser.selectedObjects.length){let e;const t=e=>i.objectBrowser.selectedObjects.includes(e.name);e=i.objectBrowser.records.find(t),e&&(o((0,d.eP)(e)),o((0,d.Qf)(!0)))}})),R=(0,L.hg)("objectBrowser/openAnonymousAccess",(async(e,t)=>{let{getState:n,dispatch:s}=t;const o=n();1===o.objectBrowser.selectedObjects.length&&o.objectBrowser.selectedObjects[0].endsWith("/")&&s((0,d.xV)(!0))}));var M=n(27454);const U=e=>{let{uploadPath:t,bucketName:n,forceDisable:i=!1,uploadFileFunction:a,uploadFolderFunction:l,overrideStyles:c={}}=e;const[d,u]=(0,s.useState)(null),[h,m]=(0,s.useState)(!1),p=(0,o.v9)((e=>e.system.anonymousMode)),j=(0,o.v9)((e=>e.console.session&&e.console.session.permissions||{})),b=[r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],g=y(j,t,b),v=Boolean(d),f=()=>{u(null)},S=(0,_.F)([t,...g],b)||p,T=(0,_.F)([n,...g],b,!1,!0),w=S||T;return(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)(M.Z,{tooltip:w?"Upload Files":(0,r.MK)([r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],"upload files to this bucket"),children:(0,C.jsx)(x.zxk,{id:"upload-main","aria-controls":"upload-main-menu","aria-haspopup":"true","aria-expanded":v?"true":void 0,onClick:e=>{m(!h),u(e.currentTarget)},label:"Upload",icon:(0,C.jsx)(x.rG2,{}),variant:"callAction",disabled:i||!w,sx:c})}),(0,C.jsx)(x.udT,{id:"upload-main-menu",options:[{label:"Upload File",icon:(0,C.jsx)(x.rG2,{}),value:"file",disabled:!S||i},{label:"Upload Folder",icon:(0,C.jsx)(x.oXh,{}),value:"folder",disabled:!T||i}],selectedOption:"",onSelect:e=>{"folder"!==e?a(f):l(f)},hideTriggerAction:()=>{m(!1)},open:h,anchorEl:d,anchorOrigin:"end",useAnchorWidth:!1})]})},G=e=>{let{open:t,closePanel:n,className:s="",children:o}=e;return(0,C.jsxs)(x.xuv,{id:"details-panel",sx:{borderColor:"#EAEDEE",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}}},className:"".concat(t?"open":""," ").concat(s),children:[(0,C.jsx)(x.zxk,{variant:"text",id:"close-details-list",onClick:n,icon:(0,C.jsx)(x.oto,{}),sx:{position:"absolute",right:5,top:18,padding:0,height:14,"&:hover:not(:disabled)":{backgroundColor:"transparent"}}}),o]})},z=(e,t,n,s)=>{var o;const i=(0,c.LL)("".concat(t,"-").concat(s.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),a=(0,c.mv)().toLowerCase().includes("win");if(((null===(o=s.name)||void 0===o?void 0:o.length)||0)>200&&a)return void e((0,d.Hg)(!0));const l=(0,k.YO)(8),r=(0,I.LR)(t,n,s.version_id,s.size||0,null,l,(t=>{e((0,d.RO)({instanceID:i,progress:t}))}),(()=>{e((0,d.oK)(i))}),(t=>{e((0,d.qJ)({instanceID:i,msg:t}))}),(()=>{e((0,d.Im)(i))}),(()=>{e((0,T.y1)("File download will be handled directly by the browser."))}));(0,k.EN)(l,r),e((0,d.Mc)({ID:l,bucketName:t,done:!1,instanceID:i,percentage:0,prefix:s.name||"",type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))},Z=e=>{let{icon:t,strings:n}=e;return(0,C.jsxs)(x.xuv,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:16,height:16,marginRight:4,minWidth:16,minHeight:16},"& .fileNameText":{whiteSpace:"pre",overflow:"hidden",textOverflow:"ellipsis"}},children:[t,(0,C.jsx)("span",{className:"fileNameText",children:(0,c.e3)(n[n.length-1])})]})},K=[{icon:(0,C.jsx)(x.n9O,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,C.jsx)(x.mYf,{}),extensions:["mp3","m4a","aac"]},{icon:(0,C.jsx)(x.UU9,{}),extensions:["pdf"]},{icon:(0,C.jsx)(x.hjP,{}),extensions:["ppt","pptx"]},{icon:(0,C.jsx)(x.hz9,{}),extensions:["xls","xlsx"]},{icon:(0,C.jsx)(x.xDw,{}),extensions:["cer","crt","pem"]},{icon:(0,C.jsx)(x.jG9,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,C.jsx)(x.NqG,{}),extensions:["cfg","yaml"]},{icon:(0,C.jsx)(x.OkY,{}),extensions:["sql"]},{icon:(0,C.jsx)(x.ZAy,{}),extensions:["ttf","otf"]},{icon:(0,C.jsx)(x.p2x,{}),extensions:["doc","docx","txt","rtf"]},{icon:(0,C.jsx)(x.xhr,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,C.jsx)(x.rtI,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,C.jsx)(x.q$4,{}),extensions:["jpeg","jpg","gif","tiff","png","heic","dng"]}],W=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e,s=(0,C.jsx)(x.MoH,{});e.endsWith("/")&&(s=(0,C.jsx)(x.BI,{}),n=e.slice(0,-1));const o=e.toLowerCase();for(const a of K)for(const e of a.extensions)o.endsWith(".".concat(e))&&(s=a.icon);!e.endsWith("/")&&e.indexOf(".")<0&&(s=(0,C.jsx)(x.lrl,{}));const i=n.split("/");return t?s:(0,C.jsx)(Z,{icon:s,strings:i})};var H=n(78562);const J=e=>{let{metaData:t}=e;const n=Object.keys(t);return(0,C.jsx)(s.Fragment,{children:n.map(((e,n)=>{const s=(e=>Array.isArray(e)?e.map(c.eC).join(", "):(0,c.eC)(e))(t[e]);return(0,C.jsxs)(x.xuv,{sx:{marginBottom:15,fontSize:14,maxHeight:180,overflowY:"auto"},children:[(0,C.jsx)("strong",{children:e}),(0,C.jsx)("br",{}),s]},"box-meta-".concat(e,"-").concat(n.toString()))}))})};var V=n(34433),Y=n(66315),q=n(23814);const $=[{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"}],Q=Array.from(Array(31),((e,t)=>({value:(t+1).toString(),label:(t+1).toString()}))),X=(new Date).getFullYear(),ee=Array.from(Array(50),((e,t)=>({value:(t+X).toString(),label:(t+X).toString()})));var te=n(56028);const ne=(0,s.forwardRef)(((e,t)=>{let{id:n,label:o,disableOptions:i=!1,tooltip:a="",borderBottom:l=!1,onDateChange:r,value:c=""}=e;(0,s.useImperativeHandle)(t,(()=>({resetDate:b})));const[d,u]=(0,s.useState)(""),[h,m]=(0,s.useState)(""),[p,j]=(0,s.useState)("");(0,s.useEffect)((()=>{if(""!==c){const e=c.split("-");j(e[0]),u(e[1]),m("".concat(parseInt(e[2])))}}),[c]),(0,s.useEffect)((()=>{const[e,t]=((e,t,n)=>{const s=Date.parse("".concat(e,"-").concat(t,"-").concat(n));if(isNaN(s))return[!1,""];const o=parseInt(t),i=parseInt(n),a=o<10?"0".concat(o):o,l=i<10?"0".concat(i):i,r=new Date(s).toISOString().split("T")[0],c="".concat(e,"-").concat(a,"-").concat(l);return[r===c,c]})(p,d,h);r(t,e)}),[d,h,p,r]);const b=()=>{u(""),m(""),j("")},g=()=>i||!1,v=[{value:"",label:""},...$],f=[{value:"",label:""},...Q],_=[{value:"",label:""},...ee];return(0,C.jsxs)(x.xuv,{className:"inputItem",children:[(0,C.jsx)(x.xuv,{sx:{display:"flex",alignItems:"center",gap:5,marginBottom:5},children:(0,C.jsxs)(x.AZs,{htmlFor:n,children:[(0,C.jsx)("span",{children:o}),""!==a&&(0,C.jsx)(x.xuv,{sx:{marginLeft:5,display:"flex",alignItems:"center","& .min-icon":{width:13}},children:(0,C.jsx)(x.ua7,{tooltip:a,placement:"top",children:(0,C.jsx)(x.xuv,{sx:{"& .min-icon":{width:13}},children:(0,C.jsx)(x.byK,{})})})})]})}),(0,C.jsxs)(x.xuv,{sx:{display:"flex",gap:12},children:[(0,C.jsx)(x.PhF,{id:"".concat(n,"-month"),name:"".concat(n,"-month"),value:d,onChange:e=>{u(e)},options:v,label:"",disabled:g()}),(0,C.jsx)(x.PhF,{id:"".concat(n,"-day"),name:"".concat(n,"-day"),value:h,onChange:e=>{m(e)},options:f,label:"",disabled:g()}),(0,C.jsx)(x.PhF,{id:"".concat(n,"-year"),name:"".concat(n,"-year"),value:p,onChange:e=>{j(e)},options:_,label:"",disabled:g(),sx:{marginBottom:12}})]})]})})),se=e=>{let{open:t,closeModalAndRefresh:n,objectName:i,objectInfo:r,bucketName:d}=e;const u=(0,l.TL)(),h=(0,o.v9)((e=>e.objectBrowser.retentionConfig)),[p,j]=(0,s.useState)(!0),[b,g]=(0,s.useState)(""),[v,f]=(0,s.useState)(""),[_,S]=(0,s.useState)(!1),[w,y]=(0,s.useState)(!1),[E,O]=(0,s.useState)(!1);(0,s.useEffect)((()=>{if(r.retention_mode&&(g((null===h||void 0===h?void 0:h.mode)||Y.oO.Governance),O(!0)),r.retention_until_date){const t=new Date(r.retention_until_date);if("Invalid Date"!==t.toString()){const n=t.getFullYear(),s=(e=t.getMonth()+1)<10?"0".concat(e):"".concat(e),o=t.getDate();isNaN(o)||"NaN"===s||isNaN(n)||f("".concat(n,"-").concat(s,"-").concat(o))}O(!0)}var e}),[r,null===h||void 0===h?void 0:h.mode]);const F=(0,s.useRef)(null),I=()=>{j(!1),g(Y.oO.Governance),F.current&&F.current.resetDate()},N=E&&("governance"===b||""===b);return(0,C.jsx)(te.Z,{title:"Set Retention Policy",modalOpen:t,onClose:()=>{I(),n(!1)},children:(0,C.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{(e=>{e.preventDefault()})(e)},children:(0,C.jsxs)(x.ltY,{withBorders:!1,containerPadding:!1,children:[(0,C.jsxs)(x.xuv,{className:"inputItem",children:[(0,C.jsx)("strong",{children:"Selected Object"}),": ",i]}),N&&(0,C.jsx)(x.rsf,{value:"status",id:"status",name:"status",checked:p,onChange:e=>{j(!p)},label:"Status",indicatorLabels:["Enabled","Disabled"]}),(0,C.jsx)(x.Eep,{currentValue:b,id:"type",name:"type",label:"Type",disableOptions:!p||E&&""!==b,onChange:e=>{g(e.target.value)},selectorOptions:[{label:"Governance",value:Y.oO.Governance},{label:"Compliance",value:Y.oO.Compliance}]}),(0,C.jsx)(ne,{id:"date",label:"Date",disableOptions:!(p&&("governance"===b||"compliance"===b)),ref:F,value:v,borderBottom:!0,onDateChange:(e,t)=>{S(t),t&&f(e)}}),(0,C.jsxs)(x.rjZ,{item:!0,xs:12,sx:q.ID.modalButtonBar,children:[(0,C.jsx)(x.zxk,{id:"reset",type:"button",variant:"regular",onClick:I,label:"Reset"}),(0,C.jsx)(x.zxk,{id:"save",type:"submit",variant:"callAction",disabled:p&&""===b||p&&!_||w,onClick:()=>{y(!0);const e=r.name||"",t=r.version_id||null,s=p||"governance"!==b?"".concat(v,"T23:59:59Z"):"";p||"governance"!==b?((e,t,s)=>{a.h.buckets.putObjectRetention(d,{prefix:(0,c.LL)(e),version_id:t||""},{expires:s,mode:b}).then((()=>{y(!1),n(!0)})).catch((e=>{u((0,T.zb)((0,m.g)(e.error))),y(!1)}))})(e,t,s):((e,t)=>{a.h.buckets.deleteObjectRetention(d,{prefix:(0,c.LL)(e),version_id:t||""}).then((()=>{y(!1),n(!0)})).catch((e=>{u((0,T.zb)((0,m.g)(e.error))),y(!1)}))})(e,t)},label:"Save"})]})]})})})};var oe=n(23508),ie=n(9505);const ae=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedBucket:i,selectedObject:a,versioningInfo:d,selectedVersion:u=""}=e;const h=(0,l.TL)(),[m,p]=(0,ie.Z)((()=>t(!0)),(e=>{h((0,T.Ih)(e)),"Access Denied."===e.detailedError&&t(!0)})),[j,b]=(0,s.useState)(!1),[g,v]=(0,s.useState)(!1),f=(0,o.v9)((e=>e.objectBrowser.retentionConfig)),S=(0,_.F)([i],[r.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===f||void 0===f?void 0:f.mode);if(!a)return null;return(0,C.jsx)(oe.Z,{title:"Delete Object",confirmText:"Delete",isOpen:n,titleIcon:(0,C.jsx)(x.NvT,{}),isLoading:m,onConfirm:()=>{const e=(0,c.IO)(a).endsWith("/");p("DELETE","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(a).concat(""!==u?"&version_id=".concat(u):"&recursive=".concat(e,"&all_versions=").concat(j)).concat(g?"&bypass=true":""))},onClose:()=>t(!1),confirmationContent:(0,C.jsxs)(s.Fragment,{children:["Are you sure you want to delete: ",(0,C.jsx)("br",{}),(0,C.jsx)("b",{children:(0,c.IO)(a)})," ",""!==u?(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)("br",{}),(0,C.jsx)("br",{}),"Version ID:",(0,C.jsx)("br",{}),(0,C.jsx)("strong",{children:u})]}):"","? ",(0,C.jsx)("br",{}),(0,C.jsx)("br",{}),N(null===d||void 0===d?void 0:d.status)&&""===u&&(0,C.jsx)(s.Fragment,{children:(0,C.jsx)(x.rsf,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:j,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:e=>{b(!j)},description:""})}),S&&(j||""!==u)&&(0,C.jsx)(s.Fragment,{children:(0,C.jsx)("div",{style:{marginTop:10},children:(0,C.jsx)(x.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:g,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:e=>{v(!g)},description:""})})}),j&&(0,C.jsxs)(s.Fragment,{children:[(0,C.jsxs)("div",{style:{marginTop:10,border:"#c83b51 1px solid",borderRadius:3,padding:5,backgroundColor:"#c83b5120",color:"#c83b51"},children:["This will remove the object as well as all of its versions,"," ",(0,C.jsx)("br",{}),"This action is irreversible."]}),(0,C.jsx)("br",{}),"Are you sure you want to continue?"]})]})})},le=e=>{let{open:t,closeModalAndRefresh:n,objectName:o,bucketName:i,actualInfo:r}=e;const d=(0,l.TL)(),[u,p]=(0,s.useState)(!1),[j,b]=(0,s.useState)(!1),g=r.version_id;(0,s.useEffect)((()=>{const e=h()(r,"legal_hold_status","OFF");p("ON"===e)}),[r]);const v=()=>{p(!1)};return(0,C.jsx)(te.Z,{title:"Set Legal Hold",modalOpen:t,onClose:()=>{v(),n(!1)},children:(0,C.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{(e=>{e.preventDefault(),b(!0),a.h.buckets.putObjectLegalHold(i,{prefix:(0,c.LL)(o),version_id:g||""},{status:u?Y.nY.Enabled:Y.nY.Disabled}).then((()=>{b(!1),n(!0)})).catch((e=>{d((0,T.zb)((0,m.g)(e.error))),b(!1)}))})(e)},children:(0,C.jsxs)(x.ltY,{withBorders:!1,containerPadding:!1,children:[(0,C.jsxs)(x.xuv,{className:"inputItem",children:[(0,C.jsx)("strong",{children:"Object"}),": ",i]}),(0,C.jsx)(x.rsf,{value:"legalhold",id:"legalhold",name:"legalhold",checked:u,onChange:e=>{p(!u)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"}),(0,C.jsxs)(x.rjZ,{item:!0,xs:12,sx:q.ID.modalButtonBar,children:[(0,C.jsx)(x.zxk,{id:"clear",type:"button",variant:"regular",onClick:v,label:"Clear"}),(0,C.jsx)(x.zxk,{id:"save",type:"submit",variant:"callAction",disabled:j,label:" Save"})]})]})})})},re=v.ZP.b((e=>{let{theme:t}=e;return{color:h()(t,"signalColors.danger","#C83B51"),marginLeft:5}})),ce=e=>{var t;let{modalOpen:n,onCloseAndUpdate:i,bucketName:d,actualInfo:u}=e;const p=(0,l.TL)(),j=(0,o.v9)(T.N5),[b,g]=(0,s.useState)(""),[v,f]=(0,s.useState)(""),[S,w]=(0,s.useState)(!1),[y,E]=(0,s.useState)(!1),[O,F]=(0,s.useState)(""),[I,N]=(0,s.useState)(""),k=(0,c.LL)(u.name||""),B=u.tags,L=Object.keys(B||{}),A=null===(t=u.name)||void 0===t?void 0:t.split("/"),D=(null===A||void 0===A?void 0:A.pop())||"",P=e=>(0,C.jsxs)(x.xuv,{sx:{fontSize:16,margin:"20px 0 30px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"100%"},children:["Tag",e?"s":""," for: ",(0,C.jsx)("strong",{children:D})]});return(0,C.jsx)(s.Fragment,{children:(0,C.jsx)(te.Z,{modalOpen:n,title:y?"Delete Tag":"Edit Tags",onClose:()=>{i(!0)},iconColor:y?"delete":"default",titleIcon:y?(0,C.jsx)(x.dRf,{}):(0,C.jsx)(x.T0F,{}),children:y?(0,C.jsx)(s.Fragment,{children:(0,C.jsxs)(x.rjZ,{container:!0,children:[P(!1),"Are you sure you want to delete the tag"," ",(0,C.jsxs)(re,{children:[O," : ",I]})," ","?",(0,C.jsxs)(x.rjZ,{item:!0,xs:12,sx:q.ID.modalButtonBar,children:[(0,C.jsx)(x.zxk,{id:"cancel",type:"button",variant:"regular",onClick:()=>{F(""),N(""),E(!1)},label:"Cancel"}),(0,C.jsx)(x.zxk,{type:"submit",variant:"secondary",onClick:()=>{const e={...B};delete e[O];const t=j?u.version_id||"":"null";a.h.buckets.putObjectTags(d,{prefix:k,version_id:t},{tags:e}).then((()=>{i(!0),w(!1)})).catch((e=>{p((0,T.zb)((0,m.g)(e.error))),w(!1)}))},id:"deleteTag",label:"Delete Tag"})]})]})}):(0,C.jsxs)(x.xuv,{children:[(0,C.jsx)(_.s,{scopes:[r.Ft.S3_GET_OBJECT_TAGGING,r.Ft.S3_GET_ACTIONS],resource:d,children:(0,C.jsxs)(x.xuv,{sx:{display:"flex",flexFlow:"column",width:"100%"},children:[P(!0),(0,C.jsxs)(x.xuv,{sx:{fontSize:14,fontWeight:"normal"},children:["Current Tags:",(0,C.jsx)("br",{}),0===L.length?(0,C.jsx)("span",{className:"muted",children:"There are no tags for this object"}):(0,C.jsx)(s.Fragment,{}),(0,C.jsx)(x.xuv,{sx:{marginTop:"5px",marginBottom:"15px"},children:L.map(((e,t)=>{const n=h()(B,"".concat(e),"");return""!==n?(0,C.jsx)(_.s,{scopes:[r.Ft.S3_DELETE_OBJECT_TAGGING],resource:d,errorProps:{deleteIcon:null,onDelete:null},children:(0,C.jsx)(x.Vp9,{id:"".concat(e," : ").concat(n),label:"".concat(e," : ").concat(n),variant:"regular",color:"default",onDelete:()=>{((e,t)=>{F(e),N(t),E(!0)})(e,n)}})},"chip-".concat(t)):null}))})]})]})}),(0,C.jsx)(_.s,{scopes:[r.Ft.S3_PUT_OBJECT_TAGGING,r.Ft.S3_PUT_ACTIONS],resource:d,errorProps:{disabled:!0,onClick:null},children:(0,C.jsxs)(x.xuv,{children:[(0,C.jsx)(x.NZf,{icon:(0,C.jsx)(x.OCT,{}),separator:!1,children:"Add New Tag"}),(0,C.jsxs)(x.ltY,{containerPadding:!1,withBorders:!1,children:[(0,C.jsx)(x.Wzg,{value:b,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:e=>{g(e.target.value)}}),(0,C.jsx)(x.Wzg,{value:v,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:e=>{f(e.target.value)}}),(0,C.jsxs)(x.rjZ,{item:!0,xs:12,sx:q.ID.modalButtonBar,children:[(0,C.jsx)(x.zxk,{id:"clear",type:"button",variant:"regular",color:"primary",onClick:()=>{f(""),g("")},label:"Clear"}),(0,C.jsx)(x.zxk,{type:"submit",variant:"callAction",disabled:""===v.trim()||""===b.trim()||S,onClick:()=>{w(!0);const e={};e[b]=v;const t={...B,...e},n=j?u.version_id||"":"null";a.h.buckets.putObjectTags(d,{prefix:k,version_id:n},{tags:t}).then((()=>{i(!0),w(!1)})).catch((e=>{p((0,T.zb)((0,m.g)(e.error))),w(!1)}))},id:"saveTag",label:"Save"})]})]})]})})]})})})};var de=n(73669);const ue=e=>{let{closeInspectModalAndRefresh:t,inspectOpen:n,inspectPath:o,volumeName:i}=e;const a=(0,l.TL)(),r=()=>t(!1),[d,u]=(0,s.useState)(!0),[h,m]=(0,s.useState)(""),[p,j]=(0,s.useState)("");if(!o)return null;return(0,C.jsxs)(s.Fragment,{children:[!h&&(0,C.jsx)(te.Z,{modalOpen:n,titleIcon:(0,C.jsx)(x.Gp8,{}),title:"Inspect Object",onClose:r,children:(0,C.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{(e=>{e.preventDefault()})(e)},children:["Would you like to encrypt ",(0,C.jsx)("b",{children:(0,c.IO)(o)}),"?"," ",(0,C.jsx)("br",{}),(0,C.jsx)(x.rsf,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:d,value:"encrypt",id:"encrypt",name:"encrypt",onChange:e=>{u(!d)},description:""}),(0,C.jsx)(x.rjZ,{item:!0,xs:12,sx:q.ID.modalButtonBar,children:(0,C.jsx)(x.zxk,{id:"inspect",type:"submit",variant:"callAction",color:"primary",onClick:async()=>{const e=(0,c.LL)(o+"/xl.meta"),t=(0,c.LL)(i);(async e=>await fetch(e,{method:"GET"}))("/api/v1/admin/inspect?volume=".concat(t,"&file=").concat(e,"&encrypt=").concat(d)).then((async e=>{if(!e.ok){const t=await e.json();a((0,T.Ih)({errorMessage:t.message,detailedError:t.code}))}const t=await e.blob(),n=e.headers.get("content-disposition").split('"')[1],s=(0,c.Do)(n)||"";(0,c.zZ)(t,n),j(n),""!==s?m(s):r()})).catch((e=>{a((0,T.Ih)(e))}))},label:"Inspect"})})]})}),h?(0,C.jsxs)(te.Z,{modalOpen:n,title:"Inspect Decryption Key",onClose:()=>{(0,c.kT)(p),r(),m("")},titleIcon:(0,C.jsx)(x.tvm,{}),children:[(0,C.jsxs)(x.xuv,{children:["This will be displayed only once. It cannot be recovered.",(0,C.jsx)("br",{}),"Use secure medium to share this key."]}),(0,C.jsx)(x.xuv,{children:(0,C.jsx)(de.Z,{value:h})})]}):null]})},he=e=>{let{open:t,closeModal:n,currentItem:o,internalPaths:i,actualInfo:a,bucketName:r}=e;const c=(0,l.TL)(),[d,u]=(0,s.useState)(o),[h,m]=(0,s.useState)(!1);return(0,C.jsxs)(te.Z,{title:"Rename Download",modalOpen:t,onClose:n,titleIcon:(0,C.jsx)(x.dY8,{}),children:[(0,C.jsxs)("div",{children:["The file you are trying to download has a long name.",(0,C.jsx)("br",{}),"This can cause issues on Windows Systems by trimming the file name after download.",(0,C.jsx)("br",{}),(0,C.jsx)("br",{})," We recommend to rename the file download"]}),(0,C.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{(e=>{e.preventDefault(),z(c,r,i,a),n()})(e)},children:(0,C.jsxs)(x.ltY,{withBorders:!1,containerPadding:!1,children:[(0,C.jsx)(x.Wzg,{id:"download-filename",name:"download-filename",onChange:e=>{u(e.target.value)},label:"",type:"text",value:d,error:d.length>200&&!h?"Filename should be less than 200 characters long.":""}),(0,C.jsx)(x.rsf,{value:"acceptLongName",id:"acceptLongName",name:"acceptLongName",checked:h,onChange:e=>{m(e.target.checked),e.target.checked&&u(o)},label:"Use Original Name"}),(0,C.jsx)(x.rjZ,{item:!0,xs:12,sx:q.ID.modalButtonBar,children:(0,C.jsx)(x.zxk,{id:"download-file",type:"submit",variant:"callAction",color:"primary",disabled:d.length>200&&!h,label:"Download File"})})]})})]})},xe={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:0,tags:{},version_id:void 0},me=e=>{let{internalPaths:t,bucketName:n,versioningInfo:i,locking:u,onClosePanel:m}=e;const p=(0,l.TL)(),j=(0,o.v9)(T.N5),b=(0,o.v9)((e=>e.objectBrowser.versionsMode)),g=(0,o.v9)((e=>e.objectBrowser.selectedVersion)),v=(0,o.v9)((e=>e.objectBrowser.loadingObjectInfo)),[f,S]=(0,s.useState)(!1),[w,y]=(0,s.useState)(!1),[E,O]=(0,s.useState)(!1),[F,N]=(0,s.useState)(!1),[k,B]=(0,s.useState)(!1),[L,A]=(0,s.useState)(null),[D,P]=(0,s.useState)([]),[R,U]=(0,s.useState)(null),[G,Z]=(0,s.useState)([]),[K,Y]=(0,s.useState)(!1),[q,$]=(0,s.useState)(!1),[Q,X]=(0,s.useState)(0),[ee,te]=(0,s.useState)(!1),[ne,oe]=(0,s.useState)(null),[ie,re]=(0,s.useState)(!1),de=((0,c.IO)(t)||"").split("/").pop()||"";let me=[];L&&L.name&&(me=L.name.split("/")),(0,s.useEffect)((()=>{if(j&&D&&D.length>=1){let e=D.find((e=>e.is_latest))||xe;""!==g&&(e=D.find((e=>e.version_id===g))||xe),e.is_delete_marker||re(!0),A(e)}}),[g,j,D]),(0,s.useEffect)((()=>{v&&""!==t&&a.h.buckets.listObjects(n,{prefix:t,with_versions:j}).then((e=>{const t=e.data.objects||[];if(j){P(t),Z(t);const e=t.reduce(((e,t)=>null!==t&&void 0!==t&&t.size?e+t.size:e),0);X(e)}else{const e=t[0];A(e),Z([]),e.is_delete_marker||re(!0)}p((0,d.vH)(!1))})).catch((e=>{console.error("Error loading object details",e.error),p((0,d.vH)(!1))}))}),[v,n,t,p,j,g]),(0,s.useEffect)((()=>{ie&&""!==t&&a.h.buckets.getObjectMetadata(n,{prefix:t}).then((e=>{let t=h()(e.data,"objectMetadata",{});oe(t),re(!1)})).catch((e=>{console.error("Error Getting Metadata Status: ",e.detailedError),re(!1)}))}),[n,t,ie]);let pe=[];L&&L.tags&&(pe=Object.keys(L.tags));const je=(0,C.jsx)("div",{style:{textAlign:"center",marginTop:35},children:(0,C.jsx)(x.aNw,{})});if(!L)return v?je:null;const be=me.length>0?me[me.length-1]:L.name,ge=[n,de,[n,L.name].join("/")],ve=(0,_.F)(n,[r.Ft.S3_PUT_OBJECT_LEGAL_HOLD,r.Ft.S3_PUT_ACTIONS]),fe=(0,_.F)(ge,[r.Ft.S3_PUT_OBJECT_TAGGING,r.Ft.S3_PUT_ACTIONS]),_e=(0,_.F)(ge,[r.Ft.S3_GET_OBJECT_RETENTION,r.Ft.S3_PUT_OBJECT_RETENTION,r.Ft.S3_GET_ACTIONS,r.Ft.S3_PUT_ACTIONS],!0),Se=(0,_.F)(ge,[r.Ft.ADMIN_INSPECT_DATA]),Te=(0,_.F)(ge,[r.Ft.S3_GET_BUCKET_VERSIONING,r.Ft.S3_PUT_BUCKET_VERSIONING,r.Ft.S3_GET_OBJECT_VERSION,r.Ft.S3_GET_ACTIONS,r.Ft.S3_PUT_ACTIONS]),we=(0,_.F)(ge,[r.Ft.S3_GET_OBJECT,r.Ft.S3_GET_ACTIONS]),ye=(0,_.F)([n,de,[n,L.name].join("/")],[r.Ft.S3_DELETE_OBJECT]);let Ce=(0,I.s7)(ne,de);const Ee=[{action:()=>{z(p,n,t,L)},label:"Download",disabled:!!L.is_delete_marker||!we,icon:(0,C.jsx)(x._8t,{}),tooltip:we?"Download this Object":(0,r.MK)([r.Ft.S3_GET_OBJECT,r.Ft.S3_GET_ACTIONS],"download this object")},{action:()=>{S(!0)},label:"Share",disabled:!!L.is_delete_marker||!we,icon:(0,C.jsx)(x.aAc,{}),tooltip:we?"Share this File":(0,r.MK)([r.Ft.S3_GET_OBJECT,r.Ft.S3_GET_ACTIONS],"share this object")},{action:()=>{$(!0)},label:"Preview",disabled:!!L.is_delete_marker||"none"===Ce&&!we,icon:(0,C.jsx)(x.P99,{}),tooltip:we?"Preview this File":(0,r.MK)([r.Ft.S3_GET_OBJECT,r.Ft.S3_GET_ACTIONS],"preview this object")},{action:()=>{N(!0)},label:"Legal Hold",disabled:!u||!j||!!L.is_delete_marker||!ve||""!==g,icon:(0,C.jsx)(x.fNL,{}),tooltip:ve?u?"Change Legal Hold rules for this File":"Object Locking must be enabled on this bucket in order to set Legal Hold":(0,r.MK)([r.Ft.S3_PUT_OBJECT_LEGAL_HOLD,r.Ft.S3_PUT_ACTIONS],"change legal hold settings for this object")},{action:()=>{y(!0)},label:"Retention",disabled:!j||!!L.is_delete_marker||!_e||""!==g||!u,icon:(0,C.jsx)(x.E9d,{}),tooltip:_e?u?"Change Retention rules for this File":"Object Locking must be enabled on this bucket in order to set Retention Rules":(0,r.MK)([r.Ft.S3_GET_OBJECT_RETENTION,r.Ft.S3_PUT_OBJECT_RETENTION,r.Ft.S3_GET_ACTIONS,r.Ft.S3_PUT_ACTIONS],"change Retention Rules for this object")},{action:()=>{O(!0)},label:"Tags",disabled:!!L.is_delete_marker||""!==g||!fe,icon:(0,C.jsx)(x.DgT,{}),tooltip:fe?"Change Tags for this File":(0,r.MK)([r.Ft.S3_PUT_OBJECT_TAGGING,r.Ft.S3_GET_OBJECT_TAGGING,r.Ft.S3_GET_ACTIONS,r.Ft.S3_PUT_ACTIONS],"set Tags on this object")},{action:()=>{B(!0)},label:"Inspect",disabled:!j||!!L.is_delete_marker||""!==g||!Se,icon:(0,C.jsx)(x.Gp8,{}),tooltip:Se?"Inspect this file":(0,r.MK)([r.Ft.ADMIN_INSPECT_DATA],"inspect this file")},{action:()=>{p((0,d.db)({status:!b,objectName:be}))},label:b?"Hide Object Versions":"Display Object Versions",icon:(0,C.jsx)(x.cRd,{}),disabled:!j||!(L.version_id&&"null"!==L.version_id)||!Te,tooltip:Te?L.version_id&&"null"!==L.version_id?"Display Versions for this file":"":(0,r.MK)([r.Ft.S3_GET_BUCKET_VERSIONING,r.Ft.S3_PUT_BUCKET_VERSIONING,r.Ft.S3_GET_OBJECT_VERSION,r.Ft.S3_GET_ACTIONS,r.Ft.S3_PUT_ACTIONS],"display all versions of this object")}];return(0,C.jsxs)(s.Fragment,{children:[f&&L&&(0,C.jsx)(V.default,{open:f,closeModalAndRefresh:()=>{U(null),S(!1)},bucketName:n,dataObject:R||L}),w&&L&&(0,C.jsx)(se,{open:w,closeModalAndRefresh:e=>{y(!1),e&&p((0,d.vH)(!0))},objectName:de,objectInfo:L,bucketName:n}),K&&(0,C.jsx)(ae,{deleteOpen:K,selectedBucket:n,selectedObject:t,closeDeleteModalAndRefresh:e=>{Y(!1),e&&""===g?m(!0):(p((0,d.Eq)(!0)),p((0,d.M3)("")),p((0,d.vH)(!0)))},versioningInfo:j?i:void 0,selectedVersion:g}),F&&L&&(0,C.jsx)(le,{open:F,closeModalAndRefresh:e=>{N(!1),e&&p((0,d.vH)(!0))},objectName:L.name||"",bucketName:n,actualInfo:L}),q&&L&&(0,C.jsx)(H.default,{open:q,bucketName:n,object:{name:L.name||"",version_id:L.version_id||"null",size:L.size||0,content_type:"",last_modified:L.last_modified||""},onClosePreview:()=>{$(!1)}}),E&&L&&(0,C.jsx)(ce,{modalOpen:E,bucketName:n,actualInfo:L,onCloseAndUpdate:e=>{O(!1),e&&p((0,d.vH)(!0))}}),k&&L&&(0,C.jsx)(ue,{inspectOpen:k,volumeName:n,inspectPath:L.name||"",closeInspectModalAndRefresh:e=>{B(!1),e&&p((0,d.vH)(!0))}}),ee&&L&&(0,C.jsx)(he,{open:ee,closeModal:()=>{te(!1)},currentItem:de,bucketName:n,internalPaths:t,actualInfo:L}),v?(0,C.jsx)(s.Fragment,{children:je}):(0,C.jsxs)(x.xuv,{sx:{"& .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},"& .capitalizeFirst":{textTransform:"capitalize"},"& .detailContainer":{padding:"0 22px",marginBottom:10,fontSize:14}},children:[(0,C.jsx)(x.Wk,{title:(0,C.jsxs)("div",{className:"ObjectDetailsTitle",children:[W(be||"",!0),(0,C.jsx)("span",{className:"objectNameContainer",children:be})]}),items:Ee}),(0,C.jsx)(M.Z,{tooltip:ye?"":(0,r.MK)([r.Ft.S3_DELETE_OBJECT],"delete this object"),children:(0,C.jsx)(x.rjZ,{item:!0,xs:12,sx:{justifyContent:"center",display:"flex"},children:(0,C.jsx)(_.s,{resource:[n,de,[n,L.name].join("/")],scopes:[r.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,C.jsx)(x.zxk,{id:"delete-element-click",icon:(0,C.jsx)(x.pJl,{}),iconLocation:"start",fullWidth:!0,variant:"secondary",onClick:()=>{Y(!0)},disabled:""===g&&L.is_delete_marker,sx:{width:"calc(100% - 44px)",margin:"8px 0"},label:"Delete".concat(""!==g?" version":"")})})})}),(0,C.jsx)(x.AG2,{icon:(0,C.jsx)(x.Gvh,{}),label:"Object Info"}),(0,C.jsxs)(x.xuv,{className:"detailContainer",children:[(0,C.jsx)("strong",{children:"Name:"}),(0,C.jsx)("br",{}),(0,C.jsx)("div",{style:{overflowWrap:"break-word"},children:be})]}),""!==g&&(0,C.jsxs)(x.xuv,{className:"detailContainer",children:[(0,C.jsx)("strong",{children:"Version ID:"}),(0,C.jsx)("br",{}),g]}),(0,C.jsxs)(x.xuv,{className:"detailContainer",children:[(0,C.jsx)("strong",{children:"Size:"}),(0,C.jsx)("br",{}),(0,c.ae)("".concat(L.size||"0"))]}),L.version_id&&"null"!==L.version_id&&""===g&&(0,C.jsxs)(x.xuv,{className:"detailContainer",children:[(0,C.jsx)("strong",{children:"Versions:"}),(0,C.jsx)("br",{}),G.length," version",1!==G.length?"s":"",","," ",(0,c.l5)(Q)]}),""===g&&(0,C.jsxs)(x.xuv,{className:"detailContainer",children:[(0,C.jsx)("strong",{children:"Last Modified:"}),(0,C.jsx)("br",{}),(e=>{const t=new Date,n=new Date(e),s=t.getTime()-n.getTime(),o=(0,c.nF)(s,"ms");return""!==o.trim()?"".concat(o," ago"):"Just now"})(L.last_modified||"")]}),(0,C.jsxs)(x.xuv,{className:"detailContainer",children:[(0,C.jsx)("strong",{children:"ETAG:"}),(0,C.jsx)("br",{}),L.etag||"N/A"]}),(0,C.jsxs)(x.xuv,{className:"detailContainer",children:[(0,C.jsx)("strong",{children:"Tags:"}),(0,C.jsx)("br",{}),0===pe.length?"N/A":pe.map(((e,t)=>(0,C.jsxs)("span",{children:[e,":",h()(L,"tags.".concat(e),""),t{let{versionToRestore:t,bucketName:n,objectPath:o,restoreOpen:i,onCloseAndUpdate:r}=e;const u=(0,l.TL)(),[h,p]=(0,s.useState)(!1);return(0,C.jsx)(oe.Z,{title:"Restore File Version",confirmText:"Restore",isOpen:i,isLoading:h,titleIcon:(0,C.jsx)(x.D7Y,{}),onConfirm:()=>{p(!0),a.h.buckets.putObjectRestore(n,{prefix:(0,c.LL)(o),version_id:t.version_id||""}).then((()=>{p(!1),r(!0),u((0,d.rI)({prefix:o,objectInfo:t}))})).catch((e=>{u((0,T.Ih)((0,m.g)(e.error))),p(!1)}))},confirmButtonProps:{variant:"secondary",disabled:h},onClose:()=>{r(!1)},confirmationContent:(0,C.jsxs)(x.xuv,{id:"alert-dialog-description",children:["Are you sure you want to restore ",(0,C.jsx)("br",{}),(0,C.jsx)("b",{children:o})," ",(0,C.jsx)("br",{})," with Version ID:",(0,C.jsx)("br",{}),(0,C.jsx)("b",{children:t.version_id}),"?"]})})},je=e=>{let{type:t}=e,n="#000",s="";switch(t){case"null":n="#07193E",s="NULL VERSION";break;case"deleted":n="#868686",s="DELETED";break;default:n="#174551",s="CURRENT VERSION"}return(0,C.jsx)("span",{style:{backgroundColor:n,padding:"0 5px",display:"inline-block",color:"#FFF",fontWeight:"bold",fontSize:12,borderRadius:2,whiteSpace:"nowrap",margin:"0 10px"},children:s})},be=v.ZP.div((e=>{let{theme:t}=e;return{"&:before":{content:"' '",display:"block",position:"absolute",width:"2px",height:"calc(100% + 2px)",backgroundColor:h()(t,"borderColor","#F8F8F8"),left:"24px"},"& .mainFileVersionItem":{borderBottom:"".concat(h()(t,"borderColor","#F8F8F8")," 1px solid"),padding:"1rem 0",margin:"0 0.5rem 0 2.5rem",cursor:"pointer","&.deleted":{color:"#868686"}},"& .intermediateLayer":{margin:"0 1.5rem 0 1.5rem","&:hover, &.selected":{backgroundColor:h()(t,"boxBackground","#F8F8F8"),"& > div":{borderBottomColor:h()(t,"boxBackground","#F8F8F8")}}},"& .versionContainer":{fontSize:16,fontWeight:"bold",display:"flex",alignItems:"center","& svg.min-icon":{width:18,height:18,minWidth:18,minHeight:18,marginRight:10}},"& .buttonContainer":{textAlign:"right","& button":{marginLeft:"1.5rem"}},"& .versionID":{fontSize:"12px",margin:"2px 0",whiteSpace:"nowrap",textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden"},"& .versionData":{marginRight:"10px",fontSize:12,color:"#868686"},"@media (max-width: 600px)":{"& .buttonContainer":{"& button":{marginLeft:"5px"}}},"@media (max-width: 799px)":{"&:before":{display:"none"},"& .mainFileVersionItem":{padding:"5px 0px",margin:0},"& .intermediateLayer":{margin:0,"&:hover, &.selected":{backgroundColor:"transparent","& > div":{borderBottomColor:h()(t,"boxBackground","#F8F8F8")}}},"& .versionContainer":{fontSize:14,"& svg.min-icon":{display:"none"}},"& .versionData":{textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden",whiteSpace:"nowrap"},"& .collapsableInfo":{display:"flex",flexDirection:"column"},"& .versionItem":{display:"none"}}}})),ge=e=>{let{fileName:t,versionInfo:n,isSelected:s,checkable:o,isChecked:i,onCheck:a,onShare:l,onDownload:r,onRestore:d,onPreview:u,globalClick:h,index:m,key:p,style:b}=e;const g=n.is_delete_marker,v=[{icon:(0,C.jsx)(x.P99,{}),action:u,tooltip:"Preview"},{icon:(0,C.jsx)(x._8t,{}),action:r,tooltip:"Download this version"},{icon:(0,C.jsx)(x.aAc,{}),action:l,tooltip:"Share this version"},{icon:(0,C.jsx)(x.D7Y,{}),action:d,tooltip:"Restore this version"}];let f=null;n.is_delete_marker?f="deleted":n.is_latest?f="current":"null"===n.version_id&&(f="null");let _=j.ou.now();return n.last_modified&&(_=j.ou.fromISO(n.last_modified)),(0,C.jsx)(be,{children:(0,C.jsx)(x.rjZ,{container:!0,className:"ctrItem",onClick:()=>{h(n)},style:b,children:(0,C.jsx)(x.rjZ,{item:!0,xs:12,className:"intermediateLayer".concat(" ",s?"selected":""),children:(0,C.jsxs)(x.rjZ,{item:!0,xs:!0,className:"mainFileVersionItem ".concat(n.is_delete_marker?"deleted":""),children:[(0,C.jsx)(x.rjZ,{item:!0,xs:12,children:(0,C.jsxs)(x.rjZ,{container:!0,children:[(0,C.jsxs)(x.rjZ,{item:!0,xs:!0,md:4,className:"versionContainer",children:[o&&(0,C.jsx)(x.XZJ,{checked:i,id:"select-".concat(n.version_id),name:"select-".concat(n.version_id),onChange:e=>{e.stopPropagation(),a(n.version_id||"")},value:n.version_id||"",disabled:n.is_delete_marker,sx:{width:"initial"}}),W(t,!0)," v",m.toString(),(0,C.jsx)("span",{className:"versionItem",children:f&&(0,C.jsx)(je,{type:f})})]}),(0,C.jsx)(x.rjZ,{item:!0,xs:10,md:8,className:"buttonContainer",children:v.map(((e,t)=>(0,C.jsx)(x.ua7,{tooltip:e.tooltip,children:(0,C.jsx)(x.hU,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(t.toString()),className:"spacing".concat(" ",g?"buttonDisabled":""),disabled:g,onClick:t=>{t.stopPropagation(),g?t.preventDefault():e.action(n)},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,C.jsx)(x.rjZ,{item:!0,xs:12,className:"versionID",children:"null"!==n.version_id?n.version_id:"-"}),(0,C.jsxs)(x.rjZ,{item:!0,xs:12,className:"collapsableInfo",children:[(0,C.jsxs)("span",{className:"versionData",children:[(0,C.jsx)("strong",{children:"Last modified:"})," ",_.toFormat("ccc, LLL dd yyyy HH:mm:ss (ZZZZ)")]}),(0,C.jsxs)("span",{className:"versionData",children:[(0,C.jsx)("strong",{children:"Size:"})," ",(0,c.ae)("".concat(n.size||"0"))]})]})]})})},p)})},ve=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedBucket:i,selectedObject:d}=e;const u=(0,l.TL)(),[h,p]=(0,s.useState)(!1),[j,b]=(0,s.useState)(""),[g,v]=(0,s.useState)(!1),f=(0,o.v9)((e=>e.objectBrowser.retentionConfig)),S=(0,_.F)([i],[r.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===f||void 0===f?void 0:f.mode);if((0,s.useEffect)((()=>{h&&a.h.buckets.deleteObject(i,{prefix:d,non_current_versions:!0,bypass:g}).then((()=>{t(!0)})).catch((e=>{u((0,T.Ih)((0,m.g)(e.error))),p(!1)}))}),[h,t,u,d,i,g]),!d)return null;return(0,C.jsx)(oe.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:n,titleIcon:(0,C.jsx)(x.NvT,{}),isLoading:h,onConfirm:()=>{p(!0)},onClose:()=>t(!1),confirmButtonProps:{disabled:"YES, PROCEED"!==j||h},confirmationContent:(0,C.jsxs)(s.Fragment,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,C.jsx)("b",{children:(0,c.IO)(d)}),"? ",(0,C.jsx)("br",{}),S&&(0,C.jsx)(s.Fragment,{children:(0,C.jsx)("div",{style:{marginTop:10},children:(0,C.jsx)(x.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:g,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:e=>{v(!g)},description:""})})}),(0,C.jsx)("br",{}),"To continue please type ",(0,C.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,C.jsx)("br",{}),(0,C.jsx)("br",{}),(0,C.jsx)(x.rjZ,{item:!0,xs:12,children:(0,C.jsx)(x.Wzg,{id:"type-confirm",name:"retype-tenant",onChange:e=>{b(e.target.value)},label:"",value:j})})]})})},fe=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedBucket:i,selectedVersions:c,selectedObject:d}=e;const u=(0,l.TL)(),[h,p]=(0,s.useState)(!1),[j,b]=(0,s.useState)(!1),g=(0,o.v9)((e=>e.objectBrowser.retentionConfig)),v=(0,_.F)([i],[r.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===g||void 0===g?void 0:g.mode);return(0,s.useEffect)((()=>{if(h){const e=c.map((e=>({path:d,versionID:e,recursive:!1})));e.length>0&&a.h.buckets.deleteMultipleObjects(i,e,{all_versions:!1,bypass:j}).then((()=>{p(!1),t(!0)})).catch((e=>{u((0,T.Ih)((0,m.g)(e.error))),p(!1)}))}}),[h,t,i,d,c,j,u]),c?(0,C.jsx)(oe.Z,{title:"Delete Selected Versions",confirmText:"Delete",isOpen:n,titleIcon:(0,C.jsx)(x.NvT,{}),isLoading:h,onConfirm:()=>{p(!0)},onClose:()=>t(!1),confirmationContent:(0,C.jsxs)(s.Fragment,{children:["Are you sure you want to delete the selected ",c.length," ","versions for ",(0,C.jsx)("strong",{children:d}),"?",v&&(0,C.jsx)(s.Fragment,{children:(0,C.jsx)("div",{style:{marginTop:10},children:(0,C.jsx)(x.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:j,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:e=>{b(!j)},description:""})})})]})}):null};var _e=n(30761);const Se={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:0,tags:{},version_id:void 0},Te=e=>{let{internalPaths:t,bucketName:n}=e;const i=(0,l.TL)(),r=(0,o.v9)((e=>e.objectBrowser.searchVersions)),u=(0,o.v9)((e=>e.objectBrowser.loadingVersions)),p=(0,o.v9)((e=>e.objectBrowser.selectedVersion)),j=(0,o.v9)(T.N5),[b,g]=(0,s.useState)(!1),[v,f]=(0,s.useState)(null),[_,S]=(0,s.useState)(null),[w,y]=(0,s.useState)([]),[E,O]=(0,s.useState)(!1),[I,N]=(0,s.useState)(null),[k,B]=(0,s.useState)("date"),[L,A]=(0,s.useState)(!1),[D,P]=(0,s.useState)(!1),[R,U]=(0,s.useState)(!1),[G,Z]=(0,s.useState)([]),[K,W]=(0,s.useState)(!1);let J=[];v&&v.name&&(J=v.name.split("/")),(0,s.useEffect)((()=>{u||v||i((0,d.Eq)(!0))}),[u,v,i]),(0,s.useEffect)((()=>{u&&""!==t&&a.h.buckets.listObjects(n,{prefix:t,with_versions:j}).then((e=>{const n=h()(e.data,"objects",[]),s=(0,c.IO)(t),o=n.filter((e=>e.name===s));j?(f(o.find((e=>e.is_latest))||Se),y(o)):(f(o[0]),y([])),i((0,d.Eq)(!1))})).catch((e=>{i((0,T.Ih)((0,m.g)(e.error))),i((0,d.Eq)(!1))}))}),[u,n,t,i,j]);const Y=e=>{S(e),g(!0)},q=e=>{S(e),A(!0)},$=e=>{N(e),O(!0)},Q=e=>{z(i,n,t,e)},X=e=>{i((0,d.M3)(e.version_id||""))},ee=w.filter((e=>!!e.version_id&&e.version_id.includes(r))),te=w.reduce(((e,t)=>t.size?e+t.size:e),0);ee.sort(((e,t)=>{if("size"===k)return e.size&&t.size?e.sizet.size?1:0:0;{const n=new Date(e.last_modified||"").getTime(),s=new Date(t.last_modified||"").getTime();return ns?-1:0}}));const ne=e=>{if(G.includes(e)){const t=G.filter((t=>t!==e));return void Z(t)}const t=[...G];t.push(e),Z(t)};return(0,C.jsxs)(s.Fragment,{children:[b&&v&&(0,C.jsx)(V.default,{open:b,closeModalAndRefresh:()=>{S(null),g(!1),A(!1)},bucketName:n,dataObject:_||v}),E&&v&&I&&(0,C.jsx)(pe,{restoreOpen:E,bucketName:n,versionToRestore:I,objectPath:v.name||"",onCloseAndUpdate:e=>{O(!1),N(null),e&&(i((0,d.Eq)(!0)),i((0,d.vH)(!0)))}}),L&&v&&(0,C.jsx)(H.default,{open:L,bucketName:n,object:{name:v.name||"",version_id:_&&_.version_id?_.version_id:"null",size:_&&_.size?_.size:0,content_type:"",last_modified:v.last_modified||""},onClosePreview:()=>{A(!1)}}),D&&(0,C.jsx)(ve,{deleteOpen:D,closeDeleteModalAndRefresh:e=>{P(!1),e&&(i((0,d.Eq)(!0)),i((0,d.M3)("")),i((0,d.vH)(!0)))},selectedBucket:n,selectedObject:t}),K&&(0,C.jsx)(fe,{selectedBucket:n,selectedObject:(0,c.IO)(t),deleteOpen:K,selectedVersions:G,closeDeleteModalAndRefresh:e=>{W(!1),e&&(i((0,d.Eq)(!0)),i((0,d.M3)("")),i((0,d.vH)(!0)),Z([]))}}),(0,C.jsxs)(x.rjZ,{container:!0,sx:{width:"100%",padding:10,"@media (max-width: 799px)":{minHeight:800}},children:[!v&&(0,C.jsx)(x.rjZ,{item:!0,xs:12,children:(0,C.jsx)(x.kod,{})}),v&&(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)(x.rjZ,{item:!0,xs:12,children:(0,C.jsx)(F,{bucketName:n,internalPaths:(0,c.IO)(t),hidePathButton:!0})}),(0,C.jsx)(x.rjZ,{item:!0,xs:12,sx:{position:"relative","& .detailsSpacer":{marginRight:18,"@media (max-width: 600px)":{marginRight:0}},["@media (max-width: ".concat(x.Egj.md,"px)")]:{"&::before":{display:"none"}}},children:(0,C.jsx)(x.UHn,{icon:(0,C.jsx)("span",{style:{display:"block",marginTop:"-10px"},children:(0,C.jsx)(x.cRd,{style:{width:20,height:20}})}),title:"".concat(J.length>0?J[J.length-1]:v.name," Versions"),subTitle:(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)("span",{className:"detailsSpacer",children:(0,C.jsxs)("strong",{children:[w.length," Version",1===w.length?"":"s","\xa0\xa0\xa0"]})}),(0,C.jsx)("span",{className:"detailsSpacer",children:(0,C.jsx)("strong",{children:(0,c.l5)(te)})})]}),actions:(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)(M.Z,{tooltip:"Select Multiple Versions",children:(0,C.jsx)(x.zxk,{id:"select-multiple-versions",onClick:()=>{U(!R)},icon:(0,C.jsx)(x.amE,{}),variant:R?"callAction":"regular",style:{marginRight:8}})}),R&&(0,C.jsx)(M.Z,{tooltip:"Delete Selected Versions",children:(0,C.jsx)(x.zxk,{id:"delete-multiple-versions",onClick:()=>{W(!0)},icon:(0,C.jsx)(x.pJl,{}),variant:"secondary",style:{marginRight:8},disabled:0===G.length})}),(0,C.jsx)(M.Z,{tooltip:"Delete Non Current Versions",children:(0,C.jsx)(x.zxk,{id:"delete-non-current",onClick:()=>{P(!0)},icon:(0,C.jsx)(x.utM,{}),variant:"secondary",style:{marginRight:15},disabled:w.length<=1})}),(0,C.jsx)(x.PhF,{id:"sort-by",options:[{label:"Date",value:"date"},{label:"Size",value:"size"}],value:k,label:"Sort by",onChange:e=>{B(e)},noLabelMinWidth:!0})]}),bottomBorder:!1})}),(0,C.jsx)(x.rjZ,{item:!0,xs:12,sx:{flexGrow:1,height:"calc(100% - 120px)",overflow:"auto",["@media (max-width: ".concat(x.Egj.md,"px)")]:{height:600}},children:v.version_id&&"null"!==v.version_id&&(0,C.jsx)(_e.aV,{style:{width:"100%"},containerStyle:{width:"100%",maxWidth:"100%"},width:1,height:800,rowCount:ee.length,rowHeight:108,rowRenderer:e=>{let{key:t,index:n,isScrolling:s,isVisible:o,style:i}=e;const a=w.length-n;return(0,C.jsx)(ge,{style:i,fileName:(null===v||void 0===v?void 0:v.name)||"",versionInfo:ee[n],index:a,onDownload:Q,onRestore:$,onShare:Y,onPreview:q,globalClick:X,isSelected:p===ee[n].version_id,checkable:R,onCheck:ne,isChecked:G.includes(ee[n].version_id||"")},t)}})})]})]})]})},we=e=>{if(e.name.endsWith("/"))return"";const t=j.ou.now(),n=j.ou.fromISO(e.last_modified);return t.hasSame(n,"day")&&t.hasSame(n,"month")&&t.hasSame(n,"year")?"Today, ".concat(n.toFormat("HH:mm")):n.toFormat("ccc, LLL dd yyyy HH:mm (ZZZZ)")},ye=e=>e.name.endsWith("/")||!e.size?"-":(0,c.ae)(String(e.size)),Ce=[{label:"Name",elementKey:"name",renderFunction:W,enableSort:!0},{label:"Last Modified",elementKey:"last_modified",renderFunction:we,renderFullObject:!0,enableSort:!0},{label:"Size",elementKey:"size",renderFunction:ye,renderFullObject:!0,width:100,enableSort:!0}],Ee=[{label:"Name",elementKey:"name",renderFunction:W,enableSort:!0},{label:"Object Date",elementKey:"last_modified",renderFunction:we,renderFullObject:!0,enableSort:!0},{label:"Size",elementKey:"size",renderFunction:ye,renderFullObject:!0,width:100,enableSort:!0},{label:"Deleted",elementKey:"delete_flag",renderFunction:e=>e?"Yes":"No",width:60}];var Oe=n(46078);const Fe=()=>{const e=(0,l.TL)(),t=(0,i.UO)(),n=(0,i.s0)(),[a,u]=(0,s.useState)("ASC"),[m,p]=(0,s.useState)("name"),j=t.bucketName||"",b=(0,o.v9)((e=>e.objectBrowser.objectDetailsOpen)),g=(0,o.v9)((e=>e.objectBrowser.requestInProgress)),v=(0,o.v9)(Oe.$4),f=!(null===v||void 0===v||!v.includes("object-browser-only")),S=(0,o.v9)((e=>e.objectBrowser.rewind.rewindEnabled)),T=(0,o.v9)((e=>e.objectBrowser.records)),w=(0,o.v9)((e=>e.objectBrowser.searchObjects)),y=(0,o.v9)((e=>e.objectBrowser.selectedObjects)),E=(0,o.v9)((e=>e.objectBrowser.connectionError)),O=(0,o.v9)((e=>e.system.anonymousMode)),F=(0,_.F)(j,[r.Ft.S3_LIST_BUCKET,r.Ft.S3_ALL_LIST_BUCKET]),N=T.filter((e=>{if(""===w)return!0;return e.name.toLowerCase().indexOf(w.toLowerCase())>=0})).sort((0,I.P_)(m));let k=[];k="ASC"===a?N:N.reverse();const B=[{type:"view",tooltip:"View",onClick:t=>{var s;const o=t.name||"",i="/browser/".concat(j).concat(o?"/".concat((0,c.LL)(o)):"");!O||null!==(s=t.name)&&void 0!==s&&s.endsWith("/")?(e((0,d.S2)([])),n(i),O||(e((0,d.vb)(!0)),e((0,d.Eq)(!0))),e((0,d.EE)("".concat(o?"".concat((0,c.LL)(o)):"")))):z(e,j,"".concat((0,c.LL)(o)),t)},sendOnlyId:!1}];let L=F||O?"This location is empty".concat(S?"":", please try uploading a new file"):(0,r.MK)([r.Ft.S3_LIST_BUCKET,r.Ft.S3_ALL_LIST_BUCKET],"view Objects in this bucket");E&&(L="Objects List unavailable. Please review your WebSockets configuration and try again");let A="calc(100vh - 290px)";return f&&(A="calc(100vh - 315px)"),(0,C.jsx)(x.wQF,{itemActions:B,columns:S?Ee:Ce,isLoading:g,entityName:"Objects",idField:"name",records:k,customPaperHeight:A,selectedItems:y,onSelect:O?void 0:t=>{const n=t.target,s=n.value,o=n.checked;let i=[...y];return o?i.push(s):i=i.filter((e=>e!==s)),e((0,d.S2)(i)),e((0,d.EE)(null)),i},customEmptyMessage:L,sortConfig:{currentSort:m,currentDirection:a,triggerSort:t=>{const n=h()(t,"sortDirection","DESC");p(t.sortBy),u(n),e((0,d.$3)(!0))}},onSelectAll:()=>{if(e((0,d.EE)(null)),y.length===k.length)return void e((0,d.S2)([]));const t=k.map((e=>e.name));e((0,d.S2)(t))},rowStyle:e=>{var t;let{index:n}=e;return null!==(t=k[n])&&void 0!==t&&t.delete_flag?"deleted":""},sx:{minHeight:b?"100%":"initial"},noBackground:!0})};var Ie=n(59114);const Ne=()=>{const e=(0,l.TL)(),t=(0,o.v9)((e=>e.objectBrowser.searchObjects));return(0,C.jsx)(Ie.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:t=>{e((0,d.G4)(t))},value:t})};var ke=n(94619);const Be=(0,S.Z)(s.lazy((()=>n.e(711).then(n.bind(n,50711))))),Le=(0,S.Z)(s.lazy((()=>Promise.resolve().then(n.bind(n,34433))))),Ae=(0,S.Z)(s.lazy((()=>n.e(6901).then(n.bind(n,26901))))),De=(0,S.Z)(s.lazy((()=>Promise.resolve().then(n.bind(n,78562))))),Pe={borderWidth:2,borderRadius:2,borderColor:"transparent",outline:"none"},Re={borderStyle:"dashed",backgroundColor:"transparent",borderColor:"#2196f3"},Me={borderStyle:"dashed",backgroundColor:"transparent",borderColor:"#00e676"},Ue=()=>{var e;const t=(0,l.TL)(),n=(0,i.UO)(),u=(0,i.s0)(),b=(0,i.TH)(),g=(0,o.v9)((e=>e.objectBrowser.rewind.rewindEnabled)),v=(0,o.v9)((e=>e.objectBrowser.rewind.bucketToRewind)),f=(0,o.v9)((e=>e.objectBrowser.versionsMode)),S=(0,o.v9)((e=>e.objectBrowser.showDeleted)),E=(0,o.v9)((e=>e.objectBrowser.objectDetailsOpen)),O=(0,o.v9)((e=>e.objectBrowser.selectedInternalPaths)),L=(0,o.v9)((e=>e.objectBrowser.requestInProgress)),z=(0,o.v9)((e=>e.objectBrowser.simplePath)),Z=(0,o.v9)((e=>e.objectBrowser.versionInfo)),K=(0,o.v9)((e=>e.objectBrowser.lockingEnabled)),W=(0,o.v9)((e=>e.objectBrowser.downloadRenameModal)),H=(0,o.v9)((e=>e.objectBrowser.selectedPreview)),J=(0,o.v9)((e=>e.objectBrowser.shareFileModalOpen)),V=(0,o.v9)((e=>e.objectBrowser.previewOpen)),Y=(0,o.v9)((e=>e.objectBrowser.selectedBucket)),q=(0,o.v9)((e=>e.system.anonymousMode)),$=(0,o.v9)((e=>e.objectBrowser.anonymousAccessOpen)),Q=(0,o.v9)((e=>{var t;return(null===(t=e.objectBrowser)||void 0===t?void 0:t.records)||[]})),X=(0,o.v9)(B.HQ),ee=(0,o.v9)(B.G6),[te,ne]=(0,s.useState)(!1),[se,oe]=(0,s.useState)(!1),[ie,ae]=(0,s.useState)(!1),[le,re]=(0,s.useState)(!1),[ce,de]=(0,s.useState)(!1),[ue,xe]=(0,s.useState)(null),[pe,je]=(0,s.useState)(null),[be,ge]=(0,s.useState)(!1),ve=N(Z.status),fe=n.bucketName||"",_e=b.pathname.split("/browser/".concat(fe,"/")),Se=2===_e.length?_e[1]:"",we=(0,c.IO)(Se),ye=we.split("/").filter((e=>""!==e));let Ce=[fe];ye.length>0&&(Ce=Ce.concat(ye));const Ee=(0,s.useRef)(null),Oe=(0,s.useRef)(null),Ie=(0,o.v9)((e=>e.console.session&&e.console.session.permissions||{})),Ue=[r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],Ge=Ce.join("/"),ze=function(e,t){const n=y(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]).reduce(((e,t)=>{const n=w(t);return n&&e.push(".".concat(n)),e}),[]);return[...new Set(n)].join(",")}(Ie,Ge,Ue),Ze=y(Ie,Ge,Ue),Ke=(0,_.F)([Ge,...Ze],[r.Ft.S3_GET_OBJECT,r.Ft.S3_GET_ACTIONS]),We=(0,_.F)([Ge,...Ze],[r.Ft.S3_DELETE_OBJECT]),He=(0,_.F)([Ge,...Ze],Ue)||q,Je=(0,_.F)(fe,[r.Ft.S3_GET_BUCKET_POLICY,r.Ft.S3_PUT_BUCKET_POLICY,r.Ft.S3_GET_ACTIONS,r.Ft.S3_PUT_ACTIONS]),Ve=(0,o.v9)((e=>e.objectBrowser.selectedObjects)),Ye=(()=>{let e=!1;if(1===Ve.length){e=!!Q.find((e=>e.name==="".concat(Ve[0])&&e.delete_flag))}return e})(),qe=(0,s.useCallback)((()=>{const e=Ve[0];if(!be){const t=(0,c.LL)(e);a.h.buckets.getObjectMetadata(fe,{prefix:t}).then((e=>{let t=h()(e.data,"objectMetadata",{});ge(!0),je(t)})).catch((e=>{console.error("Error Getting Metadata Status: ",e,null===e||void 0===e?void 0:e.detailedError),ge(!0)}))}}),[fe,Ve,be]);(0,s.useEffect)((()=>{fe&&!Ye&&qe()}),[fe,Ve,qe,Ye]),(0,s.useEffect)((()=>{g&&v!==fe&&t((0,d._w)())}),[g,v,fe,t]),(0,s.useEffect)((()=>{null!==Oe.current&&(Oe.current.setAttribute("directory",""),Oe.current.setAttribute("webkitdirectory",""))}),[Oe]),(0,s.useEffect)((()=>{if(1===Ve.length){const e=Ve[0],t=e.endsWith("/");let n=(0,I.s7)(pe,e);de(!("none"===n||!Ke)),re(!(!Ke||t))}else re(!1),de(!1)}),[Ve,Ke,pe]),(0,s.useEffect)((()=>{ue||q||a.h.buckets.getBucketQuota(fe).then((e=>{let t=null;e.data.quota&&(t=e.data),xe(t)})).catch((e=>{console.error("Error Getting Quota Status: ",e.error.detailedMessage),xe(null)}))}),[ue,fe,q]),(0,s.useEffect)((()=>{Ve.length>0?t((0,d.vb)(!0)):0!==Ve.length||null!==O||L||t((0,d.vb)(!1))}),[Ve,O,t,L]),(0,s.useEffect)((()=>{ie||(t((0,B.d5)(!0)),ae(!0))}),[ie,t,ae]),(0,s.useEffect)((()=>{!L&&!X||q||a.h.buckets.bucketInfo(fe).then((e=>{t((0,B.d5)(!1)),t((0,B.f4)(e.data))})).catch((e=>{t((0,B.d5)(!1)),t((0,T.Ih)((0,m.g)(e)))}))}),[fe,X,t,q,L]),(0,s.useEffect)((()=>{""!==Y&&a.h.buckets.getBucketRetentionConfig(Y).then((e=>{t((0,d.c8)(e.data))})).catch((()=>{t((0,d.c8)(null))}))}),[Y,t]);const $e=e=>{if(null!==e&&void 0!==e&&null!==e.target.files&&void 0!==e.target.files){e.preventDefault();var t=[];for(let n=0;n{let s="";z&&(s=z.endsWith("/")?z:z+"/");((e,n,s,o)=>{let i=i=>new Promise(((a,l)=>{let r="api/v1/buckets/".concat(n,"/objects/upload");const u=i.name,x=new Blob([i],{type:i.type});let m="";const p=h()(i,"path",""),j=h()(i,"webkitRelativePath","");let b=o;const g=(0,k.YO)(8);""!==p?b=p:""!==j&&(b=j);let v="";if(""!==s||""!==b){const e=b.split("/").slice(0,-1).join("/"),t=s.endsWith("/")?s.slice(0,-1):s;v="".concat(t).concat(t.endsWith("/")||""===e||e.startsWith("/")?"":"/").concat(e).concat(!e.endsWith("/")||""===e.trim()&&!s.endsWith("/")?"/":"")}r=""!==v?"".concat(r,"?prefix=").concat((0,c.LL)(v+u)):"".concat(r,"?prefix=").concat((0,c.LL)(u)),m=(0,c.LL)(v);const f=(0,c.LL)("".concat(n,"-").concat(m,"-").concat((new Date).getTime(),"-").concat(Math.random()));let _=new XMLHttpRequest;_.open("POST",r,!0),q&&_.setRequestHeader("X-Anonymous","1");const S=e.length>1;let T="An error occurred while uploading the file".concat(S?"s":"",".");const w={413:"Error - File size too large"};_.withCredentials=!1,_.onload=function(){if(_.status>=200&&_.status<300)t((0,d.oK)(f)),a({status:_.status}),(0,k.GM)(g);else{if(w[_.status])T=w[_.status];else if(_.response)try{const e=JSON.parse(_.response);T=e.detailedMessage}catch(e){T="something went wrong"}t((0,d.qJ)({instanceID:f,msg:T})),l({status:_.status,message:T}),(0,k.GM)(g)}},_.upload.addEventListener("error",(()=>{l(T),t((0,d.qJ)({instanceID:f,msg:"A network error occurred."}))})),_.upload.addEventListener("progress",(e=>{const n=Math.floor(100*e.loaded/e.total);t((0,d.RO)({instanceID:f,progress:n}))})),_.onerror=()=>{l(T),t((0,d.qJ)({instanceID:f,msg:"A network error occurred."}))},_.onloadend=()=>{0===e.length&&t((0,d.$3)(!0))},_.onabort=()=>{t((0,d.Im)(f))};const y=new FormData;void 0!==i.size&&(y.append(i.size.toString(),x,u),(0,k.EN)(g,_),t((0,d.Mc)({ID:g,bucketName:n,done:!1,instanceID:f,percentage:0,prefix:"".concat((0,c.IO)(m)).concat(u),type:"upload",waitingForFile:!1,failed:!1,cancelled:!1,errorMessage:""})),(0,k.N5)(g,y))}));const a=[];t((0,d.LD)());for(let t=0;t{const n=e.filter((e=>"rejected"===e.status));if(n.length>0){const e=a.length,s=a.length-n.length,o={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(s,"/").concat(e)};t((0,T.Ih)(o))}t((0,d.$3)(!0))}))})(e,fe,s,n)}),[fe,t,z,q]),Xe=(0,s.useCallback)((e=>{if(e&&e.length>0&&He){let n=e[0].path,s=e;ze.length>0&&(s=e.filter((e=>{const t=w(e.name);return ze.includes(t)}))),s.length?(Qe(s,n),console.log("".concat(s.length," Allowed Files Processed out of ").concat(e.length,"."),Ge,...Ze),s.length!==e.length&&t((0,T.Ih)({errorMessage:"Upload is restricted.",detailedError:(0,r.MK)([r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],"upload objects to this location")}))):(t((0,T.Ih)({errorMessage:"Could not process drag and drop.",detailedError:(0,r.MK)([r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],"upload objects to this location")})),console.error("Could not process drag and drop . upload may be restricted.",Ge,...Ze))}He||t((0,T.Ih)({errorMessage:"Upload not allowed",detailedError:(0,r.MK)([r.Ft.S3_PUT_OBJECT,r.Ft.S3_PUT_ACTIONS],"upload objects to this location")}))}),[Qe]),{getRootProps:et,getInputProps:tt,isDragActive:nt,isDragAccept:st}=(0,p.uI)({noClick:!0,onDrop:Xe}),ot=(0,s.useMemo)((()=>({...Pe,...nt?Re:{},...st?Me:{}})),[nt,st]),it=e=>{if(t((0,d.EE)(null)),t((0,d.db)({status:!1})),E&&null!==O){const e=(0,c.IO)(Se).split("/");e.pop();let t="";e&&e.length>0&&(t="".concat(e.join("/"),"/")),u("/browser/".concat(fe,"/").concat((0,c.LL)(t)))}t((0,d.vb)(!1)),e&&t((0,d.$3)(!0))};let at=j.ou.now();null!==ee&&void 0!==ee&&ee.creation_date&&(at=j.ou.fromISO(ee.creation_date));const lt=(null===Ve||void 0===Ve?void 0:Ve.length)<=1?"Download Selected":" Download selected objects as Zip. Any Deleted objects in the selection would be skipped from download.",rt=[{action:()=>{t(A(fe))},label:"Download",disabled:!Ke||Ye,icon:(0,C.jsx)(x._8t,{}),tooltip:Ke?lt:(0,r.MK)([r.Ft.S3_GET_OBJECT,r.Ft.S3_GET_ACTIONS],"download objects from this bucket")},{action:()=>{t(P())},label:"Share",disabled:1!==Ve.length||!le||Ye,icon:(0,C.jsx)(x.aAc,{}),tooltip:le?"Share Selected File":"Sharing unavailable"},{action:()=>{t(D())},label:"Preview",disabled:1!==Ve.length||!ce||Ye,icon:(0,C.jsx)(x.P99,{}),tooltip:ce?"Preview Selected File":"Preview unavailable"},{action:()=>{t(R())},label:"Anonymous Access",disabled:1!==Ve.length||!Ve[0].endsWith("/")||!Je,icon:(0,C.jsx)(x.cuP,{}),tooltip:1===Ve.length&&Ve[0].endsWith("/")?"Set Anonymous Access to this Folder":"Anonymous Access unavailable"},{action:()=>{ne(!0)},label:"Delete",icon:(0,C.jsx)(x.pJl,{}),disabled:!We||0===Ve.length,tooltip:We?"Delete Selected Files":(0,r.MK)([r.Ft.S3_DELETE_OBJECT],"delete objects in this bucket")}];return(0,C.jsxs)(s.Fragment,{children:[J&&H&&(0,C.jsx)(Le,{open:J,closeModalAndRefresh:()=>{t((0,d.Qf)(!1)),t((0,d.eP)(null))},bucketName:fe,dataObject:{name:H.name,last_modified:"",version_id:H.version_id}}),te&&(0,C.jsx)(Be,{deleteOpen:te,selectedBucket:fe,selectedObjects:Ve,closeDeleteModalAndRefresh:e=>{ne(!1),e&&(t((0,T.y1)("Objects deleted successfully.")),t((0,d.S2)([])),t((0,d.$3)(!0)))},versioning:Z}),se&&(0,C.jsx)(Ae,{open:se,closeModalAndRefresh:()=>{oe(!1)},bucketName:fe}),V&&(0,C.jsx)(De,{open:V,bucketName:fe,object:H,onClosePreview:()=>{t((0,d.ei)(!1)),t((0,d.eP)(null))}}),!!W&&(0,C.jsx)(he,{open:!!W,closeModal:()=>{t((0,d.$y)(null))},currentItem:(null===(e=W.name.split("/"))||void 0===e?void 0:e.pop())||"",bucketName:fe,internalPaths:Se,actualInfo:{name:W.name,last_modified:"",version_id:W.version_id,size:W.size}}),$&&(0,C.jsx)(ke.default,{onClose:()=>{t((0,d.xV)(!1))},bucket:fe,modalOpen:$,prefilledRoute:"".concat(Ve[0],"*")}),(0,C.jsxs)(x.Xgh,{variant:"full",children:[q&&(0,C.jsx)("div",{style:{paddingBottom:16},children:(0,C.jsx)(Ne,{})}),(0,C.jsx)(x.xuv,{withBorders:!0,sx:{padding:"0 5px"},children:(0,C.jsx)(x.UHn,{icon:(0,C.jsx)("span",{children:(0,C.jsx)(x.wNb,{style:{width:30}})}),title:fe,subTitle:q?null:(0,C.jsxs)(x.xuv,{sx:{"& .detailsSpacer":{marginRight:18,"@media (max-width: 600px)":{marginRight:0}}},children:[(0,C.jsxs)("span",{className:"detailsSpacer",children:["Created on:\xa0",(0,C.jsx)("strong",{children:null!==ee&&void 0!==ee&&ee.creation_date?at.toFormat("ccc, LLL dd yyyy HH:mm:ss (ZZZZ)"):""})]}),(0,C.jsxs)("span",{className:"detailsSpacer",children:["Access:\xa0\xa0",(0,C.jsx)("strong",{children:(null===ee||void 0===ee?void 0:ee.access)||""})]}),ee&&(0,C.jsx)(s.Fragment,{children:(0,C.jsxs)("span",{className:"detailsSpacer",children:[ee.size&&(0,C.jsx)(s.Fragment,{children:(0,c.l5)(ee.size)}),ee.size&&ue&&(0,C.jsxs)(s.Fragment,{children:[" ","/ ",(0,c.l5)(ue.quota||0)]}),ee.size&&ee.objects?" - ":"",ee.objects&&(0,C.jsxs)(s.Fragment,{children:[ee.objects,"\xa0Object",ee.objects&&1!==ee.objects?"s":""]})]})})]}),actions:(0,C.jsxs)(s.Fragment,{children:[!q&&(0,C.jsx)(M.Z,{tooltip:"Rewind Bucket",children:(0,C.jsx)(x.zxk,{id:"rewind-objects-list",label:"Rewind",icon:(0,C.jsx)(x.Cts,{color:"alert",dotOnly:!0,invisible:!g,children:(0,C.jsx)(x.F_y,{style:{minWidth:16,minHeight:16,width:16,height:16,marginTop:-3}})}),variant:"regular",onClick:()=>{oe(!0)},disabled:!ve||!(0,_.F)(fe,[r.Ft.S3_GET_OBJECT,r.Ft.S3_GET_ACTIONS])})}),(0,C.jsx)(M.Z,{tooltip:"Reload List",children:(0,C.jsx)(x.zxk,{id:"refresh-objects-list",label:"Refresh",icon:(0,C.jsx)(x.DuK,{}),variant:"regular",onClick:()=>{f?t((0,d.Eq)(!0)):(t((0,d.o_)()),t((0,d.$3)(!0)))},disabled:!q&&(!(0,_.F)(fe,[r.Ft.S3_LIST_BUCKET,r.Ft.S3_ALL_LIST_BUCKET])||g)})}),(0,C.jsx)("input",{type:"file",multiple:!0,accept:ze||void 0,onChange:$e,style:{display:"none"},ref:Ee}),(0,C.jsx)("input",{type:"file",multiple:!0,onChange:$e,style:{display:"none"},ref:Oe}),(0,C.jsx)(U,{bucketName:fe,uploadPath:Ge,uploadFileFunction:e=>{Ee&&Ee.current&&Ee.current.click(),e()},uploadFolderFunction:e=>{Oe&&Oe.current&&Oe.current.click(),e()}})]}),bottomBorder:!1})}),(0,C.jsxs)("div",{id:"object-list-wrapper",...et({style:{...ot}}),children:[(0,C.jsx)("input",{...tt()}),(0,C.jsxs)(x.xuv,{withBorders:!0,sx:{display:"flex",borderTop:0,padding:0,"& .hideListOnSmall":{"@media (max-width: 799px)":{display:"none"}}},children:[f?(0,C.jsx)(s.Fragment,{children:null!==O&&(0,C.jsx)(Te,{internalPaths:O,bucketName:fe})}):(0,C.jsx)(_.s,{scopes:[r.Ft.S3_LIST_BUCKET,r.Ft.S3_ALL_LIST_BUCKET],resource:fe,errorProps:{disabled:!0},children:(0,C.jsxs)(x.rjZ,{item:!0,xs:12,sx:{width:"100%",position:"relative","&.detailsOpen":{"@media (max-width: 799px)":{display:"none"}}},className:E?"detailsOpen":"",children:[!q&&(0,C.jsx)(x.rjZ,{item:!0,xs:12,sx:{padding:"12px 14px 5px"},children:(0,C.jsx)(F,{bucketName:fe,internalPaths:we,additionalOptions:!ve||g?null:(0,C.jsx)(x.XZJ,{name:"deleted_objects",id:"showDeletedObjects",value:"deleted_on",label:"Show deleted objects",onChange:()=>{t((0,d.o_)()),t((0,d.mz)(!S)),it(!0)},checked:S,sx:{marginLeft:5,"@media (max-width: 600px)":{marginLeft:0,flexDirection:"row"}}}),hidePathButton:!1})}),(0,C.jsx)(Fe,{})]})}),!q&&(0,C.jsx)(_.s,{scopes:[r.Ft.S3_LIST_BUCKET,r.Ft.S3_ALL_LIST_BUCKET],resource:fe,errorProps:{disabled:!0},children:(0,C.jsxs)(G,{open:E,closePanel:()=>{it(!1)},className:"".concat(f?"hideListOnSmall":""),children:[Ve.length>0&&(0,C.jsx)(x.Wk,{items:rt,title:"Selected Objects:"}),null!==O&&(0,C.jsx)(me,{internalPaths:O,bucketName:fe,onClosePanel:it,versioningInfo:Z,locking:K})]})})]})]})]})]})};var Ge=n(49535),ze=n(73996),Ze=n(79844),Ke=n(4677),We=n(99670);const He=e=>{let{bucketName:t}=e;const n=(0,l.TL)(),a=(0,o.v9)(Oe.$4),c=(0,o.v9)((e=>e.objectBrowser.versionsMode)),u=(0,o.v9)((e=>e.objectBrowser.versionedFile)),h=(0,o.v9)((e=>e.objectBrowser.searchVersions)),m=!(null===a||void 0===a||!a.includes("object-browser-only")),p=(0,i.s0)(),j=(0,Ge.Z)(t,[r.Ft.S3_GET_BUCKET_POLICY,r.Ft.S3_PUT_BUCKET_POLICY,r.Ft.S3_GET_BUCKET_VERSIONING,r.Ft.S3_PUT_BUCKET_VERSIONING,r.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,r.Ft.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION,r.Ft.S3_DELETE_BUCKET,r.Ft.S3_GET_BUCKET_NOTIFICATIONS,r.Ft.S3_PUT_BUCKET_NOTIFICATIONS,r.Ft.S3_GET_REPLICATION_CONFIGURATION,r.Ft.S3_PUT_REPLICATION_CONFIGURATION,r.Ft.S3_GET_LIFECYCLE_CONFIGURATION,r.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,r.Ft.ADMIN_GET_BUCKET_QUOTA,r.Ft.ADMIN_SET_BUCKET_QUOTA,r.Ft.S3_PUT_BUCKET_TAGGING,r.Ft.S3_GET_BUCKET_TAGGING,r.Ft.S3_LIST_BUCKET_VERSIONS,r.Ft.S3_GET_BUCKET_POLICY_STATUS,r.Ft.S3_DELETE_BUCKET_POLICY,r.Ft.S3_GET_ACTIONS,r.Ft.S3_PUT_ACTIONS]),b=(0,C.jsx)(s.Fragment,{children:c?(0,C.jsx)(s.Fragment,{children:(0,C.jsx)(Ie.Z,{placeholder:"Start typing to filter versions of ".concat(u),onChange:e=>{n((0,d.Pr)(e))},value:h})}):(0,C.jsx)(_.s,{scopes:[r.Ft.S3_LIST_BUCKET,r.Ft.S3_ALL_LIST_BUCKET],resource:t,errorProps:{disabled:!0},children:(0,C.jsx)(Ne,{})})});return(0,s.useEffect)((()=>{n((0,T.Sc)("object_browser"))}),[]),(0,C.jsx)(s.Fragment,{children:m?(0,C.jsxs)(x.rjZ,{container:!0,sx:{padding:"20px 32px 0"},children:[(0,C.jsx)(x.rjZ,{children:(0,C.jsx)(ze.Z,{marginRight:30,marginTop:10})}),(0,C.jsxs)(x.rjZ,{item:!0,xs:!0,sx:{display:"flex",gap:10},children:[b,(0,C.jsx)(Ke.Z,{})]})]}):(0,C.jsx)(Ze.Z,{label:(0,C.jsx)(x.hbI,{label:"Object Browser",onClick:()=>{p(r.gA.OBJECT_BROWSER_VIEW)}}),actions:(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)(_.s,{scopes:r.D[r.EI.BUCKET_ADMIN],resource:t,errorProps:{disabled:!0},children:(0,C.jsx)(M.Z,{tooltip:j?"Configure Bucket":"You do not have the required permissions to configure this bucket. Please contact your MinIO administrator to request "+r.EI.BUCKET_ADMIN+" permisions.",children:(0,C.jsx)(x.zxk,{id:"configure-bucket-main",color:"primary","aria-label":"Configure Bucket",onClick:()=>p("/buckets/".concat(t,"/admin")),icon:(0,C.jsx)(x.ewm,{style:{width:20,height:20,marginTop:-3}}),style:{padding:"0 10px"}})})}),(0,C.jsx)(We.Z,{})]}),middleComponent:b})})},Je=()=>{const e=(0,l.TL)(),t=(0,i.UO)(),n=(0,i.TH)(),u=(0,o.v9)((e=>e.objectBrowser.loadingVersioning)),h=(0,o.v9)((e=>e.objectBrowser.rewind.rewindEnabled)),x=(0,o.v9)((e=>e.objectBrowser.rewind.dateToRewind)),m=(0,o.v9)((e=>e.objectBrowser.showDeleted)),p=(0,o.v9)((e=>e.objectBrowser.requestInProgress)),j=(0,o.v9)((e=>e.objectBrowser.loadingLocking)),b=(0,o.v9)((e=>e.objectBrowser.reloadObjectsList)),g=(0,o.v9)((e=>e.objectBrowser.simplePath)),v=(0,o.v9)((e=>e.system.anonymousMode)),f=(0,o.v9)((e=>e.objectBrowser.selectedBucket)),_=(0,o.v9)((e=>e.objectBrowser.records)),S=t.bucketName||"",T=n.pathname.split("/browser/".concat(S,"/")),w=2===T.length?T[1]:"",y=(0,s.useCallback)((t=>{let n=(new Date).toISOString();null!==x&&h&&(n=x);e({type:"socket/OBRequest",payload:{bucketName:S,path:t,rewindMode:h||m,date:n}})}),[S,m,x,h,e]),E=(0,s.useCallback)((function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const n=(0,c.IO)(w);e((0,d.db)({status:!1}));let s=n;n.endsWith("/")||""===n||(s="".concat(n.split("/").slice(0,-1).join("/"),"/")),"/"===s&&(s=""),(s!==g||S!==f||t)&&(e((0,d.zD)(!0)),y(s))}),[w,e,g,f,S,y]);(0,s.useEffect)((()=>()=>{e({type:"socket/OBCancelLast"})}),[e]),(0,s.useEffect)((()=>{const t=(0,c.IO)(w);e((0,d.IJ)(!0)),t.endsWith("/")||""===t?(e((0,d.vb)(!1)),e((0,d.EE)(null)),e((0,d.Jn)(!0))):(e((0,d.vH)(!0)),e((0,d.vb)(!0)),e((0,d.Eq)(!0)),e((0,d.EE)("".concat(t?"".concat((0,c.LL)(t)):""))))}),[S,w,x,h,e]),(0,s.useEffect)((()=>{E(!1)}),[E]),(0,s.useEffect)((()=>{b&&0===_.length&&!p&&E(!0)}),[b,_,p,E]);const O=(0,Ge.Z)(S,[r.Ft.S3_LIST_BUCKET,r.Ft.S3_ALL_LIST_BUCKET])||v;return(0,s.useEffect)((()=>{u&&!v&&(O?a.h.buckets.getBucketVersioning(S).then((t=>{e((0,d.lS)(t.data)),e((0,d.IJ)(!1))})).catch((t=>{console.error("Error Getting Object Versioning Status: ",t.error.detailedMessage),e((0,d.IJ)(!1))})):(e((0,d.IJ)(!1)),e((0,d.o_)())))}),[S,u,e,O,v]),(0,s.useEffect)((()=>{j&&(O?a.h.buckets.getBucketObjectLockingStatus(S).then((t=>{e((0,d.lY)(t.data.object_locking_enabled)),e((0,d.Jn)(!1))})).catch((t=>{console.error("Error Getting Object Locking Status: ",t.error.detailedMessage),e((0,d.Jn)(!1))})):(e((0,d.o_)()),e((0,d.Jn)(!1))))}),[S,j,e,O]),(0,C.jsxs)(s.Fragment,{children:[!v&&(0,C.jsx)(He,{bucketName:S}),(0,C.jsx)(Ue,{})]})}},34433:(e,t,n)=>{n.r(t),n.d(t,{default:()=>b});var s=n(72791),o=n(78687),i=n(29945),a=n(78029),l=n.n(a),r=n(56028),c=n(99779),d=n(80184);const u=e=>{let{id:t,initialDate:n,label:o,maxDays:a,entity:l,onChange:r}=e;const[u,h]=(0,s.useState)(7),[x,m]=(0,s.useState)(0),[p,j]=(0,s.useState)(0),[b,g]=(0,s.useState)(!0),[v,f]=(0,s.useState)(c.ou.now());(0,s.useEffect)((()=>{isNaN(x)||isNaN(u)||isNaN(p)||f(((e,t,n,s)=>c.ou.fromJSDate(e).plus({hours:n+24*t,minutes:s}))(n,u,x,p))}),[n,u,x,p]),(0,s.useEffect)((()=>{if(b){const e=v.toFormat("yyyy-MM-dd HH:mm:ss");r(e.split(" ").join("T"),!0)}else r("0000-00-00",!1)}),[v,r,b]),(0,s.useEffect)((()=>{let e=!0;(u<0||a&&u>a||isNaN(u))&&(e=!1),(x<0||x>23||isNaN(x))&&(e=!1),(p<0||p>59||isNaN(p))&&(e=!1),!a||u!==a||0===x&&0===p||(e=!1),u<=0&&x<=0&&p<=0&&(e=!1),g(e)}),[v,a,r,u,x,p]);const _={"& .textBoxContainer":{minWidth:0},"& input":{textAlign:"center",paddingRight:10,paddingLeft:10,width:40}};return(0,d.jsxs)(i.xuv,{className:"inputItem",children:[(0,d.jsx)(i.xuv,{sx:{display:"flex",alignItems:"center",marginBottom:5},children:(0,d.jsx)(i.AZs,{htmlFor:t,children:o})}),(0,d.jsxs)(i.xuv,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-evenly",gap:10,"& .reverseInput":{flexFlow:"row-reverse","& > label":{fontWeight:400,marginLeft:15,marginRight:25}}},children:[(0,d.jsx)(i.xuv,{children:(0,d.jsx)(i.Wzg,{id:t,className:"reverseInput removeArrows",type:"number",min:"0",max:a?a.toString():"999",label:"Days",name:t,onChange:e=>{h(parseInt(e.target.value))},value:u.toString(),sx:_,noLabelMinWidth:!0})}),(0,d.jsx)(i.xuv,{children:(0,d.jsx)(i.Wzg,{id:t,className:"reverseInput removeArrows",type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:e=>{m(parseInt(e.target.value))},value:x.toString(),sx:_,noLabelMinWidth:!0})}),(0,d.jsx)(i.xuv,{children:(0,d.jsx)(i.Wzg,{id:t,className:"reverseInput removeArrows",type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:e=>{j(parseInt(e.target.value))},value:p.toString(),sx:_,noLabelMinWidth:!0})})]}),(0,d.jsx)(i.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginTop:25,marginLeft:10,marginBottom:15,"& .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},"& .invalidDurationText":{marginTop:15,display:"flex",color:"red",fontSize:11}},children:b?(0,d.jsxs)("div",{className:"validityText",children:[(0,d.jsx)(i.xPt,{}),(0,d.jsxs)("div",{children:[l," will be available until:"]})," ",(0,d.jsx)("div",{className:"validTill",children:v.toFormat("MM/dd/yyyy HH:mm:ss ZZZZ")})]}):(0,d.jsx)("div",{className:"invalidDurationText",children:"Please select a valid duration."})})]})};var h=n(45248),x=n(87995),m=n(44690),p=n(31776),j=n(82342);const b=e=>{let{open:t,closeModalAndRefresh:n,bucketName:a,dataObject:c}=e;const b=(0,m.TL)(),g=(0,o.v9)(x.N5),[v,f]=(0,s.useState)(""),[_,S]=(0,s.useState)(!0),[T,w]=(0,s.useState)(!1),[y,C]=(0,s.useState)(""),[E,O]=(0,s.useState)(!0),[F,I]=(0,s.useState)("null"),N=new Date;return(0,s.useEffect)((()=>{if(void 0===c.version_id)return g?(p.h.buckets.listObjects(a,{prefix:(0,h.LL)(c.name||""),with_versions:g}).then((e=>{const t=(e.data.objects||[]).find((e=>e.is_latest));I(t?"".concat(t.version_id):"null")})).catch((e=>{b((0,x.zb)((0,j.g)(e.error)))})),void S(!1)):(I("null"),void S(!1));I(c.version_id||"null"),S(!1)}),[a,c,g,b]),(0,s.useEffect)((()=>{if(E&&!_){w(!0),f("");const e=new Date("".concat(y)),t=new Date,n=Math.ceil((e.getTime()-t.getTime())/1e3);n>0&&p.h.buckets.shareObject(a,{prefix:(0,h.LL)(c.name||""),version_id:F,expires:""!==y?"".concat(n,"s"):""}).then((e=>{f(e.data),w(!1)})).catch((e=>{b((0,x.zb)((0,j.g)(e.error))),f(""),w(!1)}))}}),[c,y,a,E,f,b,g,_,F]),(0,d.jsx)(s.Fragment,{children:(0,d.jsxs)(r.Z,{title:"Share File",titleIcon:(0,d.jsx)(i.aAc,{style:{fill:"#4CCB92"}}),modalOpen:t,onClose:()=>{n()},children:[_&&(0,d.jsx)(i.rjZ,{item:!0,xs:12,children:(0,d.jsx)(i.kod,{})}),!_&&(0,d.jsxs)(s.Fragment,{children:[(0,d.jsxs)(i.rjZ,{item:!0,xs:12,sx:{fontSize:14,fontWeight:400},children:["This is a temporary URL with integrated access credentials for sharing objects valid for up to 7 days.",(0,d.jsx)("br",{}),(0,d.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,d.jsx)("br",{}),(0,d.jsx)(i.rjZ,{item:!0,xs:12,children:(0,d.jsx)(u,{initialDate:N,id:"date",label:"Active for",maxDays:7,onChange:(e,t)=>{O(t),t?C(e):(C(""),f(""))},entity:"Link"})}),(0,d.jsx)(i.rjZ,{item:!0,xs:12,sx:{marginBottom:10},children:(0,d.jsx)(i.bSr,{actionButton:(0,d.jsx)(l(),{text:v,children:(0,d.jsx)(i.zxk,{id:"copy-path",variant:"regular",onClick:()=>{b((0,x.MK)("Share URL Copied to clipboard"))},disabled:""===v||T,style:{width:"28px",height:"28px",padding:"0px"},icon:(0,d.jsx)(i.TIy,{})})}),children:v})})]})]})})}},78562:(e,t,n)=>{n.r(t),n.d(t,{default:()=>x});var s=n(72791),o=n(56028),i=n(29945),a=n(26181),l=n.n(a),r=n(47922),c=n(45248),d=n(31776),u=n(80184);const h=e=>{let{bucketName:t,object:n,isFullscreen:o=!1}=e;const[a,h]=(0,s.useState)(!0),[x,m]=(0,s.useState)(null),[p,j]=(0,s.useState)(!1),b=(null===n||void 0===n?void 0:n.name)||"",g=(0,s.useCallback)((()=>{if(!p){const e=(0,c.LL)(b);d.h.buckets.getObjectMetadata(t,{prefix:e}).then((e=>{let t=l()(e.data,"objectMetadata",{});j(!0),m(t)})).catch((e=>{console.error("Error Getting Metadata Status: ",e,null===e||void 0===e?void 0:e.detailedError),j(!0)}))}}),[t,b,p]);(0,s.useEffect)((()=>{t&&b&&g()}),[t,b,g]);let v="";if(n){const e=(0,c.LL)(n.name);let s=document.baseURI.replace(window.location.origin,"");v="".concat(window.location.origin).concat(s,"api/v1/buckets/").concat(t,"/objects/download?preview=true&prefix=").concat(e),n.version_id&&(v=v.concat("&version_id=".concat(n.version_id)))}let f=(0,r.s7)(x,b);const _=()=>{h(!1)};return(0,u.jsxs)(s.Fragment,{children:["none"!==f&&a&&(0,u.jsx)(i.rjZ,{item:!0,xs:12,children:(0,u.jsx)(i.kod,{})}),p?(0,u.jsxs)(i.xuv,{sx:{textAlign:"center","& .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"}},children:["video"===f&&(0,u.jsx)("video",{style:{width:"auto",height:"auto",maxWidth:"calc(100vw - 100px)",maxHeight:"calc(100vh - 200px)"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:_,children:(0,u.jsx)("source",{src:v,type:"video/mp4"})}),"audio"===f&&(0,u.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:_,children:(0,u.jsx)("source",{src:v,type:"audio/mpeg"})}),"image"===f&&(0,u.jsx)("img",{style:{width:"auto",height:"auto",maxWidth:"100vw",maxHeight:"100vh"},src:v,alt:"preview",onLoad:_}),"none"===f&&(0,u.jsx)("div",{children:(0,u.jsx)(i.J6i,{variant:"error",message:" File couldn't be previewed using file extension or mime type. Please try Download instead",title:"Preview unavailable",sx:{margin:"15px 0"}})}),"none"!==f&&"video"!==f&&"audio"!==f&&"image"!==f&&(0,u.jsx)("div",{className:"iframeBase ".concat(a?"iframeHidden":""),children:(0,u.jsx)("iframe",{src:v,title:"File Preview",allowTransparency:!0,className:"iframeContainer ".concat(o?"fullHeight":f),onLoad:_,children:"File couldn't be loaded. Please try Download instead"})})]}):null]})},x=e=>{let{open:t,bucketName:n,object:a,onClosePreview:l}=e;return(0,u.jsx)(s.Fragment,{children:(0,u.jsx)(o.Z,{modalOpen:t,title:"Preview - ".concat(null===a||void 0===a?void 0:a.name),onClose:l,wideLimit:!1,titleIcon:(0,u.jsx)(i.$30,{}),children:(0,u.jsx)(h,{bucketName:n,object:a})})})}},75578:(e,t,n)=>{n.d(t,{Z:()=>i});var s=n(72791),o=n(80184);const i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(n){return(0,o.jsx)(s.Suspense,{fallback:t,children:(0,o.jsx)(e,{...n})})}}},73669:(e,t,n)=>{n.d(t,{Z:()=>a});var s=n(72791),o=n(29945),i=n(80184);const a=e=>{let{value:t}=e;const[n,a]=(0,s.useState)(!1);return(0,i.jsxs)(o.xuv,{sx:{display:"flex",alignItems:"center",flexFlow:"row",["@media (max-width: ".concat(o.Egj.sm,"px)")]:{flexFlow:"column"}},children:[(0,i.jsx)(o.Wzg,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:n?"text":"password",onChange:()=>{},value:t,overlayIcon:(0,i.jsx)(o.TIy,{}),readOnly:!0,overlayAction:()=>navigator.clipboard.writeText(t)}),(0,i.jsx)(o.zxk,{id:"show-hide-key",style:{marginLeft:"10px"},variant:"callAction",onClick:()=>a(!n),label:"Show/Hide"})]})}}}]); +//# sourceMappingURL=2603.dca1b3d2.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2603.dca1b3d2.chunk.js.map b/portal-ui/build/static/js/2603.dca1b3d2.chunk.js.map new file mode 100644 index 000000000..5b410f9ff --- /dev/null +++ b/portal-ui/build/static/js/2603.dca1b3d2.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2603.dca1b3d2.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddAccessRule.tsx","screens/Console/Buckets/ListBuckets/UploadPermissionUtils.ts","screens/Console/ObjectBrowser/BrowserBreadcrumbs.tsx","utils/validationFunctions.ts","screens/Console/ObjectBrowser/objectBrowserThunks.ts","screens/Console/Buckets/ListBuckets/UploadFilesButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DetailsListPanel.tsx","screens/Console/ObjectBrowser/utils.ts","screens/Console/Buckets/ListBuckets/Objects/ListObjects/IconWithLabel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/utils.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/ObjectMetaData.tsx","screens/Console/Common/FormComponents/DateSelector/utils.ts","screens/Console/Common/FormComponents/DateSelector/DateSelector.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SetRetention.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DeleteObject.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SetLegalHoldModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/TagsModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/InspectObject.tsx","screens/Console/ObjectBrowser/RenameLongFilename.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/RestoreFileVersion.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SpecificVersionPill.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/FileVersionItem.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DeleteNonCurrent.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/DeleteSelectedVersions.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/VersionsNavigator.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsHelpers.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsTable.tsx","screens/Console/ObjectBrowser/FilterObjectsSB.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx","screens/Console/ObjectBrowser/OBHeader.tsx","screens/Console/Buckets/BucketDetails/BrowserHandler.tsx","screens/Console/Common/FormComponents/DaysSelector/DaysSelector.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/ShareFile.tsx","screens/Console/Buckets/ListBuckets/Objects/Preview/PreviewFileContent.tsx","screens/Console/Buckets/ListBuckets/Objects/Preview/PreviewFileModal.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Tools/KeyRevealer.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, { useEffect, useState, Fragment } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport {\n AddAccessRuleIcon,\n Button,\n FormLayout,\n Grid,\n InputBox,\n Select,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IAddAccessRule {\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n prefilledRoute?: string;\n}\n\nconst AddAccessRule = ({\n modalOpen,\n onClose,\n bucket,\n prefilledRoute,\n}: IAddAccessRule) => {\n const dispatch = useAppDispatch();\n\n const [prefix, setPrefix] = useState(\"\");\n const [selectedAccess, setSelectedAccess] = useState(\"readonly\");\n\n useEffect(() => {\n if (prefilledRoute) {\n setPrefix(prefilledRoute);\n }\n }, [prefilledRoute]);\n\n const accessOptions = [\n { label: \"readonly\", value: \"readonly\" },\n { label: \"writeonly\", value: \"writeonly\" },\n { label: \"readwrite\", value: \"readwrite\" },\n ];\n\n const resetForm = () => {\n setPrefix(\"\");\n setSelectedAccess(\"readonly\");\n };\n\n const createProcess = () => {\n api.bucket\n .setAccessRuleWithBucket(bucket, {\n prefix: prefix,\n access: selectedAccess,\n })\n .then((res: any) => {\n dispatch(setSnackBarMessage(\"Access Rule added successfully\"));\n onClose();\n })\n .catch((res) => {\n dispatch(setErrorSnackMessage(errorToHandler(res.error)));\n onClose();\n });\n };\n\n return (\n }\n >\n \n {\n setPrefix(e.target.value);\n }}\n tooltip={\n \"Enter '/' to apply the rule to all prefixes and objects at the bucket root. Do not include the wildcard asterisk '*' as part of the prefix *unless* it is an explicit part of the prefix name. The Console automatically appends an asterisk to the appropriate sections of the resulting IAM policy.\"\n }\n />\n {\n setSelectedAccess(value);\n }}\n label=\"Access\"\n value={selectedAccess}\n options={accessOptions}\n disabled={false}\n helpTip={\n \n Select the desired level of access available to unauthenticated\n Users\n \n }\n helpTipPlacement=\"right\"\n />\n \n \n\n \n \n \n \n );\n};\n\nexport default AddAccessRule;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 extractFileExtn = (resourceStr: string) => {\n //file extensions may contain query string. so exclude query strings !\n return (resourceStr.match(/\\.([^.]*?)(?=\\?|#|$)/) || [])[1];\n};\nexport const getPolicyAllowedFileExtensions = (\n sessionGrants: Record,\n uploadPath: string,\n scopes: string[] = [],\n) => {\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n uploadPath,\n scopes,\n );\n\n //get acceptable files if any in the policy.\n const allowedFileExtensions = sessionGrantWildCards.reduce(\n (acc: string[], cv: string) => {\n const extension: string = extractFileExtn(cv);\n if (extension) {\n acc.push(`.${extension}`); //strict extension matching.\n }\n return acc;\n },\n [],\n );\n\n const uniqueExtensions = [...new Set(allowedFileExtensions)];\n return uniqueExtensions.join(\",\");\n};\n\n// The resource should not have the extensions (*.ext) for the hasPermission to work.\n// so sanitize this and also use to extract the allowed extensions outside of permission check.\nexport const getSessionGrantsWildCard = (\n sessionGrants: Record,\n uploadPath: string,\n scopes: string[] = [],\n) => {\n //get only the path matching grants to reduce processing.\n const grantsWithExtension = Object.keys(sessionGrants).reduce(\n (acc: Record, grantKey: string) => {\n if (extractFileExtn(grantKey) && grantKey.includes(uploadPath)) {\n acc[grantKey] = sessionGrants[grantKey];\n }\n return acc;\n },\n {},\n );\n\n const checkPathsForPermission = (sessionGrantKey: string) => {\n const grantActions = grantsWithExtension[sessionGrantKey];\n const hasScope = grantActions.some((actionKey) =>\n scopes.find((scopeKey) => {\n let wildCardMatch = false;\n const hasWildCard = scopeKey.indexOf(\"*\") !== -1;\n if (hasWildCard) {\n const scopeActionKey = scopeKey.substring(0, scopeKey.length - 1);\n\n wildCardMatch = actionKey.includes(scopeActionKey);\n }\n\n return wildCardMatch || actionKey === scopeKey;\n }),\n );\n\n const sessionGrantKeyPath = sessionGrantKey.substring(\n 0,\n sessionGrantKey.indexOf(\"/*.\"), //start of extension part.\n );\n const isUploadPathMatching =\n sessionGrantKeyPath === `arn:aws:s3:::${uploadPath}`;\n\n const hasGrant =\n isUploadPathMatching && sessionGrantKey !== \"arn:aws:s3:::*\";\n\n return hasScope && hasGrant;\n };\n\n return Object.keys(grantsWithExtension).filter(checkPathsForPermission);\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 React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport styled from \"styled-components\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { encodeURLString, safeDecodeURIComponent } from \"../../../common/utils\";\nimport {\n Button,\n CopyIcon,\n NewPathIcon,\n Tooltip,\n Breadcrumbs,\n breakPoints,\n Box,\n} from \"mds\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setVersionsModeEnabled } from \"./objectBrowserSlice\";\nimport { getSessionGrantsWildCard } from \"../Buckets/ListBuckets/UploadPermissionUtils\";\n\nconst CreatePathModal = withSuspense(\n React.lazy(\n () => import(\"../Buckets/ListBuckets/Objects/ListObjects/CreatePathModal\"),\n ),\n);\n\nconst BreadcrumbsMain = styled.div(() => ({\n display: \"flex\",\n \"& .additionalOptions\": {\n paddingRight: \"10px\",\n display: \"flex\",\n alignItems: \"center\",\n [`@media (max-width: ${breakPoints.lg}px)`]: {\n display: \"none\",\n },\n },\n \"& .slashSpacingStyle\": {\n margin: \"0 5px\",\n },\n}));\n\ninterface IObjectBrowser {\n bucketName: string;\n internalPaths: string;\n hidePathButton?: boolean;\n additionalOptions?: React.ReactNode;\n}\n\nconst BrowserBreadcrumbs = ({\n bucketName,\n internalPaths,\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 const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const [createFolderOpen, setCreateFolderOpen] = useState(false);\n const [canCreateSubpath, setCanCreateSubpath] = useState(false);\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\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 const pathToCheckPerms = bucketName + paths || bucketName;\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n pathToCheckPerms,\n putObjectPermScopes,\n );\n\n useEffect(() => {\n setCanCreateSubpath(false);\n Object.keys(sessionGrants).forEach((grant) => {\n grant.includes(pathToCheckPerms) &&\n grant.includes(\"/*\") &&\n setCanCreateSubpath(true);\n });\n }, [pathToCheckPerms, internalPaths, sessionGrants]);\n\n const canCreatePath =\n hasPermission(\n [pathToCheckPerms, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) ||\n anonymousMode ||\n canCreateSubpath;\n\n let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = `${splitPaths.slice(0, index + 1).join(\"/\")}/`;\n const route = `/browser/${bucketName}/${\n subSplit ? `${encodeURLString(subSplit)}` : ``\n }`;\n\n if (index === lastBreadcrumbsIndex && objectItem === versionedFile) {\n return null;\n }\n\n return (\n \n /\n {index === lastBreadcrumbsIndex ? (\n \n {safeDecodeURIComponent(objectItem) /*Only for display*/}\n \n ) : (\n {\n dispatch(\n setVersionsModeEnabled({ status: false, objectName: \"\" }),\n );\n }}\n >\n {\n safeDecodeURIComponent(\n objectItem,\n ) /*Only for display to preserve */\n }\n \n )}\n \n );\n });\n\n let versionsItem: any[] = [];\n\n if (versionsMode) {\n versionsItem = [\n \n \n /\n {versionedFile} - Versions\n \n ,\n ];\n }\n\n const listBreadcrumbs: any[] = [\n \n {\n dispatch(setVersionsModeEnabled({ status: false, objectName: \"\" }));\n }}\n >\n {bucketName}\n \n ,\n ...breadcrumbsMap,\n ...versionsItem,\n ];\n\n const closeAddFolderModal = () => {\n setCreateFolderOpen(false);\n };\n\n const goBackFunction = () => {\n if (versionsMode) {\n dispatch(setVersionsModeEnabled({ status: false, objectName: \"\" }));\n } else {\n if (splitPaths.length === 0) {\n navigate(\"/browser\");\n\n return;\n }\n\n const prevPath = splitPaths.slice(0, -1);\n\n navigate(\n `/browser/${bucketName}${\n prevPath.length > 0\n ? `/${encodeURLString(`${prevPath.join(\"/\")}/`)}`\n : \"\"\n }`,\n );\n }\n };\n\n return (\n \n \n {createFolderOpen && (\n \n )}\n \n \n \n }\n variant={\"regular\"}\n onClick={() => {\n dispatch(setSnackBarMessage(\"Path copied to clipboard\"));\n }}\n style={{\n width: \"28px\",\n height: \"28px\",\n color: \"#969FA8\",\n border: \"#969FA8 1px solid\",\n marginRight: 5,\n }}\n />\n \n {additionalOptions}\n \n }\n >\n {listBreadcrumbs}\n \n {!hidePathButton && (\n \n {\n setCreateFolderOpen(true);\n }}\n disabled={anonymousMode ? false : rewindEnabled || !canCreatePath}\n icon={}\n style={{\n whiteSpace: \"nowrap\",\n }}\n variant={\"regular\"}\n label={\"Create new path\"}\n />\n \n )}\n \n div\": {\n fontSize: 12,\n fontWeight: \"normal\",\n flexDirection: \"row\",\n flexWrap: \"nowrap\",\n },\n [`@media (max-width: ${breakPoints.lg}px)`]: {\n display: \"flex\",\n },\n }}\n >\n {additionalOptions}\n \n \n );\n};\n\nexport default BrowserBreadcrumbs;\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 isVersionedMode = (status: string | undefined) => {\n return status === \"Enabled\" || status === \"Suspended\";\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 { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { AppState } from \"../../../store\";\nimport { encodeURLString, getClientOS } from \"../../../common/utils\";\nimport { BucketObjectItem } from \"../Buckets/ListBuckets/Objects/ListObjects/types\";\nimport { makeid, storeCallForObjectWithID } from \"./transferManager\";\nimport {\n download,\n downloadSelectedAsZip,\n} from \"../Buckets/ListBuckets/Objects/utils\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setAnonymousAccessOpen,\n setDownloadRenameModal,\n setNewObject,\n setPreviewOpen,\n setSelectedPreview,\n setShareFileModalOpen,\n updateProgress,\n} from \"./objectBrowserSlice\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { DateTime } from \"luxon\";\n\nexport const downloadSelected = createAsyncThunk(\n \"objectBrowser/downloadSelected\",\n async (bucketName: string, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const downloadObject = (object: BucketObjectItem) => {\n const identityDownload = encodeURLString(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`,\n );\n\n const ID = makeid(8);\n\n const downloadCall = download(\n bucketName,\n encodeURLString(object.name),\n object.version_id,\n object.size,\n null,\n ID,\n (progress) => {\n dispatch(\n updateProgress({\n instanceID: identityDownload,\n progress: progress,\n }),\n );\n },\n () => {\n dispatch(completeObject(identityDownload));\n },\n (msg: string) => {\n dispatch(failObject({ instanceID: identityDownload, msg }));\n },\n () => {\n dispatch(cancelObjectInList(identityDownload));\n },\n () => {\n dispatch(\n setSnackBarMessage(\n \"File download will be handled directly by the browser.\",\n ),\n );\n },\n );\n storeCallForObjectWithID(ID, downloadCall);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\n }),\n );\n };\n\n if (state.objectBrowser.selectedObjects.length !== 0) {\n let itemsToDownload: BucketObjectItem[] = [];\n\n const filterFunction = (currValue: BucketObjectItem) =>\n state.objectBrowser.selectedObjects.includes(currValue.name);\n\n itemsToDownload = state.objectBrowser.records.filter(filterFunction);\n\n // In case just one element is selected, then we trigger download modal validation.\n if (itemsToDownload.length === 1) {\n if (\n itemsToDownload[0].name.length > 200 &&\n getClientOS().toLowerCase().includes(\"win\")\n ) {\n dispatch(setDownloadRenameModal(itemsToDownload[0]));\n return;\n } else {\n downloadObject(itemsToDownload[0]);\n }\n } else {\n if (itemsToDownload.length === 1) {\n downloadObject(itemsToDownload[0]);\n } else if (itemsToDownload.length > 1) {\n const fileName = `${DateTime.now().toFormat(\n \"LL-dd-yyyy-HH-mm-ss\",\n )}_files_list.zip`;\n\n // We are enforcing zip download when multiple files are selected for better user experience\n const multiObjList = itemsToDownload.reduce((dwList: any[], bi) => {\n // Download objects/prefixes(recursively) as zip\n // Skip any deleted files selected via \"Show deleted objects\" in selection and log for debugging\n const isDeleted = bi?.delete_flag;\n if (bi && !isDeleted) {\n dwList.push(bi.name);\n } else {\n console.log(`Skipping ${bi?.name} from download.`);\n }\n return dwList;\n }, []);\n\n await downloadSelectedAsZip(bucketName, multiObjList, fileName);\n return;\n }\n }\n }\n },\n);\n\nexport const openPreview = createAsyncThunk(\n \"objectBrowser/openPreview\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n if (state.objectBrowser.selectedObjects.length === 1) {\n let fileObject: BucketObjectItem | undefined;\n\n const findFunction = (currValue: BucketObjectItem) =>\n state.objectBrowser.selectedObjects.includes(currValue.name);\n\n fileObject = state.objectBrowser.records.find(findFunction);\n\n if (fileObject) {\n dispatch(setSelectedPreview(fileObject));\n dispatch(setPreviewOpen(true));\n }\n }\n },\n);\n\nexport const openShare = createAsyncThunk(\n \"objectBrowser/openShare\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n if (state.objectBrowser.selectedObjects.length === 1) {\n let fileObject: BucketObjectItem | undefined;\n\n const findFunction = (currValue: BucketObjectItem) =>\n state.objectBrowser.selectedObjects.includes(currValue.name);\n\n fileObject = state.objectBrowser.records.find(findFunction);\n\n if (fileObject) {\n dispatch(setSelectedPreview(fileObject));\n dispatch(setShareFileModalOpen(true));\n }\n }\n },\n);\n\nexport const openAnonymousAccess = createAsyncThunk(\n \"objectBrowser/openAnonymousAccess\",\n async (_, { getState, dispatch }) => {\n const state = getState() as AppState;\n\n if (\n state.objectBrowser.selectedObjects.length === 1 &&\n state.objectBrowser.selectedObjects[0].endsWith(\"/\")\n ) {\n dispatch(setAnonymousAccessOpen(true));\n }\n },\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 React, { Fragment, useState } from \"react\";\nimport { CSSObject } from \"styled-components\";\nimport { Button, DropdownSelector, UploadFolderIcon, UploadIcon } from \"mds\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { getSessionGrantsWildCard } from \"./UploadPermissionUtils\";\n\ninterface IUploadFilesButton {\n uploadPath: string;\n bucketName: string;\n forceDisable?: boolean;\n uploadFileFunction: (closeFunction: () => void) => void;\n uploadFolderFunction: (closeFunction: () => void) => void;\n overrideStyles?: CSSObject;\n}\n\nconst UploadFilesButton = ({\n uploadPath,\n bucketName,\n forceDisable = false,\n uploadFileFunction,\n uploadFolderFunction,\n overrideStyles = {},\n}: IUploadFilesButton) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [uploadOptionsOpen, uploadOptionsSetOpen] = useState(false);\n\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n uploadPath,\n putObjectPermScopes,\n );\n\n const openUploadMenu = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n uploadOptionsSetOpen(!uploadOptionsOpen);\n setAnchorEl(event.currentTarget);\n };\n const handleCloseUpload = () => {\n setAnchorEl(null);\n };\n\n const uploadObjectAllowed =\n hasPermission(\n [uploadPath, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n const uploadFolderAllowed = hasPermission(\n [bucketName, ...sessionGrantWildCards],\n putObjectPermScopes,\n false,\n true,\n );\n\n const uploadFolderAction = (action: string) => {\n if (action === \"folder\") {\n uploadFolderFunction(handleCloseUpload);\n return;\n }\n\n uploadFileFunction(handleCloseUpload);\n };\n\n const uploadEnabled: boolean = uploadObjectAllowed || uploadFolderAllowed;\n\n return (\n \n \n }\n variant={\"callAction\"}\n disabled={forceDisable || !uploadEnabled}\n sx={overrideStyles}\n />\n \n ,\n value: \"file\",\n disabled: !uploadObjectAllowed || forceDisable,\n },\n {\n label: \"Upload Folder\",\n icon: ,\n value: \"folder\",\n disabled: !uploadFolderAllowed || forceDisable,\n },\n ]}\n selectedOption={\"\"}\n onSelect={(nValue) => uploadFolderAction(nValue)}\n hideTriggerAction={() => {\n uploadOptionsSetOpen(false);\n }}\n open={uploadOptionsOpen}\n anchorEl={anchorEl}\n anchorOrigin={\"end\"}\n useAnchorWidth={false}\n />\n \n );\n};\n\nexport default UploadFilesButton;\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, Button, ClosePanelIcon } from \"mds\";\n\ninterface IDetailsListPanel {\n open: boolean;\n className?: string;\n closePanel: () => void;\n children: React.ReactNode;\n}\n\nconst DetailsListPanel = ({\n open,\n closePanel,\n className = \"\",\n children,\n}: IDetailsListPanel) => {\n return (\n \n }\n sx={{\n position: \"absolute\",\n right: 5,\n top: 18,\n padding: 0,\n height: 14,\n \"&:hover:not(:disabled)\": {\n backgroundColor: \"transparent\",\n },\n }}\n />\n {children}\n \n );\n};\n\nexport default DetailsListPanel;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { encodeURLString, getClientOS } from \"../../../common/utils\";\nimport { makeid, storeCallForObjectWithID } from \"./transferManager\";\nimport { download } from \"../Buckets/ListBuckets/Objects/utils\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setLongFileOpen,\n setNewObject,\n updateProgress,\n} from \"./objectBrowserSlice\";\nimport { AppDispatch } from \"../../../store\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { BucketObject } from \"api/consoleApi\";\n\nexport const downloadObject = (\n dispatch: AppDispatch,\n bucketName: string,\n internalPaths: string,\n object: BucketObject,\n) => {\n const identityDownload = encodeURLString(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`,\n );\n\n const isWinOs = getClientOS().toLowerCase().includes(\"win\");\n\n if ((object.name?.length || 0) > 200 && isWinOs) {\n dispatch(setLongFileOpen(true));\n return;\n }\n\n const ID = makeid(8);\n\n const downloadCall = download(\n bucketName,\n internalPaths,\n object.version_id,\n object.size || 0,\n null,\n ID,\n (progress) => {\n dispatch(\n updateProgress({\n instanceID: identityDownload,\n progress: progress,\n }),\n );\n },\n () => {\n dispatch(completeObject(identityDownload));\n },\n (msg: string) => {\n dispatch(failObject({ instanceID: identityDownload, msg }));\n },\n () => {\n dispatch(cancelObjectInList(identityDownload));\n },\n () => {\n dispatch(\n setSnackBarMessage(\n \"File download will be handled directly by the browser.\",\n ),\n );\n },\n );\n\n storeCallForObjectWithID(ID, downloadCall);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name || \"\",\n type: \"download\",\n waitingForFile: true,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\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\n// This object contains variables that will be used across form components.\n\nimport React from \"react\";\nimport { Box } from \"mds\";\nimport { replaceUnicodeChar } from \"../../../../../../common/utils\";\n\ninterface IIconWithLabel {\n icon: React.ReactNode;\n strings: string[];\n}\n\nconst IconWithLabel = ({ icon, strings }: IIconWithLabel) => {\n return (\n \n {icon}\n \n {replaceUnicodeChar(strings[strings.length - 1])}\n \n \n );\n};\n\nexport default IconWithLabel;\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\";\n\nimport {\n FileBookIcon,\n FileCodeIcon,\n FileConfigIcon,\n FileDbIcon,\n FileFontIcon,\n FileImageIcon,\n FileLockIcon,\n FileMissingIcon,\n FileMusicIcon,\n FileNonType,\n FilePdfIcon,\n FilePptIcon,\n FileTxtIcon,\n FileVideoIcon,\n FileXlsIcon,\n FileZipIcon,\n FolderBrowserIcon,\n} from \"mds\";\nimport IconWithLabel from \"./IconWithLabel\";\n\ninterface IExtToIcon {\n icon: any;\n extensions: string[];\n}\n\nexport const extensionToIcon: IExtToIcon[] = [\n {\n icon: ,\n extensions: [\"mp4\", \"mov\", \"avi\", \"mpeg\", \"mpg\"],\n },\n {\n icon: ,\n extensions: [\"mp3\", \"m4a\", \"aac\"],\n },\n {\n icon: ,\n extensions: [\"pdf\"],\n },\n {\n icon: ,\n extensions: [\"ppt\", \"pptx\"],\n },\n {\n icon: ,\n extensions: [\"xls\", \"xlsx\"],\n },\n {\n icon: ,\n extensions: [\"cer\", \"crt\", \"pem\"],\n },\n {\n icon: ,\n extensions: [\"html\", \"xml\", \"css\", \"py\", \"go\", \"php\", \"cpp\", \"h\", \"java\"],\n },\n {\n icon: ,\n extensions: [\"cfg\", \"yaml\"],\n },\n {\n icon: ,\n extensions: [\"sql\"],\n },\n {\n icon: ,\n extensions: [\"ttf\", \"otf\"],\n },\n {\n icon: ,\n extensions: [\"doc\", \"docx\", \"txt\", \"rtf\"],\n },\n {\n icon: ,\n extensions: [\"zip\", \"rar\", \"tar\", \"gz\"],\n },\n {\n icon: ,\n extensions: [\"epub\", \"mobi\", \"azw\", \"azw3\"],\n },\n {\n icon: ,\n extensions: [\"jpeg\", \"jpg\", \"gif\", \"tiff\", \"png\", \"heic\", \"dng\"],\n },\n];\n\nexport const displayFileIconName = (\n element: string,\n returnOnlyIcon: boolean = false,\n) => {\n let elementString = element;\n let icon = ;\n // Element is a folder\n if (element.endsWith(\"/\")) {\n icon = ;\n elementString = element.slice(0, -1);\n }\n\n const lowercaseElement = element.toLowerCase();\n for (const etc of extensionToIcon) {\n for (const ext of etc.extensions) {\n if (lowercaseElement.endsWith(`.${ext}`)) {\n icon = etc.icon;\n }\n }\n }\n\n if (!element.endsWith(\"/\") && element.indexOf(\".\") < 0) {\n icon = ;\n }\n\n const splitItem = elementString.split(\"/\");\n\n if (returnOnlyIcon) {\n return icon;\n }\n\n return ;\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 React, { Fragment } from \"react\";\nimport { Box } from \"mds\";\nimport { safeDecodeURIComponent } from \"../../../../../../common/utils\";\n\ninterface IObjectMetadata {\n metaData: any;\n}\n\nconst itemRendererFn = (element: any) => {\n return Array.isArray(element)\n ? element.map(safeDecodeURIComponent).join(\", \")\n : safeDecodeURIComponent(element);\n};\n\nconst ObjectMetaData = ({ metaData }: IObjectMetadata) => {\n const metaKeys = Object.keys(metaData);\n\n return (\n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = itemRendererFn(metaData[element]);\n return (\n \n {element}\n
\n {renderItem}\n \n );\n })}\n
\n );\n};\n\nexport default ObjectMetaData;\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 months = [\n { value: \"01\", label: \"January\" },\n { value: \"02\", label: \"February\" },\n { value: \"03\", label: \"March\" },\n { value: \"04\", label: \"April\" },\n { value: \"05\", label: \"May\" },\n { value: \"06\", label: \"June\" },\n { value: \"07\", label: \"July\" },\n { value: \"08\", label: \"August\" },\n { value: \"09\", label: \"September\" },\n { value: \"10\", label: \"October\" },\n { value: \"11\", label: \"November\" },\n { value: \"12\", label: \"December\" },\n];\n\nexport const days = Array.from(Array(31), (_, num) => ({\n value: (num + 1).toString(),\n label: (num + 1).toString(),\n}));\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(Array(50), (_, numYear) => ({\n value: (numYear + currentYear).toString(),\n label: (numYear + currentYear).toString(),\n}));\n\nexport const validDate = (year: string, month: string, day: string): any[] => {\n const currentDate = Date.parse(`${year}-${month}-${day}`);\n\n if (isNaN(currentDate)) {\n return [false, \"\"];\n }\n\n const parsedMonth = parseInt(month);\n const parsedDay = parseInt(day);\n\n const monthForString = parsedMonth < 10 ? `0${parsedMonth}` : parsedMonth;\n const dayForString = parsedDay < 10 ? `0${parsedDay}` : parsedDay;\n\n const parsedDate = new Date(currentDate).toISOString().split(\"T\")[0];\n const dateString = `${year}-${monthForString}-${dayForString}`;\n\n return [parsedDate === dateString, dateString];\n};\n\n// twoDigitDate gets a two digit string number used for months or days\n// returns \"NaN\" if number is NaN\nexport const twoDigitDate = (num: number): string => {\n return num < 10 ? `0${num}` : `${num}`;\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, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport { Box, HelpIcon, InputLabel, Select, Tooltip } from \"mds\";\nimport { days, months, validDate, years } from \"./utils\";\n\ninterface IDateSelectorProps {\n id: string;\n label: string;\n disableOptions?: boolean;\n tooltip?: string;\n borderBottom?: boolean;\n value?: string;\n onDateChange: (date: string, isValid: boolean) => any;\n}\n\nconst DateSelector = forwardRef(\n (\n {\n id,\n label,\n disableOptions = false,\n tooltip = \"\",\n borderBottom = false,\n onDateChange,\n value = \"\",\n }: IDateSelectorProps,\n ref: any,\n ) => {\n useImperativeHandle(ref, () => ({ resetDate }));\n\n const [month, setMonth] = useState(\"\");\n const [day, setDay] = useState(\"\");\n const [year, setYear] = useState(\"\");\n\n useEffect(() => {\n // verify if there is a current value\n // assume is in the format \"2021-12-30\"\n if (value !== \"\") {\n const valueSplit = value.split(\"-\");\n\n setYear(valueSplit[0]);\n setMonth(valueSplit[1]);\n // Turn to single digit to be displayed on dropdown buttons\n setDay(`${parseInt(valueSplit[2])}`);\n }\n }, [value]);\n\n useEffect(() => {\n const [isValid, dateString] = validDate(year, month, day);\n onDateChange(dateString, isValid);\n }, [month, day, year, onDateChange]);\n\n const resetDate = () => {\n setMonth(\"\");\n setDay(\"\");\n setYear(\"\");\n };\n\n const isDateDisabled = () => {\n if (disableOptions) {\n return disableOptions;\n } else {\n return false;\n }\n };\n\n const monthForDropDown = [{ value: \"\", label: \"\" }, ...months];\n const daysForDrop = [{ value: \"\", label: \"\" }, ...days];\n const yearsForDrop = [{ value: \"\", label: \"\" }, ...years];\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n \n \n \n \n \n \n \n )}\n \n \n \n {\n setMonth(newValue);\n }}\n options={monthForDropDown}\n label={\"\"}\n disabled={isDateDisabled()}\n />\n\n {\n setDay(newValue);\n }}\n options={daysForDrop}\n label={\"\"}\n disabled={isDateDisabled()}\n />\n\n {\n setYear(newValue);\n }}\n options={yearsForDrop}\n label={\"\"}\n disabled={isDateDisabled()}\n sx={{\n marginBottom: 12,\n }}\n />\n \n \n );\n },\n);\n\nexport default DateSelector;\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, useRef, useState } from \"react\";\nimport { Box, Button, FormLayout, Grid, RadioGroup, Switch } from \"mds\";\nimport { useSelector } from \"react-redux\";\nimport { BucketObject, ObjectRetentionMode } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { encodeURLString } from \"common/utils\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { twoDigitDate } from \"../../../../Common/FormComponents/DateSelector/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport DateSelector from \"../../../../Common/FormComponents/DateSelector/DateSelector\";\n\ninterface ISetRetentionProps {\n open: boolean;\n closeModalAndRefresh: (updateInfo: boolean) => void;\n objectName: string;\n bucketName: string;\n objectInfo: BucketObject;\n}\n\ninterface IRefObject {\n resetDate: () => void;\n}\n\nconst SetRetention = ({\n open,\n closeModalAndRefresh,\n objectName,\n objectInfo,\n bucketName,\n}: ISetRetentionProps) => {\n const dispatch = useAppDispatch();\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const [statusEnabled, setStatusEnabled] = useState(true);\n const [type, setType] = useState(\"\");\n const [date, setDate] = useState(\"\");\n const [isDateValid, setIsDateValid] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const [alreadyConfigured, setAlreadyConfigured] = useState(false);\n\n useEffect(() => {\n if (objectInfo.retention_mode) {\n setType(retentionConfig?.mode || ObjectRetentionMode.Governance);\n setAlreadyConfigured(true);\n }\n // get retention_until_date if defined\n if (objectInfo.retention_until_date) {\n const valueDate = new Date(objectInfo.retention_until_date);\n if (valueDate.toString() !== \"Invalid Date\") {\n const year = valueDate.getFullYear();\n const month = twoDigitDate(valueDate.getMonth() + 1);\n const day = valueDate.getDate();\n if (!isNaN(day) && month !== \"NaN\" && !isNaN(year)) {\n setDate(`${year}-${month}-${day}`);\n }\n }\n setAlreadyConfigured(true);\n }\n }, [objectInfo, retentionConfig?.mode]);\n\n const dateElement = useRef(null);\n\n const dateFieldDisabled = () => {\n return !(statusEnabled && (type === \"governance\" || type === \"compliance\"));\n };\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n };\n\n const resetForm = () => {\n setStatusEnabled(false);\n setType(ObjectRetentionMode.Governance);\n if (dateElement.current) {\n dateElement.current.resetDate();\n }\n };\n\n const addRetention = (\n selectedObject: string,\n versionId: string | null,\n expireDate: string,\n ) => {\n api.buckets\n .putObjectRetention(\n bucketName,\n {\n prefix: encodeURLString(selectedObject),\n version_id: versionId || \"\",\n },\n {\n expires: expireDate,\n mode: type as ObjectRetentionMode,\n },\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const disableRetention = (\n selectedObject: string,\n versionId: string | null,\n ) => {\n api.buckets\n .deleteObjectRetention(bucketName, {\n prefix: encodeURLString(selectedObject),\n version_id: versionId || \"\",\n })\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const saveNewRetentionPolicy = () => {\n setIsSaving(true);\n const selectedObject = objectInfo.name || \"\";\n const versionId = objectInfo.version_id || null;\n\n const expireDate =\n !statusEnabled && type === \"governance\" ? \"\" : `${date}T23:59:59Z`;\n\n if (!statusEnabled && type === \"governance\") {\n disableRetention(selectedObject, versionId);\n\n return;\n }\n\n addRetention(selectedObject, versionId, expireDate);\n };\n\n const showSwitcher =\n alreadyConfigured && (type === \"governance\" || type === \"\");\n\n return (\n {\n resetForm();\n closeModalAndRefresh(false);\n }}\n >\n ) => {\n onSubmit(e);\n }}\n >\n \n \n Selected Object: {objectName}\n \n {showSwitcher && (\n ) => {\n setStatusEnabled(!statusEnabled);\n }}\n label={\"Status\"}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n )}\n {\n setType(e.target.value as ObjectRetentionMode);\n }}\n selectorOptions={[\n { label: \"Governance\", value: ObjectRetentionMode.Governance },\n { label: \"Compliance\", value: ObjectRetentionMode.Compliance },\n ]}\n />\n {\n setIsDateValid(isValid);\n if (isValid) {\n setDate(date);\n }\n }}\n />\n \n \n \n \n \n \n \n );\n};\n\nexport default SetRetention;\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, useState } from \"react\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon, Switch } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { isVersionedMode } from \"../../../../../../utils/validationFunctions\";\nimport { BucketVersioningResponse } from \"api/consoleApi\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n\n versioningInfo: BucketVersioningResponse | undefined;\n selectedVersion?: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n versioningInfo,\n selectedVersion = \"\",\n}: IDeleteObjectProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n\n // We close the modal box on access denied.\n if (err.detailedError === \"Access Denied.\") {\n closeDeleteModalAndRefresh(true);\n }\n };\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [deleteVersions, setDeleteVersions] = useState(false);\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n const decodedSelectedObject = decodeURLString(selectedObject);\n const recursive = decodedSelectedObject.endsWith(\"/\");\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/objects?prefix=${selectedObject}${\n selectedVersion !== \"\"\n ? `&version_id=${selectedVersion}`\n : `&recursive=${recursive}&all_versions=${deleteVersions}`\n }${bypassGovernance ? \"&bypass=true\" : \"\"}`,\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete:
\n {decodeURLString(selectedObject)}{\" \"}\n {selectedVersion !== \"\" ? (\n \n
\n
\n Version ID:\n
\n {selectedVersion}\n
\n ) : (\n \"\"\n )}\n ?
\n
\n {isVersionedMode(versioningInfo?.status) &&\n selectedVersion === \"\" && (\n \n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\n />\n \n )}\n {canBypass && (deleteVersions || selectedVersion !== \"\") && (\n \n \n {\n setBypassGovernance(!bypassGovernance);\n }}\n description=\"\"\n />\n \n \n )}\n {deleteVersions && (\n \n \n This will remove the object as well as all of its versions,{\" \"}\n
\n This action is irreversible.\n \n
\n Are you sure you want to continue?\n
\n )}\n
\n }\n />\n );\n};\n\nexport default DeleteObject;\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 get from \"lodash/get\";\nimport { Box, Button, FormLayout, Grid, Switch } from \"mds\";\nimport { BucketObject, ObjectLegalHoldStatus } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\n\ninterface ISetRetentionProps {\n open: boolean;\n closeModalAndRefresh: (reload: boolean) => void;\n objectName: string;\n bucketName: string;\n actualInfo: BucketObject;\n}\n\nconst SetLegalHoldModal = ({\n open,\n closeModalAndRefresh,\n objectName,\n bucketName,\n actualInfo,\n}: ISetRetentionProps) => {\n const dispatch = useAppDispatch();\n const [legalHoldEnabled, setLegalHoldEnabled] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const versionId = actualInfo.version_id;\n\n useEffect(() => {\n const status = get(actualInfo, \"legal_hold_status\", \"OFF\");\n setLegalHoldEnabled(status === \"ON\");\n }, [actualInfo]);\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setIsSaving(true);\n\n api.buckets\n .putObjectLegalHold(\n bucketName,\n {\n prefix: encodeURLString(objectName),\n version_id: versionId || \"\",\n },\n {\n status: legalHoldEnabled\n ? ObjectLegalHoldStatus.Enabled\n : ObjectLegalHoldStatus.Disabled,\n },\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const resetForm = () => {\n setLegalHoldEnabled(false);\n };\n\n return (\n {\n resetForm();\n closeModalAndRefresh(false);\n }}\n >\n ) => {\n onSubmit(e);\n }}\n >\n \n \n Object: {bucketName}\n \n ) => {\n setLegalHoldEnabled(!legalHoldEnabled);\n }}\n label={\"Legal Hold Status\"}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n tooltip={\n \"To enable this feature you need to enable versioning on the bucket before creation\"\n }\n />\n \n \n \n \n \n \n \n );\n};\n\nexport default SetLegalHoldModal;\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, useState } from \"react\";\nimport get from \"lodash/get\";\nimport styled from \"styled-components\";\nimport {\n AddNewTagIcon,\n Button,\n DisabledIcon,\n EditTagIcon,\n InputBox,\n SectionTitle,\n Box,\n Grid,\n Tag,\n FormLayout,\n} from \"mds\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { encodeURLString } from \"common/utils\";\nimport { useSelector } from \"react-redux\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../../common/SecureComponent\";\nimport {\n selDistSet,\n setModalErrorSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\ninterface ITagModal {\n modalOpen: boolean;\n bucketName: string;\n actualInfo: BucketObject;\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst DeleteTag = styled.b(({ theme }) => ({\n color: get(theme, \"signalColors.danger\", \"#C83B51\"),\n marginLeft: 5,\n}));\n\nconst AddTagModal = ({\n modalOpen,\n onCloseAndUpdate,\n bucketName,\n actualInfo,\n}: ITagModal) => {\n const dispatch = useAppDispatch();\n const distributedSetup = useSelector(selDistSet);\n const [newKey, setNewKey] = useState(\"\");\n const [newLabel, setNewLabel] = useState(\"\");\n const [isSending, setIsSending] = useState(false);\n const [deleteEnabled, setDeleteEnabled] = useState(false);\n const [deleteKey, setDeleteKey] = useState(\"\");\n const [deleteLabel, setDeleteLabel] = useState(\"\");\n\n const selectedObject = encodeURLString(actualInfo.name || \"\");\n\n const currentTags = actualInfo.tags;\n const currTagKeys = Object.keys(currentTags || {});\n\n const allPathData = actualInfo.name?.split(\"/\");\n const currentItem = allPathData?.pop() || \"\";\n\n const resetForm = () => {\n setNewLabel(\"\");\n setNewKey(\"\");\n };\n\n const addTagProcess = () => {\n setIsSending(true);\n const newTag: any = {};\n\n newTag[newKey] = newLabel;\n const newTagList = { ...currentTags, ...newTag };\n\n const verID = distributedSetup ? actualInfo.version_id || \"\" : \"null\";\n\n api.buckets\n .putObjectTags(\n bucketName,\n { prefix: selectedObject, version_id: verID },\n { tags: newTagList },\n )\n .then(() => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSending(false);\n });\n };\n\n const deleteTagProcess = () => {\n const cleanObject: any = { ...currentTags };\n delete cleanObject[deleteKey];\n\n const verID = distributedSetup ? actualInfo.version_id || \"\" : \"null\";\n\n api.buckets\n .putObjectTags(\n bucketName,\n { prefix: selectedObject, version_id: verID },\n { tags: cleanObject },\n )\n .then(() => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSending(false);\n });\n };\n\n const onDeleteTag = (tagKey: string, tag: string) => {\n setDeleteKey(tagKey);\n setDeleteLabel(tag);\n setDeleteEnabled(true);\n };\n\n const cancelDelete = () => {\n setDeleteKey(\"\");\n setDeleteLabel(\"\");\n setDeleteEnabled(false);\n };\n\n const tagsFor = (plural: boolean) => (\n \n Tag{plural ? \"s\" : \"\"} for: {currentItem}\n \n );\n\n return (\n \n {\n onCloseAndUpdate(true);\n }}\n iconColor={deleteEnabled ? \"delete\" : \"default\"}\n titleIcon={deleteEnabled ? : }\n >\n {deleteEnabled ? (\n \n \n {tagsFor(false)}\n Are you sure you want to delete the tag{\" \"}\n \n {deleteKey} : {deleteLabel}\n {\" \"}\n ?\n \n \n \n \n \n \n ) : (\n \n \n \n {tagsFor(true)}\n \n Current Tags:\n
\n {currTagKeys.length === 0 ? (\n \n There are no tags for this object\n \n ) : (\n \n )}\n \n {currTagKeys.map((tagKey: string, index: number) => {\n const tag = get(currentTags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n {\n onDeleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n
\n \n \n \n \n } separator={false}>\n Add New Tag\n \n \n {\n setNewKey(e.target.value);\n }}\n />\n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n \n )}\n \n
\n );\n};\n\nexport default AddTagModal;\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, { useState } from \"react\";\nimport {\n Button,\n InspectMenuIcon,\n PasswordKeyIcon,\n Switch,\n Grid,\n Box,\n} from \"mds\";\nimport {\n decodeURLString,\n deleteCookie,\n encodeURLString,\n getCookieValue,\n performDownload,\n} from \"../../../../../../common/utils\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport KeyRevealer from \"../../../../Tools/KeyRevealer\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\ninterface IInspectObjectProps {\n closeInspectModalAndRefresh: (refresh: boolean) => void;\n inspectOpen: boolean;\n inspectPath: string;\n volumeName: string;\n}\n\nconst InspectObject = ({\n closeInspectModalAndRefresh,\n inspectOpen,\n inspectPath,\n volumeName,\n}: IInspectObjectProps) => {\n const dispatch = useAppDispatch();\n const onClose = () => closeInspectModalAndRefresh(false);\n const [isEncrypt, setIsEncrypt] = useState(true);\n const [decryptionKey, setDecryptionKey] = useState(\"\");\n const [insFileName, setInsFileName] = useState(\"\");\n\n if (!inspectPath) {\n return null;\n }\n const makeRequest = async (url: string) => {\n return await fetch(url, { method: \"GET\" });\n };\n\n const performInspect = async () => {\n const file = encodeURLString(inspectPath + \"/xl.meta\");\n const volume = encodeURLString(volumeName);\n\n const urlOfInspectApi = `/api/v1/admin/inspect?volume=${volume}&file=${file}&encrypt=${isEncrypt}`;\n\n makeRequest(urlOfInspectApi)\n .then(async (res) => {\n if (!res.ok) {\n const resErr: any = await res.json();\n\n dispatch(\n setErrorSnackMessage({\n errorMessage: resErr.message,\n detailedError: resErr.code,\n }),\n );\n }\n const blob: Blob = await res.blob();\n\n //@ts-ignore\n const filename = res.headers.get(\"content-disposition\").split('\"')[1];\n const decryptKey = getCookieValue(filename) || \"\";\n\n performDownload(blob, filename);\n setInsFileName(filename);\n if (decryptKey === \"\") {\n onClose();\n return;\n }\n setDecryptionKey(decryptKey);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(err));\n });\n };\n\n const onCloseDecKeyModal = () => {\n deleteCookie(insFileName);\n onClose();\n setDecryptionKey(\"\");\n };\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n };\n\n return (\n \n {!decryptionKey && (\n }\n title={`Inspect Object`}\n onClose={onClose}\n >\n ) => {\n onSubmit(e);\n }}\n >\n Would you like to encrypt {decodeURLString(inspectPath)}?{\" \"}\n
\n {\n setIsEncrypt(!isEncrypt);\n }}\n description=\"\"\n />\n \n \n \n \n \n )}\n {decryptionKey ? (\n }\n >\n \n This will be displayed only once. It cannot be recovered.\n
\n Use secure medium to share this key.\n
\n \n \n \n \n ) : null}\n
\n );\n};\n\nexport default InspectObject;\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 { Button, EditIcon, FormLayout, Grid, InputBox, Switch } from \"mds\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { useAppDispatch } from \"../../../store\";\nimport { downloadObject } from \"./utils\";\nimport { BucketObject } from \"api/consoleApi\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\n\ninterface IRenameLongFilename {\n open: boolean;\n bucketName: string;\n internalPaths: string;\n currentItem: string;\n actualInfo: BucketObject;\n closeModal: () => void;\n}\n\nconst RenameLongFileName = ({\n open,\n closeModal,\n currentItem,\n internalPaths,\n actualInfo,\n bucketName,\n}: IRenameLongFilename) => {\n const dispatch = useAppDispatch();\n\n const [newFileName, setNewFileName] = useState(currentItem);\n const [acceptLongName, setAcceptLongName] = useState(false);\n\n const doDownload = (e: React.FormEvent) => {\n e.preventDefault();\n downloadObject(dispatch, bucketName, internalPaths, actualInfo);\n closeModal();\n };\n\n return (\n }\n >\n
\n The file you are trying to download has a long name.\n
\n This can cause issues on Windows Systems by trimming the file name after\n download.\n
\n
We recommend to rename the file download\n
\n ) => {\n doDownload(e);\n }}\n >\n \n ) => {\n setNewFileName(event.target.value);\n }}\n label=\"\"\n type={\"text\"}\n value={newFileName}\n error={\n newFileName.length > 200 && !acceptLongName\n ? \"Filename should be less than 200 characters long.\"\n : \"\"\n }\n />\n ) => {\n setAcceptLongName(event.target.checked);\n if (event.target.checked) {\n setNewFileName(currentItem);\n }\n }}\n label={\"Use Original Name\"}\n />\n \n 200 && !acceptLongName}\n label={\"Download File\"}\n />\n \n \n \n \n );\n};\n\nexport default RenameLongFileName;\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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport {\n ActionsList,\n Box,\n Button,\n DeleteIcon,\n DownloadIcon,\n Grid,\n InspectMenuIcon,\n LegalHoldIcon,\n Loader,\n MetadataIcon,\n ObjectInfoIcon,\n PreviewIcon,\n RetentionIcon,\n ShareIcon,\n SimpleHeader,\n TagsIcon,\n VersionsIcon,\n} from \"mds\";\nimport { api } from \"api\";\nimport { downloadObject } from \"../../../../ObjectBrowser/utils\";\nimport { BucketObject, BucketVersioningResponse } from \"api/consoleApi\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\nimport {\n decodeURLString,\n niceBytes,\n niceBytesInt,\n niceDaysInt,\n} from \"../../../../../../common/utils\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../../../common/SecureComponent/permissions\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../../../common/SecureComponent\";\nimport { selDistSet } from \"../../../../../../systemSlice\";\nimport {\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n setVersionsModeEnabled,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport { displayFileIconName } from \"./utils\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport ObjectMetaData from \"../ObjectDetails/ObjectMetaData\";\nimport ShareFile from \"../ObjectDetails/ShareFile\";\nimport SetRetention from \"../ObjectDetails/SetRetention\";\nimport DeleteObject from \"../ListObjects/DeleteObject\";\nimport SetLegalHoldModal from \"../ObjectDetails/SetLegalHoldModal\";\nimport TagsModal from \"../ObjectDetails/TagsModal\";\nimport InspectObject from \"./InspectObject\";\nimport RenameLongFileName from \"../../../../ObjectBrowser/RenameLongFilename\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\n\nconst emptyFile: BucketObject = {\n is_latest: true,\n last_modified: \"\",\n legal_hold_status: \"\",\n name: \"\",\n retention_mode: \"\",\n retention_until_date: \"\",\n size: 0,\n tags: {},\n version_id: undefined,\n};\n\ninterface IObjectDetailPanelProps {\n internalPaths: string;\n bucketName: string;\n versioningInfo: BucketVersioningResponse;\n locking: boolean | undefined;\n onClosePanel: (hardRefresh: boolean) => void;\n}\n\nconst ObjectDetailPanel = ({\n internalPaths,\n bucketName,\n versioningInfo,\n locking,\n onClosePanel,\n}: IObjectDetailPanelProps) => {\n const dispatch = useAppDispatch();\n\n const distributedSetup = useSelector(selDistSet);\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const selectedVersion = useSelector(\n (state: AppState) => state.objectBrowser.selectedVersion,\n );\n const loadingObjectInfo = useSelector(\n (state: AppState) => state.objectBrowser.loadingObjectInfo,\n );\n\n const [shareFileModalOpen, setShareFileModalOpen] = useState(false);\n const [retentionModalOpen, setRetentionModalOpen] = useState(false);\n const [tagModalOpen, setTagModalOpen] = useState(false);\n const [legalholdOpen, setLegalholdOpen] = useState(false);\n const [inspectModalOpen, setInspectModalOpen] = useState(false);\n const [actualInfo, setActualInfo] = useState(null);\n const [allInfoElements, setAllInfoElements] = useState([]);\n const [objectToShare, setObjectToShare] = useState(null);\n const [versions, setVersions] = useState([]);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [previewOpen, setPreviewOpen] = useState(false);\n const [totalVersionsSize, setTotalVersionsSize] = useState(0);\n const [longFileOpen, setLongFileOpen] = useState(false);\n const [metaData, setMetaData] = useState(null);\n const [loadMetadata, setLoadingMetadata] = useState(false);\n\n const internalPathsDecoded = decodeURLString(internalPaths) || \"\";\n const allPathData = internalPathsDecoded.split(\"/\");\n const currentItem = allPathData.pop() || \"\";\n\n // calculate object name to display\n let objectNameArray: string[] = [];\n if (actualInfo && actualInfo.name) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (distributedSetup && allInfoElements && allInfoElements.length >= 1) {\n let infoElement =\n allInfoElements.find((el: BucketObject) => el.is_latest) || emptyFile;\n\n if (selectedVersion !== \"\") {\n infoElement =\n allInfoElements.find(\n (el: BucketObject) => el.version_id === selectedVersion,\n ) || emptyFile;\n }\n\n if (!infoElement.is_delete_marker) {\n setLoadingMetadata(true);\n }\n\n setActualInfo(infoElement);\n }\n }, [selectedVersion, distributedSetup, allInfoElements]);\n\n useEffect(() => {\n if (loadingObjectInfo && internalPaths !== \"\") {\n api.buckets\n .listObjects(bucketName, {\n prefix: internalPaths,\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result: BucketObject[] = res.data.objects || [];\n if (distributedSetup) {\n setAllInfoElements(result);\n setVersions(result);\n\n const tVersionSize = result.reduce(\n (acc: number, currValue: BucketObject): number => {\n if (currValue?.size) {\n return acc + currValue.size;\n }\n return acc;\n },\n 0,\n );\n\n setTotalVersionsSize(tVersionSize);\n } else {\n const resInfo = result[0];\n\n setActualInfo(resInfo);\n setVersions([]);\n\n if (!resInfo.is_delete_marker) {\n setLoadingMetadata(true);\n }\n }\n\n dispatch(setLoadingObjectInfo(false));\n })\n .catch((err) => {\n console.error(\"Error loading object details\", err.error);\n dispatch(setLoadingObjectInfo(false));\n });\n }\n }, [\n loadingObjectInfo,\n bucketName,\n internalPaths,\n dispatch,\n distributedSetup,\n selectedVersion,\n ]);\n\n useEffect(() => {\n if (loadMetadata && internalPaths !== \"\") {\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: internalPaths,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n\n setMetaData(metadata);\n setLoadingMetadata(false);\n })\n .catch((err) => {\n console.error(\"Error Getting Metadata Status: \", err.detailedError);\n setLoadingMetadata(false);\n });\n }\n }, [bucketName, internalPaths, loadMetadata]);\n\n let tagKeys: string[] = [];\n\n if (actualInfo && actualInfo.tags) {\n tagKeys = Object.keys(actualInfo.tags);\n }\n\n const openRetentionModal = () => {\n setRetentionModalOpen(true);\n };\n\n const closeRetentionModal = (updateInfo: boolean) => {\n setRetentionModalOpen(false);\n if (updateInfo) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const shareObject = () => {\n setShareFileModalOpen(true);\n };\n\n const closeShareModal = () => {\n setObjectToShare(null);\n setShareFileModalOpen(false);\n };\n\n const closeFileOpen = () => {\n setLongFileOpen(false);\n };\n\n const closeDeleteModal = (closeAndReload: boolean) => {\n setDeleteOpen(false);\n\n if (closeAndReload && selectedVersion === \"\") {\n onClosePanel(true);\n } else {\n dispatch(setLoadingVersions(true));\n dispatch(setSelectedVersion(\"\"));\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeAddTagModal = (reloadObjectData: boolean) => {\n setTagModalOpen(false);\n if (reloadObjectData) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeInspectModal = (reloadObjectData: boolean) => {\n setInspectModalOpen(false);\n if (reloadObjectData) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeLegalholdModal = (reload: boolean) => {\n setLegalholdOpen(false);\n if (reload) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const loaderForContainer = (\n
\n \n
\n );\n\n if (!actualInfo) {\n if (loadingObjectInfo) {\n return loaderForContainer;\n }\n\n return null;\n }\n\n const objectName =\n objectNameArray.length > 0\n ? objectNameArray[objectNameArray.length - 1]\n : actualInfo.name;\n\n const objectResources = [\n bucketName,\n currentItem,\n [bucketName, actualInfo.name].join(\"/\"),\n ];\n const canSetLegalHold = hasPermission(bucketName, [\n IAM_SCOPES.S3_PUT_OBJECT_LEGAL_HOLD,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n const canSetTags = hasPermission(objectResources, [\n IAM_SCOPES.S3_PUT_OBJECT_TAGGING,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n\n const canChangeRetention = hasPermission(\n objectResources,\n [\n IAM_SCOPES.S3_GET_OBJECT_RETENTION,\n IAM_SCOPES.S3_PUT_OBJECT_RETENTION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n true,\n );\n const canInspect = hasPermission(objectResources, [\n IAM_SCOPES.ADMIN_INSPECT_DATA,\n ]);\n const canChangeVersioning = hasPermission(objectResources, [\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_OBJECT_VERSION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n const canGetObject = hasPermission(objectResources, [\n IAM_SCOPES.S3_GET_OBJECT,\n IAM_SCOPES.S3_GET_ACTIONS,\n ]);\n const canDelete = hasPermission(\n [bucketName, currentItem, [bucketName, actualInfo.name].join(\"/\")],\n [IAM_SCOPES.S3_DELETE_OBJECT],\n );\n\n let objectType: AllowedPreviews = previewObjectType(metaData, currentItem);\n\n const multiActionButtons = [\n {\n action: () => {\n downloadObject(dispatch, bucketName, internalPaths, actualInfo);\n },\n label: \"Download\",\n disabled: !!actualInfo.is_delete_marker || !canGetObject,\n icon: ,\n tooltip: canGetObject\n ? \"Download this Object\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"download this object\",\n ),\n },\n {\n action: () => {\n shareObject();\n },\n label: \"Share\",\n disabled: !!actualInfo.is_delete_marker || !canGetObject,\n icon: ,\n tooltip: canGetObject\n ? \"Share this File\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"share this object\",\n ),\n },\n {\n action: () => {\n setPreviewOpen(true);\n },\n label: \"Preview\",\n disabled:\n !!actualInfo.is_delete_marker ||\n (objectType === \"none\" && !canGetObject),\n icon: ,\n tooltip: canGetObject\n ? \"Preview this File\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"preview this object\",\n ),\n },\n {\n action: () => {\n setLegalholdOpen(true);\n },\n label: \"Legal Hold\",\n disabled:\n !locking ||\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !canSetLegalHold ||\n selectedVersion !== \"\",\n icon: ,\n tooltip: canSetLegalHold\n ? locking\n ? \"Change Legal Hold rules for this File\"\n : \"Object Locking must be enabled on this bucket in order to set Legal Hold\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT_LEGAL_HOLD, IAM_SCOPES.S3_PUT_ACTIONS],\n \"change legal hold settings for this object\",\n ),\n },\n {\n action: openRetentionModal,\n label: \"Retention\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !canChangeRetention ||\n selectedVersion !== \"\" ||\n !locking,\n icon: ,\n tooltip: canChangeRetention\n ? locking\n ? \"Change Retention rules for this File\"\n : \"Object Locking must be enabled on this bucket in order to set Retention Rules\"\n : permissionTooltipHelper(\n [\n IAM_SCOPES.S3_GET_OBJECT_RETENTION,\n IAM_SCOPES.S3_PUT_OBJECT_RETENTION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n \"change Retention Rules for this object\",\n ),\n },\n {\n action: () => {\n setTagModalOpen(true);\n },\n label: \"Tags\",\n disabled:\n !!actualInfo.is_delete_marker || selectedVersion !== \"\" || !canSetTags,\n icon: ,\n tooltip: canSetTags\n ? \"Change Tags for this File\"\n : permissionTooltipHelper(\n [\n IAM_SCOPES.S3_PUT_OBJECT_TAGGING,\n IAM_SCOPES.S3_GET_OBJECT_TAGGING,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n \"set Tags on this object\",\n ),\n },\n {\n action: () => {\n setInspectModalOpen(true);\n },\n label: \"Inspect\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n selectedVersion !== \"\" ||\n !canInspect,\n icon: ,\n tooltip: canInspect\n ? \"Inspect this file\"\n : permissionTooltipHelper(\n [IAM_SCOPES.ADMIN_INSPECT_DATA],\n \"inspect this file\",\n ),\n },\n {\n action: () => {\n dispatch(\n setVersionsModeEnabled({\n status: !versionsMode,\n objectName: objectName,\n }),\n );\n },\n label: versionsMode ? \"Hide Object Versions\" : \"Display Object Versions\",\n icon: ,\n disabled:\n !distributedSetup ||\n !(actualInfo.version_id && actualInfo.version_id !== \"null\") ||\n !canChangeVersioning,\n tooltip: canChangeVersioning\n ? actualInfo.version_id && actualInfo.version_id !== \"null\"\n ? \"Display Versions for this file\"\n : \"\"\n : permissionTooltipHelper(\n [\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_OBJECT_VERSION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n \"display all versions of this object\",\n ),\n },\n ];\n\n const calculateLastModifyTime = (lastModified: string) => {\n const currentTime = new Date();\n const modifiedTime = new Date(lastModified);\n\n const difTime = currentTime.getTime() - modifiedTime.getTime();\n\n const formatTime = niceDaysInt(difTime, \"ms\");\n\n return formatTime.trim() !== \"\" ? `${formatTime} ago` : \"Just now\";\n };\n\n return (\n \n {shareFileModalOpen && actualInfo && (\n \n )}\n {retentionModalOpen && actualInfo && (\n \n )}\n {deleteOpen && (\n \n )}\n {legalholdOpen && actualInfo && (\n \n )}\n {previewOpen && actualInfo && (\n {\n setPreviewOpen(false);\n }}\n />\n )}\n {tagModalOpen && actualInfo && (\n \n )}\n {inspectModalOpen && actualInfo && (\n \n )}\n {longFileOpen && actualInfo && (\n \n )}\n\n {loadingObjectInfo ? (\n {loaderForContainer}\n ) : (\n \n \n {displayFileIconName(objectName || \"\", true)}\n {objectName}\n \n }\n items={multiActionButtons}\n />\n \n \n \n }\n iconLocation={\"start\"}\n fullWidth\n variant={\"secondary\"}\n onClick={() => {\n setDeleteOpen(true);\n }}\n disabled={\n selectedVersion === \"\" && actualInfo.is_delete_marker\n }\n sx={{\n width: \"calc(100% - 44px)\",\n margin: \"8px 0\",\n }}\n label={`Delete${selectedVersion !== \"\" ? \" version\" : \"\"}`}\n />\n \n \n \n } label={\"Object Info\"} />\n \n Name:\n
\n
{objectName}
\n
\n {selectedVersion !== \"\" && (\n \n Version ID:\n
\n {selectedVersion}\n
\n )}\n \n Size:\n
\n {niceBytes(`${actualInfo.size || \"0\"}`)}\n
\n {actualInfo.version_id &&\n actualInfo.version_id !== \"null\" &&\n selectedVersion === \"\" && (\n \n Versions:\n
\n {versions.length} version{versions.length !== 1 ? \"s\" : \"\"},{\" \"}\n {niceBytesInt(totalVersionsSize)}\n
\n )}\n {selectedVersion === \"\" && (\n \n Last Modified:\n
\n {calculateLastModifyTime(actualInfo.last_modified || \"\")}\n
\n )}\n \n ETAG:\n
\n {actualInfo.etag || \"N/A\"}\n
\n \n Tags:\n
\n {tagKeys.length === 0\n ? \"N/A\"\n : tagKeys.map((tagKey, index) => {\n return (\n \n {tagKey}:{get(actualInfo, `tags.${tagKey}`, \"\")}\n {index < tagKeys.length - 1 ? \", \" : \"\"}\n \n );\n })}\n
\n \n \n \n Legal Hold:\n
\n {actualInfo.legal_hold_status ? \"On\" : \"Off\"}\n
\n \n
\n \n \n \n Retention Policy:\n
\n \n {actualInfo.version_id && actualInfo.version_id !== \"null\" ? (\n \n {actualInfo.retention_mode\n ? actualInfo.retention_mode.toLowerCase()\n : \"None\"}\n \n ) : (\n \n {actualInfo.retention_mode\n ? actualInfo.retention_mode.toLowerCase()\n : \"None\"}\n \n )}\n \n
\n \n
\n {!actualInfo.is_delete_marker && (\n \n } />\n \n {actualInfo && metaData ? (\n \n ) : null}\n \n \n )}\n \n )}\n
\n );\n};\n\nexport default ObjectDetailPanel;\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 { Box, RecoverIcon } from \"mds\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport { restoreLocalObjectList } from \"../../../../ObjectBrowser/objectBrowserSlice\";\n\ninterface IRestoreFileVersion {\n restoreOpen: boolean;\n bucketName: string;\n versionToRestore: BucketObject;\n objectPath: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst RestoreFileVersion = ({\n versionToRestore,\n bucketName,\n objectPath,\n restoreOpen,\n onCloseAndUpdate,\n}: IRestoreFileVersion) => {\n const dispatch = useAppDispatch();\n const [restoreLoading, setRestoreLoading] = useState(false);\n\n const restoreVersion = () => {\n setRestoreLoading(true);\n\n api.buckets\n .putObjectRestore(bucketName, {\n prefix: encodeURLString(objectPath),\n version_id: versionToRestore.version_id || \"\",\n })\n .then(() => {\n setRestoreLoading(false);\n onCloseAndUpdate(true);\n dispatch(\n restoreLocalObjectList({\n prefix: objectPath,\n objectInfo: versionToRestore,\n }),\n );\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setRestoreLoading(false);\n });\n };\n\n return (\n }\n onConfirm={restoreVersion}\n confirmButtonProps={{\n variant: \"secondary\",\n disabled: restoreLoading,\n }}\n onClose={() => {\n onCloseAndUpdate(false);\n }}\n confirmationContent={\n \n Are you sure you want to restore
\n {objectPath}
with Version ID:\n
\n {versionToRestore.version_id}?\n
\n }\n />\n );\n};\n\nexport default RestoreFileVersion;\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\ninterface ISpecificVersionPillProps {\n type: \"null\" | \"current\" | \"deleted\";\n}\n\nconst SpecificVersionPill = ({ type }: ISpecificVersionPillProps) => {\n let bgColor = \"#000\";\n let message = \"\";\n\n switch (type) {\n case \"null\":\n bgColor = \"#07193E\";\n message = \"NULL VERSION\";\n break;\n case \"deleted\":\n bgColor = \"#868686\";\n message = \"DELETED\";\n break;\n default:\n bgColor = \"#174551\";\n message = \"CURRENT VERSION\";\n }\n\n return (\n \n {message}\n \n );\n};\n\nexport default SpecificVersionPill;\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 { DateTime } from \"luxon\";\nimport styled from \"styled-components\";\nimport get from \"lodash/get\";\nimport { displayFileIconName } from \"../ListObjects/utils\";\nimport {\n DownloadIcon,\n PreviewIcon,\n RecoverIcon,\n ShareIcon,\n IconButton,\n Tooltip,\n Grid,\n Checkbox,\n} from \"mds\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport SpecificVersionPill from \"./SpecificVersionPill\";\nimport { BucketObject } from \"api/consoleApi\";\n\ninterface IFileVersionItem {\n fileName: string;\n versionInfo: BucketObject;\n index: number;\n isSelected?: boolean;\n checkable: boolean;\n isChecked: boolean;\n onCheck: (versionID: string) => void;\n onShare: (versionInfo: BucketObject) => void;\n onDownload: (versionInfo: BucketObject) => void;\n onRestore: (versionInfo: BucketObject) => void;\n onPreview: (versionInfo: BucketObject) => void;\n globalClick: (versionInfo: BucketObject) => void;\n key: any;\n style: any;\n}\n\nconst FileVersionStyled = styled.div(({ theme }) => {\n return {\n \"&:before\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n width: \"2px\",\n height: \"calc(100% + 2px)\",\n backgroundColor: get(theme, \"borderColor\", \"#F8F8F8\"),\n left: \"24px\",\n },\n \"& .mainFileVersionItem\": {\n borderBottom: `${get(theme, \"borderColor\", \"#F8F8F8\")} 1px solid`,\n padding: \"1rem 0\",\n margin: \"0 0.5rem 0 2.5rem\",\n cursor: \"pointer\",\n \"&.deleted\": {\n color: \"#868686\",\n },\n },\n \"& .intermediateLayer\": {\n margin: \"0 1.5rem 0 1.5rem\",\n \"&:hover, &.selected\": {\n backgroundColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n \"& > div\": {\n borderBottomColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n },\n },\n },\n \"& .versionContainer\": {\n fontSize: 16,\n fontWeight: \"bold\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg.min-icon\": {\n width: 18,\n height: 18,\n minWidth: 18,\n minHeight: 18,\n marginRight: 10,\n },\n },\n \"& .buttonContainer\": {\n textAlign: \"right\",\n \"& button\": {\n marginLeft: \"1.5rem\",\n },\n },\n \"& .versionID\": {\n fontSize: \"12px\",\n margin: \"2px 0\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n maxWidth: \"95%\",\n overflow: \"hidden\",\n },\n \"& .versionData\": {\n marginRight: \"10px\",\n fontSize: 12,\n color: \"#868686\",\n },\n \"@media (max-width: 600px)\": {\n \"& .buttonContainer\": {\n \"& button\": {\n marginLeft: \"5px\",\n },\n },\n },\n \"@media (max-width: 799px)\": {\n \"&:before\": {\n display: \"none\",\n },\n \"& .mainFileVersionItem\": {\n padding: \"5px 0px\",\n margin: 0,\n },\n \"& .intermediateLayer\": {\n margin: 0,\n \"&:hover, &.selected\": {\n backgroundColor: \"transparent\",\n \"& > div\": {\n borderBottomColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n },\n },\n },\n \"& .versionContainer\": {\n fontSize: 14,\n \"& svg.min-icon\": {\n display: \"none\",\n },\n },\n \"& .versionData\": {\n textOverflow: \"ellipsis\",\n maxWidth: \"95%\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n },\n \"& .collapsableInfo\": {\n display: \"flex\",\n flexDirection: \"column\",\n },\n \"& .versionItem\": {\n display: \"none\",\n },\n },\n };\n});\n\nconst FileVersionItem = ({\n fileName,\n versionInfo,\n isSelected,\n checkable,\n isChecked,\n onCheck,\n onShare,\n onDownload,\n onRestore,\n onPreview,\n globalClick,\n index,\n key,\n style,\n}: IFileVersionItem) => {\n const disableButtons = versionInfo.is_delete_marker;\n\n const versionItemButtons = [\n {\n icon: ,\n action: onPreview,\n tooltip: \"Preview\",\n },\n {\n icon: ,\n action: onDownload,\n tooltip: \"Download this version\",\n },\n {\n icon: ,\n action: onShare,\n tooltip: \"Share this version\",\n },\n {\n icon: ,\n action: onRestore,\n tooltip: \"Restore this version\",\n },\n ];\n\n let pill: \"deleted\" | \"current\" | \"null\" | null = null;\n\n if (versionInfo.is_delete_marker) {\n pill = \"deleted\";\n } else if (versionInfo.is_latest) {\n pill = \"current\";\n } else if (versionInfo.version_id === \"null\") {\n pill = \"null\";\n }\n\n let lastModified = DateTime.now();\n\n if (versionInfo.last_modified) {\n lastModified = DateTime.fromISO(versionInfo.last_modified);\n }\n\n return (\n \n {\n globalClick(versionInfo);\n }}\n key={key}\n style={style}\n >\n \n \n \n \n \n {checkable && (\n {\n e.stopPropagation();\n onCheck(versionInfo.version_id || \"\");\n }}\n value={versionInfo.version_id || \"\"}\n disabled={versionInfo.is_delete_marker}\n sx={{\n width: \"initial\",\n }}\n />\n )}\n {displayFileIconName(fileName, true)} v{index.toString()}\n \n {pill && }\n \n \n \n {versionItemButtons.map((button, index) => {\n return (\n \n {\n e.stopPropagation();\n if (!disableButtons) {\n button.action(versionInfo);\n } else {\n e.preventDefault();\n }\n }}\n sx={{\n backgroundColor: \"#F8F8F8\",\n borderRadius: \"100%\",\n width: \"28px\",\n height: \"28px\",\n padding: \"5px\",\n \"& .min-icon\": {\n width: \"14px\",\n height: \"14px\",\n },\n }}\n >\n {button.icon}\n \n \n );\n })}\n \n \n \n \n {versionInfo.version_id !== \"null\" ? versionInfo.version_id : \"-\"}\n \n \n \n Last modified:{\" \"}\n {lastModified.toFormat(\"ccc, LLL dd yyyy HH:mm:ss (ZZZZ)\")}\n \n \n Size: {niceBytes(`${versionInfo.size || \"0\"}`)}\n \n \n \n \n \n \n );\n};\n\nexport default FileVersionItem;\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\";\n\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport { ConfirmDeleteIcon, Switch, Grid, InputBox } from \"mds\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeleteNonCurrentProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n}\n\nconst DeleteNonCurrentVersions = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n}: IDeleteNonCurrentProps) => {\n const dispatch = useAppDispatch();\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [typeConfirm, setTypeConfirm] = useState(\"\");\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n useEffect(() => {\n if (deleteLoading) {\n api.buckets\n .deleteObject(selectedBucket, {\n prefix: selectedObject,\n non_current_versions: true,\n bypass: bypassGovernance,\n })\n .then(() => {\n closeDeleteModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setDeleteLoading(false);\n });\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n dispatch,\n selectedObject,\n selectedBucket,\n bypassGovernance,\n ]);\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={() => closeDeleteModalAndRefresh(false)}\n confirmButtonProps={{\n disabled: typeConfirm !== \"YES, PROCEED\" || deleteLoading,\n }}\n confirmationContent={\n \n Are you sure you want to delete all the non-current versions for:{\" \"}\n {decodeURLString(selectedObject)}?
\n {canBypass && (\n \n \n {\n setBypassGovernance(!bypassGovernance);\n }}\n description=\"\"\n />\n \n \n )}\n
\n To continue please type YES, PROCEED in the box.\n
\n
\n \n ) => {\n setTypeConfirm(event.target.value);\n }}\n label=\"\"\n value={typeConfirm}\n />\n \n
\n }\n />\n );\n};\n\nexport default DeleteNonCurrentVersions;\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 ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon, Switch } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeleteSelectedVersionsProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedVersions: string[];\n selectedObject: string;\n selectedBucket: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedVersions,\n selectedObject,\n}: IDeleteSelectedVersionsProps) => {\n const dispatch = useAppDispatch();\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n const onClose = () => closeDeleteModalAndRefresh(false);\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n useEffect(() => {\n if (deleteLoading) {\n const selectedObjectsRequest = selectedVersions.map((versionID) => {\n return {\n path: selectedObject,\n versionID: versionID,\n recursive: false,\n };\n });\n\n if (selectedObjectsRequest.length > 0) {\n api.buckets\n .deleteMultipleObjects(selectedBucket, selectedObjectsRequest, {\n all_versions: false,\n bypass: bypassGovernance,\n })\n .then(() => {\n setDeleteLoading(false);\n closeDeleteModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setDeleteLoading(false);\n });\n }\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n selectedBucket,\n selectedObject,\n selectedVersions,\n bypassGovernance,\n dispatch,\n ]);\n\n if (!selectedVersions) {\n return null;\n }\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete the selected {selectedVersions.length}{\" \"}\n versions for {selectedObject}?\n {canBypass && (\n \n \n {\n setBypassGovernance(!bypassGovernance);\n }}\n description=\"\"\n />\n \n \n )}\n \n }\n />\n );\n};\n\nexport default DeleteObject;\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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport {\n breakPoints,\n Button,\n DeleteIcon,\n DeleteNonCurrentIcon,\n Grid,\n ProgressBar,\n ScreenTitle,\n Select,\n SelectMultipleIcon,\n VersionsIcon,\n} from \"mds\";\nimport ShareFile from \"./ShareFile\";\n\nimport { decodeURLString, niceBytesInt } from \"../../../../../../common/utils\";\nimport RestoreFileVersion from \"./RestoreFileVersion\";\n\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport FileVersionItem from \"./FileVersionItem\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport DeleteNonCurrent from \"../ListObjects/DeleteNonCurrent\";\nimport BrowserBreadcrumbs from \"../../../../ObjectBrowser/BrowserBreadcrumbs\";\nimport DeleteSelectedVersions from \"./DeleteSelectedVersions\";\nimport {\n selDistSet,\n setErrorSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport {\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport { List, ListRowProps } from \"react-virtualized\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\nimport { downloadObject } from \"../../../../ObjectBrowser/utils\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IVersionsNavigatorProps {\n internalPaths: string;\n bucketName: string;\n}\n\nconst emptyFile: BucketObject = {\n is_latest: true,\n last_modified: \"\",\n legal_hold_status: \"\",\n name: \"\",\n retention_mode: \"\",\n retention_until_date: \"\",\n size: 0,\n tags: {},\n version_id: undefined,\n};\n\nconst VersionsNavigator = ({\n internalPaths,\n bucketName,\n}: IVersionsNavigatorProps) => {\n const dispatch = useAppDispatch();\n\n const searchVersions = useSelector(\n (state: AppState) => state.objectBrowser.searchVersions,\n );\n const loadingVersions = useSelector(\n (state: AppState) => state.objectBrowser.loadingVersions,\n );\n const selectedVersion = useSelector(\n (state: AppState) => state.objectBrowser.selectedVersion,\n );\n\n const distributedSetup = useSelector(selDistSet);\n const [shareFileModalOpen, setShareFileModalOpen] = useState(false);\n const [actualInfo, setActualInfo] = useState(null);\n const [objectToShare, setObjectToShare] = useState(null);\n const [versions, setVersions] = useState([]);\n const [restoreVersionOpen, setRestoreVersionOpen] = useState(false);\n const [restoreVersion, setRestoreVersion] = useState(\n null,\n );\n const [sortValue, setSortValue] = useState(\"date\");\n const [previewOpen, setPreviewOpen] = useState(false);\n const [deleteNonCurrentOpen, setDeleteNonCurrentOpen] =\n useState(false);\n const [selectEnabled, setSelectEnabled] = useState(false);\n const [selectedItems, setSelectedItems] = useState([]);\n const [delSelectedVOpen, setDelSelectedVOpen] = useState(false);\n\n // calculate object name to display\n let objectNameArray: string[] = [];\n if (actualInfo && actualInfo.name) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (!loadingVersions && !actualInfo) {\n dispatch(setLoadingVersions(true));\n }\n }, [loadingVersions, actualInfo, dispatch]);\n\n useEffect(() => {\n if (loadingVersions && internalPaths !== \"\") {\n api.buckets\n .listObjects(bucketName, {\n prefix: internalPaths,\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result = get(res.data, \"objects\", []);\n\n const decodedInternalPaths = decodeURLString(internalPaths);\n\n // Filter the results prefixes as API can return more files than expected.\n const filteredPrefixes = result.filter(\n (item: BucketObject) => item.name === decodedInternalPaths,\n );\n\n if (distributedSetup) {\n setActualInfo(\n filteredPrefixes.find((el: BucketObject) => el.is_latest) ||\n emptyFile,\n );\n setVersions(filteredPrefixes);\n } else {\n setActualInfo(filteredPrefixes[0]);\n setVersions([]);\n }\n\n dispatch(setLoadingVersions(false));\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n dispatch(setLoadingVersions(false));\n });\n }\n }, [loadingVersions, bucketName, internalPaths, dispatch, distributedSetup]);\n\n const shareObject = () => {\n setShareFileModalOpen(true);\n };\n\n const closeShareModal = () => {\n setObjectToShare(null);\n setShareFileModalOpen(false);\n setPreviewOpen(false);\n };\n\n const onShareItem = (item: BucketObject) => {\n setObjectToShare(item);\n shareObject();\n };\n\n const onPreviewItem = (item: BucketObject) => {\n setObjectToShare(item);\n setPreviewOpen(true);\n };\n\n const onRestoreItem = (item: BucketObject) => {\n setRestoreVersion(item);\n setRestoreVersionOpen(true);\n };\n\n const onDownloadItem = (item: BucketObject) => {\n downloadObject(dispatch, bucketName, internalPaths, item);\n };\n\n const onGlobalClick = (item: BucketObject) => {\n dispatch(setSelectedVersion(item.version_id || \"\"));\n };\n\n const filteredRecords = versions.filter((version) => {\n if (version.version_id) {\n return version.version_id.includes(searchVersions);\n }\n return false;\n });\n\n const closeRestoreModal = (reloadObjectData: boolean) => {\n setRestoreVersionOpen(false);\n setRestoreVersion(null);\n\n if (reloadObjectData) {\n dispatch(setLoadingVersions(true));\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeDeleteNonCurrent = (reloadAfterDelete: boolean) => {\n setDeleteNonCurrentOpen(false);\n\n if (reloadAfterDelete) {\n dispatch(setLoadingVersions(true));\n dispatch(setSelectedVersion(\"\"));\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeSelectedVersions = (reloadOnComplete: boolean) => {\n setDelSelectedVOpen(false);\n\n if (reloadOnComplete) {\n dispatch(setLoadingVersions(true));\n dispatch(setSelectedVersion(\"\"));\n dispatch(setLoadingObjectInfo(true));\n setSelectedItems([]);\n }\n };\n\n const totalSpace = versions.reduce((acc: number, currValue: BucketObject) => {\n if (currValue.size) {\n return acc + currValue.size;\n }\n return acc;\n }, 0);\n\n filteredRecords.sort((a, b) => {\n switch (sortValue) {\n case \"size\":\n if (a.size && b.size) {\n if (a.size < b.size) {\n return -1;\n }\n if (a.size > b.size) {\n return 1;\n }\n return 0;\n }\n return 0;\n default:\n const dateA = new Date(a.last_modified || \"\").getTime();\n const dateB = new Date(b.last_modified || \"\").getTime();\n\n if (dateA < dateB) {\n return 1;\n }\n if (dateA > dateB) {\n return -1;\n }\n return 0;\n }\n });\n\n const onCheckVersion = (selectedVersion: string) => {\n if (selectedItems.includes(selectedVersion)) {\n const filteredItems = selectedItems.filter(\n (element) => element !== selectedVersion,\n );\n\n setSelectedItems(filteredItems);\n\n return;\n }\n\n const cloneState = [...selectedItems];\n cloneState.push(selectedVersion);\n\n setSelectedItems(cloneState);\n };\n\n const rowRenderer = ({\n key, // Unique key within array of rows\n index, // Index of row within collection\n isScrolling, // The List is currently being scrolled\n isVisible, // This row is visible within the List (eg it is not an overscanned row)\n style, // Style object to be applied to row (to position it)\n }: ListRowProps) => {\n const versOrd = versions.length - index;\n return (\n \n );\n };\n\n return (\n \n {shareFileModalOpen && actualInfo && (\n \n )}\n {restoreVersionOpen && actualInfo && restoreVersion && (\n \n )}\n {previewOpen && actualInfo && (\n {\n setPreviewOpen(false);\n }}\n />\n )}\n {deleteNonCurrentOpen && (\n \n )}\n {delSelectedVOpen && (\n \n )}\n \n {!actualInfo && (\n \n \n \n )}\n\n {actualInfo && (\n \n \n \n \n \n \n \n \n }\n title={`${\n objectNameArray.length > 0\n ? objectNameArray[objectNameArray.length - 1]\n : actualInfo.name\n } Versions`}\n subTitle={\n \n \n \n {versions.length} Version\n {versions.length === 1 ? \"\" : \"s\"}   \n \n \n \n {niceBytesInt(totalSpace)}\n \n \n }\n actions={\n \n \n {\n setSelectEnabled(!selectEnabled);\n }}\n icon={}\n variant={selectEnabled ? \"callAction\" : \"regular\"}\n style={{ marginRight: 8 }}\n />\n \n {selectEnabled && (\n \n {\n setDelSelectedVOpen(true);\n }}\n icon={}\n variant={\"secondary\"}\n style={{ marginRight: 8 }}\n disabled={selectedItems.length === 0}\n />\n \n )}\n \n {\n setDeleteNonCurrentOpen(true);\n }}\n icon={}\n variant={\"secondary\"}\n style={{ marginRight: 15 }}\n disabled={versions.length <= 1}\n />\n \n {\n setSortValue(newValue);\n }}\n noLabelMinWidth\n />\n \n }\n bottomBorder={false}\n />\n \n \n {actualInfo.version_id && actualInfo.version_id !== \"null\" && (\n // @ts-ignore\n \n )}\n \n \n )}\n \n \n );\n};\n\nexport default VersionsNavigator;\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 { DateTime } from \"luxon\";\nimport { BucketObjectItem } from \"./types\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { displayFileIconName } from \"./utils\";\n\n// Functions\n\nexport const displayParsedDate = (object: BucketObjectItem) => {\n if (object.name.endsWith(\"/\")) {\n return \"\";\n }\n\n const currTime = DateTime.now();\n const objectTime = DateTime.fromISO(object.last_modified);\n\n const isToday =\n currTime.hasSame(objectTime, \"day\") &&\n currTime.hasSame(objectTime, \"month\") &&\n currTime.hasSame(objectTime, \"year\");\n\n if (isToday) {\n return `Today, ${objectTime.toFormat(\"HH:mm\")}`;\n }\n\n return objectTime.toFormat(\"ccc, LLL dd yyyy HH:mm (ZZZZ)\");\n};\n\nexport const displayNiceBytes = (object: BucketObjectItem) => {\n if (object.name.endsWith(\"/\") || !object.size) {\n return \"-\";\n }\n return niceBytes(String(object.size));\n};\n\nexport const displayDeleteFlag = (state: boolean) => {\n return state ? \"Yes\" : \"No\";\n};\n\n// Table Props\n\nexport const listModeColumns = [\n {\n label: \"Name\",\n elementKey: \"name\",\n renderFunction: displayFileIconName,\n enableSort: true,\n },\n {\n label: \"Last Modified\",\n elementKey: \"last_modified\",\n renderFunction: displayParsedDate,\n renderFullObject: true,\n enableSort: true,\n },\n {\n label: \"Size\",\n elementKey: \"size\",\n renderFunction: displayNiceBytes,\n renderFullObject: true,\n width: 100,\n enableSort: true,\n },\n];\n\nexport const rewindModeColumns = [\n {\n label: \"Name\",\n elementKey: \"name\",\n renderFunction: displayFileIconName,\n enableSort: true,\n },\n {\n label: \"Object Date\",\n elementKey: \"last_modified\",\n renderFunction: displayParsedDate,\n renderFullObject: true,\n enableSort: true,\n },\n {\n label: \"Size\",\n elementKey: \"size\",\n renderFunction: displayNiceBytes,\n renderFullObject: true,\n width: 100,\n enableSort: true,\n },\n {\n label: \"Deleted\",\n elementKey: \"delete_flag\",\n renderFunction: displayDeleteFlag,\n width: 60,\n },\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 React, { useState } from \"react\";\nimport { listModeColumns, rewindModeColumns } from \"./ListObjectsHelpers\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { selFeatures } from \"../../../../consoleSlice\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport {\n setLoadingVersions,\n setObjectDetailsView,\n setReloadObjectsList,\n setSelectedObjects,\n setSelectedObjectView,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport get from \"lodash/get\";\nimport { sortListObjects } from \"../utils\";\nimport { BucketObjectItem } from \"./types\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { downloadObject } from \"../../../../ObjectBrowser/utils\";\nimport { DataTable, ItemActions } from \"mds\";\nimport { BucketObject } from \"api/consoleApi\";\n\nconst ListObjectsTable = () => {\n const dispatch = useAppDispatch();\n const params = useParams();\n const navigate = useNavigate();\n\n const [sortDirection, setSortDirection] = useState<\n \"ASC\" | \"DESC\" | undefined\n >(\"ASC\");\n const [currentSortField, setCurrentSortField] = useState(\"name\");\n\n const bucketName = params.bucketName || \"\";\n\n const detailsOpen = useSelector(\n (state: AppState) => state.objectBrowser.objectDetailsOpen,\n );\n\n const requestInProgress = useSelector(\n (state: AppState) => state.objectBrowser.requestInProgress,\n );\n\n const features = useSelector(selFeatures);\n const obOnly = !!features?.includes(\"object-browser-only\");\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const records = useSelector((state: AppState) => state.objectBrowser.records);\n const searchObjects = useSelector(\n (state: AppState) => state.objectBrowser.searchObjects,\n );\n const selectedObjects = useSelector(\n (state: AppState) => state.objectBrowser.selectedObjects,\n );\n const connectionError = useSelector(\n (state: AppState) => state.objectBrowser.connectionError,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const displayListObjects = hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n IAM_SCOPES.S3_ALL_LIST_BUCKET,\n ]);\n\n const filteredRecords = records.filter((b: BucketObjectItem) => {\n if (searchObjects === \"\") {\n return true;\n } else {\n const objectName = b.name.toLowerCase();\n if (objectName.indexOf(searchObjects.toLowerCase()) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n const plSelect = filteredRecords;\n const sortASC = plSelect.sort(sortListObjects(currentSortField));\n\n let payload: BucketObjectItem[] = [];\n\n if (sortDirection === \"ASC\") {\n payload = sortASC;\n } else {\n payload = sortASC.reverse();\n }\n\n const openPath = (object: BucketObject) => {\n const idElement = object.name || \"\";\n const newPath = `/browser/${bucketName}${\n idElement ? `/${encodeURLString(idElement)}` : ``\n }`;\n\n // for anonymous start download\n if (anonymousMode && !object.name?.endsWith(\"/\")) {\n downloadObject(\n dispatch,\n bucketName,\n `${encodeURLString(idElement)}`,\n object,\n );\n return;\n }\n dispatch(setSelectedObjects([]));\n\n navigate(newPath);\n\n if (!anonymousMode) {\n dispatch(setObjectDetailsView(true));\n dispatch(setLoadingVersions(true));\n }\n dispatch(\n setSelectedObjectView(\n `${idElement ? `${encodeURLString(idElement)}` : ``}`,\n ),\n );\n };\n const tableActions: ItemActions[] = [\n {\n type: \"view\",\n tooltip: \"View\",\n onClick: openPath,\n sendOnlyId: false,\n },\n ];\n\n const sortChange = (sortData: any) => {\n const newSortDirection = get(sortData, \"sortDirection\", \"DESC\");\n setCurrentSortField(sortData.sortBy);\n setSortDirection(newSortDirection);\n dispatch(setReloadObjectsList(true));\n };\n\n const selectAllItems = () => {\n dispatch(setSelectedObjectView(null));\n\n if (selectedObjects.length === payload.length) {\n dispatch(setSelectedObjects([]));\n return;\n }\n\n const elements = payload.map((item) => item.name);\n dispatch(setSelectedObjects(elements));\n };\n\n const selectListObjects = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedObjects]; // We clone the selectedBuckets array\n\n if (checked) {\n // If the user has checked this field we need to push this to selectedBucketsList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n dispatch(setSelectedObjects(elements));\n dispatch(setSelectedObjectView(null));\n\n return elements;\n };\n\n let errorMessage =\n !displayListObjects && !anonymousMode\n ? permissionTooltipHelper(\n [IAM_SCOPES.S3_LIST_BUCKET, IAM_SCOPES.S3_ALL_LIST_BUCKET],\n \"view Objects in this bucket\",\n )\n : `This location is empty${\n !rewindEnabled ? \", please try uploading a new file\" : \"\"\n }`;\n\n if (connectionError) {\n errorMessage =\n \"Objects List unavailable. Please review your WebSockets configuration and try again\";\n }\n\n let customPaperHeight = \"calc(100vh - 290px)\";\n\n if (obOnly) {\n customPaperHeight = \"calc(100vh - 315px)\";\n }\n\n return (\n {\n if (payload[index]?.delete_flag) {\n return \"deleted\";\n }\n\n return \"\";\n }}\n sx={{\n minHeight: detailsOpen ? \"100%\" : \"initial\",\n }}\n noBackground\n />\n );\n};\nexport default ListObjectsTable;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { setSearchObjects } from \"./objectBrowserSlice\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\n\nconst FilterObjectsSB = () => {\n const dispatch = useAppDispatch();\n\n const searchObjects = useSelector(\n (state: AppState) => state.objectBrowser.searchObjects,\n );\n return (\n {\n dispatch(setSearchObjects(value));\n }}\n value={searchObjects}\n />\n );\n};\nexport default FilterObjectsSB;\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, {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport get from \"lodash/get\";\nimport {\n AccessRuleIcon,\n ActionsList,\n Box,\n BucketsIcon,\n Button,\n Checkbox,\n DeleteIcon,\n DownloadIcon,\n Grid,\n HistoryIcon,\n PageLayout,\n PreviewIcon,\n RefreshIcon,\n ScreenTitle,\n ShareIcon,\n Badge,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { BucketQuota } from \"api/consoleApi\";\nimport { useSelector } from \"react-redux\";\nimport { useLocation, useNavigate, useParams } from \"react-router-dom\";\nimport { useDropzone } from \"react-dropzone\";\nimport { DateTime } from \"luxon\";\nimport {\n decodeURLString,\n encodeURLString,\n niceBytesInt,\n} from \"../../../../../../common/utils\";\nimport BrowserBreadcrumbs from \"../../../../ObjectBrowser/BrowserBreadcrumbs\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../../../common/SecureComponent\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../systemSlice\";\nimport { isVersionedMode } from \"../../../../../../utils/validationFunctions\";\nimport {\n extractFileExtn,\n getPolicyAllowedFileExtensions,\n getSessionGrantsWildCard,\n} from \"../../UploadPermissionUtils\";\nimport {\n makeid,\n removeTrace,\n storeCallForObjectWithID,\n storeFormDataWithID,\n} from \"../../../../ObjectBrowser/transferManager\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n openList,\n resetMessages,\n resetRewind,\n setAnonymousAccessOpen,\n setDownloadRenameModal,\n setLoadingVersions,\n setNewObject,\n setObjectDetailsView,\n setPreviewOpen,\n setReloadObjectsList,\n setRetentionConfig,\n setSelectedObjects,\n setSelectedObjectView,\n setSelectedPreview,\n setShareFileModalOpen,\n setShowDeletedObjects,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport {\n selBucketDetailsInfo,\n selBucketDetailsLoading,\n setBucketDetailsLoad,\n setBucketInfo,\n} from \"../../../BucketDetails/bucketDetailsSlice\";\nimport {\n downloadSelected,\n openAnonymousAccess,\n openPreview,\n openShare,\n} from \"../../../../ObjectBrowser/objectBrowserThunks\";\nimport withSuspense from \"../../../../Common/Components/withSuspense\";\nimport UploadFilesButton from \"../../UploadFilesButton\";\nimport DetailsListPanel from \"./DetailsListPanel\";\nimport ObjectDetailPanel from \"./ObjectDetailPanel\";\nimport VersionsNavigator from \"../ObjectDetails/VersionsNavigator\";\nimport RenameLongFileName from \"../../../../ObjectBrowser/RenameLongFilename\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\nimport ListObjectsTable from \"./ListObjectsTable\";\nimport FilterObjectsSB from \"../../../../ObjectBrowser/FilterObjectsSB\";\nimport AddAccessRule from \"../../../BucketDetails/AddAccessRule\";\n\nconst DeleteMultipleObjects = withSuspense(\n React.lazy(() => import(\"./DeleteMultipleObjects\")),\n);\nconst ShareFile = withSuspense(\n React.lazy(() => import(\"../ObjectDetails/ShareFile\")),\n);\nconst RewindEnable = withSuspense(React.lazy(() => import(\"./RewindEnable\")));\nconst PreviewFileModal = withSuspense(\n React.lazy(() => import(\"../Preview/PreviewFileModal\")),\n);\n\nconst baseDnDStyle = {\n borderWidth: 2,\n borderRadius: 2,\n borderColor: \"transparent\",\n outline: \"none\",\n};\n\nconst activeDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"transparent\",\n borderColor: \"#2196f3\",\n};\n\nconst acceptDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"transparent\",\n borderColor: \"#00e676\",\n};\n\nconst ListObjects = () => {\n const dispatch = useAppDispatch();\n const params = useParams();\n const navigate = useNavigate();\n const location = useLocation();\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const bucketToRewind = useSelector(\n (state: AppState) => state.objectBrowser.rewind.bucketToRewind,\n );\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const showDeleted = useSelector(\n (state: AppState) => state.objectBrowser.showDeleted,\n );\n const detailsOpen = useSelector(\n (state: AppState) => state.objectBrowser.objectDetailsOpen,\n );\n const selectedInternalPaths = useSelector(\n (state: AppState) => state.objectBrowser.selectedInternalPaths,\n );\n const requestInProgress = useSelector(\n (state: AppState) => state.objectBrowser.requestInProgress,\n );\n const simplePath = useSelector(\n (state: AppState) => state.objectBrowser.simplePath,\n );\n const versioningConfig = useSelector(\n (state: AppState) => state.objectBrowser.versionInfo,\n );\n const lockingEnabled = useSelector(\n (state: AppState) => state.objectBrowser.lockingEnabled,\n );\n const downloadRenameModal = useSelector(\n (state: AppState) => state.objectBrowser.downloadRenameModal,\n );\n const selectedPreview = useSelector(\n (state: AppState) => state.objectBrowser.selectedPreview,\n );\n const shareFileModalOpen = useSelector(\n (state: AppState) => state.objectBrowser.shareFileModalOpen,\n );\n const previewOpen = useSelector(\n (state: AppState) => state.objectBrowser.previewOpen,\n );\n const selectedBucket = useSelector(\n (state: AppState) => state.objectBrowser.selectedBucket,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n const anonymousAccessOpen = useSelector(\n (state: AppState) => state.objectBrowser.anonymousAccessOpen,\n );\n\n const records = useSelector(\n (state: AppState) => state.objectBrowser?.records || [],\n );\n\n const loadingBucket = useSelector(selBucketDetailsLoading);\n const bucketInfo = useSelector(selBucketDetailsInfo);\n\n const [deleteMultipleOpen, setDeleteMultipleOpen] = useState(false);\n const [rewindSelect, setRewindSelect] = useState(false);\n const [iniLoad, setIniLoad] = useState(false);\n const [canShareFile, setCanShareFile] = useState(false);\n const [canPreviewFile, setCanPreviewFile] = useState(false);\n const [quota, setQuota] = useState(null);\n const [metaData, setMetaData] = useState(null);\n const [isMetaDataLoaded, setIsMetaDataLoaded] = useState(false);\n\n const isVersioningApplied = isVersionedMode(versioningConfig.status);\n\n const bucketName = params.bucketName || \"\";\n const pathSegment = location.pathname.split(`/browser/${bucketName}/`);\n const internalPaths = pathSegment.length === 2 ? pathSegment[1] : \"\";\n\n const pageTitle = decodeURLString(internalPaths);\n const currentPath = pageTitle.split(\"/\").filter((i: string) => i !== \"\");\n\n let uploadPath = [bucketName];\n if (currentPath.length > 0) {\n uploadPath = uploadPath.concat(currentPath);\n }\n\n const fileUpload = useRef(null);\n const folderUpload = useRef(null);\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const pathAsResourceInPolicy = uploadPath.join(\"/\");\n const allowedFileExtensions = getPolicyAllowedFileExtensions(\n sessionGrants,\n pathAsResourceInPolicy,\n putObjectPermScopes,\n );\n\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n pathAsResourceInPolicy,\n putObjectPermScopes,\n );\n\n const canDownload = hasPermission(\n [pathAsResourceInPolicy, ...sessionGrantWildCards],\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n );\n const canDelete = hasPermission(\n [pathAsResourceInPolicy, ...sessionGrantWildCards],\n [IAM_SCOPES.S3_DELETE_OBJECT],\n );\n const canUpload =\n hasPermission(\n [pathAsResourceInPolicy, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n const canSetAnonymousAccess = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n IAM_SCOPES.S3_PUT_BUCKET_POLICY,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n\n const selectedObjects = useSelector(\n (state: AppState) => state.objectBrowser.selectedObjects,\n );\n\n const checkForDelMarker = (): boolean => {\n let isObjDelMarker = false;\n if (selectedObjects.length === 1) {\n let matchingRec = records.find((obj) => {\n return obj.name === `${selectedObjects[0]}` && obj.delete_flag;\n });\n\n isObjDelMarker = !!matchingRec;\n }\n return isObjDelMarker;\n };\n\n const isSelObjectDelMarker = checkForDelMarker();\n\n const fetchMetadata = useCallback(() => {\n const objectName = selectedObjects[0];\n\n if (!isMetaDataLoaded) {\n const encodedPath = encodeURLString(objectName);\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: encodedPath,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n setIsMetaDataLoaded(true);\n setMetaData(metadata);\n })\n .catch((err) => {\n console.error(\n \"Error Getting Metadata Status: \",\n err,\n err?.detailedError,\n );\n setIsMetaDataLoaded(true);\n });\n }\n }, [bucketName, selectedObjects, isMetaDataLoaded]);\n\n useEffect(() => {\n if (bucketName && !isSelObjectDelMarker) {\n fetchMetadata();\n }\n }, [bucketName, selectedObjects, fetchMetadata, isSelObjectDelMarker]);\n\n useEffect(() => {\n if (rewindEnabled) {\n if (bucketToRewind !== bucketName) {\n dispatch(resetRewind());\n return;\n }\n }\n }, [rewindEnabled, bucketToRewind, bucketName, dispatch]);\n\n useEffect(() => {\n if (folderUpload.current !== null) {\n folderUpload.current.setAttribute(\"directory\", \"\");\n folderUpload.current.setAttribute(\"webkitdirectory\", \"\");\n }\n }, [folderUpload]);\n\n useEffect(() => {\n if (selectedObjects.length === 1) {\n const objectName = selectedObjects[0];\n const isPrefix = objectName.endsWith(\"/\");\n\n let objectType: AllowedPreviews = previewObjectType(metaData, objectName);\n\n if (objectType !== \"none\" && canDownload) {\n setCanPreviewFile(true);\n } else {\n setCanPreviewFile(false);\n }\n\n if (canDownload && !isPrefix) {\n setCanShareFile(true);\n } else {\n setCanShareFile(false);\n }\n } else {\n setCanShareFile(false);\n setCanPreviewFile(false);\n }\n }, [selectedObjects, canDownload, metaData]);\n\n useEffect(() => {\n if (!quota && !anonymousMode) {\n api.buckets\n .getBucketQuota(bucketName)\n .then((res) => {\n let quotaVals = null;\n\n if (res.data.quota) {\n quotaVals = res.data;\n }\n\n setQuota(quotaVals);\n })\n .catch((err) => {\n console.error(\n \"Error Getting Quota Status: \",\n err.error.detailedMessage,\n );\n setQuota(null);\n });\n }\n }, [quota, bucketName, anonymousMode]);\n\n useEffect(() => {\n if (selectedObjects.length > 0) {\n dispatch(setObjectDetailsView(true));\n return;\n }\n\n if (\n selectedObjects.length === 0 &&\n selectedInternalPaths === null &&\n !requestInProgress\n ) {\n dispatch(setObjectDetailsView(false));\n }\n }, [selectedObjects, selectedInternalPaths, dispatch, requestInProgress]);\n\n useEffect(() => {\n if (!iniLoad) {\n dispatch(setBucketDetailsLoad(true));\n setIniLoad(true);\n }\n }, [iniLoad, dispatch, setIniLoad]);\n\n // bucket info\n useEffect(() => {\n if ((requestInProgress || loadingBucket) && !anonymousMode) {\n api.buckets\n .bucketInfo(bucketName)\n .then((res) => {\n dispatch(setBucketDetailsLoad(false));\n dispatch(setBucketInfo(res.data));\n })\n .catch((err) => {\n dispatch(setBucketDetailsLoad(false));\n dispatch(setErrorSnackMessage(errorToHandler(err)));\n });\n }\n }, [bucketName, loadingBucket, dispatch, anonymousMode, requestInProgress]);\n\n // Load retention Config\n\n useEffect(() => {\n if (selectedBucket !== \"\") {\n api.buckets\n .getBucketRetentionConfig(selectedBucket)\n .then((res) => {\n dispatch(setRetentionConfig(res.data));\n })\n .catch(() => {\n dispatch(setRetentionConfig(null));\n });\n }\n }, [selectedBucket, dispatch]);\n\n const closeDeleteMultipleModalAndRefresh = (refresh: boolean) => {\n setDeleteMultipleOpen(false);\n\n if (refresh) {\n dispatch(setSnackBarMessage(`Objects deleted successfully.`));\n dispatch(setSelectedObjects([]));\n dispatch(setReloadObjectsList(true));\n }\n };\n\n const handleUploadButton = (e: any) => {\n if (\n e === null ||\n e === undefined ||\n e.target.files === null ||\n e.target.files === undefined\n ) {\n return;\n }\n e.preventDefault();\n var newFiles: File[] = [];\n\n for (let i = 0; i < e.target.files.length; i++) {\n newFiles.push(e.target.files[i]);\n }\n uploadObject(newFiles, \"\");\n\n e.target.value = \"\";\n };\n\n const uploadObject = useCallback(\n (files: File[], folderPath: string): void => {\n let pathPrefix = \"\";\n if (simplePath) {\n pathPrefix = simplePath.endsWith(\"/\") ? simplePath : simplePath + \"/\";\n }\n\n const upload = (\n files: File[],\n bucketName: string,\n path: string,\n folderPath: string,\n ) => {\n let uploadPromise = (file: File) => {\n return new Promise((resolve, reject) => {\n let uploadUrl = `api/v1/buckets/${bucketName}/objects/upload`;\n const fileName = file.name;\n\n const blobFile = new Blob([file], { type: file.type });\n\n let encodedPath = \"\";\n\n const filePath = get(file, \"path\", \"\");\n const fileWebkitRelativePath = get(file, \"webkitRelativePath\", \"\");\n\n let relativeFolderPath = folderPath;\n const ID = makeid(8);\n\n // File was uploaded via drag & drop\n if (filePath !== \"\") {\n relativeFolderPath = filePath;\n } else if (fileWebkitRelativePath !== \"\") {\n // File was uploaded using upload button\n relativeFolderPath = fileWebkitRelativePath;\n }\n\n let prefixPath = \"\";\n\n if (path !== \"\" || relativeFolderPath !== \"\") {\n const finalFolderPath = relativeFolderPath\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\");\n\n const pathClean = path.endsWith(\"/\") ? path.slice(0, -1) : path;\n\n prefixPath = `${pathClean}${\n !pathClean.endsWith(\"/\") &&\n finalFolderPath !== \"\" &&\n !finalFolderPath.startsWith(\"/\")\n ? \"/\"\n : \"\"\n }${finalFolderPath}${\n !finalFolderPath.endsWith(\"/\") ||\n (finalFolderPath.trim() === \"\" && !path.endsWith(\"/\"))\n ? \"/\"\n : \"\"\n }`;\n }\n\n if (prefixPath !== \"\") {\n uploadUrl = `${uploadUrl}?prefix=${encodeURLString(\n prefixPath + fileName,\n )}`;\n } else {\n uploadUrl = `${uploadUrl}?prefix=${encodeURLString(fileName)}`;\n }\n\n encodedPath = encodeURLString(prefixPath);\n\n const identity = encodeURLString(\n `${bucketName}-${encodedPath}-${new Date().getTime()}-${Math.random()}`,\n );\n\n let xhr = new XMLHttpRequest();\n xhr.open(\"POST\", uploadUrl, true);\n if (anonymousMode) {\n xhr.setRequestHeader(\"X-Anonymous\", \"1\");\n }\n // xhr.setRequestHeader(\"X-Anonymous\", \"1\");\n\n const areMultipleFiles = files.length > 1;\n let errorMessage = `An error occurred while uploading the file${\n areMultipleFiles ? \"s\" : \"\"\n }.`;\n\n const errorMessages: any = {\n 413: \"Error - File size too large\",\n };\n\n xhr.withCredentials = false;\n xhr.onload = function () {\n // resolve promise only when HTTP code is ok\n if (xhr.status >= 200 && xhr.status < 300) {\n dispatch(completeObject(identity));\n resolve({ status: xhr.status });\n\n removeTrace(ID);\n } else {\n // reject promise if there was a server error\n if (errorMessages[xhr.status]) {\n errorMessage = errorMessages[xhr.status];\n } else if (xhr.response) {\n try {\n const err = JSON.parse(xhr.response);\n errorMessage = err.detailedMessage;\n } catch (e) {\n errorMessage = \"something went wrong\";\n }\n }\n\n dispatch(\n failObject({\n instanceID: identity,\n msg: errorMessage,\n }),\n );\n reject({ status: xhr.status, message: errorMessage });\n\n removeTrace(ID);\n }\n };\n\n xhr.upload.addEventListener(\"error\", () => {\n reject(errorMessage);\n dispatch(\n failObject({\n instanceID: identity,\n msg: \"A network error occurred.\",\n }),\n );\n return;\n });\n\n xhr.upload.addEventListener(\"progress\", (event) => {\n const progress = Math.floor((event.loaded * 100) / event.total);\n\n dispatch(\n updateProgress({\n instanceID: identity,\n progress: progress,\n }),\n );\n });\n\n xhr.onerror = () => {\n reject(errorMessage);\n dispatch(\n failObject({\n instanceID: identity,\n msg: \"A network error occurred.\",\n }),\n );\n return;\n };\n xhr.onloadend = () => {\n if (files.length === 0) {\n dispatch(setReloadObjectsList(true));\n }\n };\n xhr.onabort = () => {\n dispatch(cancelObjectInList(identity));\n };\n\n const formData = new FormData();\n if (file.size !== undefined) {\n formData.append(file.size.toString(), blobFile, fileName);\n storeCallForObjectWithID(ID, xhr);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identity,\n percentage: 0,\n prefix: `${decodeURLString(encodedPath)}${fileName}`,\n type: \"upload\",\n waitingForFile: false,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\n }),\n );\n storeFormDataWithID(ID, formData);\n }\n });\n };\n\n const uploadFilePromises: any = [];\n // open object manager\n dispatch(openList());\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n uploadFilePromises.push(uploadPromise(file));\n }\n Promise.allSettled(uploadFilePromises).then((results: Array) => {\n const errors = results.filter(\n (result) => result.status === \"rejected\",\n );\n if (errors.length > 0) {\n const totalFiles = uploadFilePromises.length;\n const successUploadedFiles =\n uploadFilePromises.length - errors.length;\n const err: ErrorResponseHandler = {\n errorMessage: \"There were some errors during file upload\",\n detailedError: `Uploaded files ${successUploadedFiles}/${totalFiles}`,\n };\n dispatch(setErrorSnackMessage(err));\n }\n // We force objects list reload after all promises were handled\n dispatch(setReloadObjectsList(true));\n });\n };\n\n upload(files, bucketName, pathPrefix, folderPath);\n },\n [bucketName, dispatch, simplePath, anonymousMode],\n );\n\n const onDrop = useCallback(\n (acceptedFiles: any[]) => {\n if (acceptedFiles && acceptedFiles.length > 0 && canUpload) {\n let newFolderPath: string = acceptedFiles[0].path;\n //Should we filter by allowed file extensions if any?.\n let allowedFiles = acceptedFiles;\n\n if (allowedFileExtensions.length > 0) {\n allowedFiles = acceptedFiles.filter((file) => {\n const fileExtn = extractFileExtn(file.name);\n return allowedFileExtensions.includes(fileExtn);\n });\n }\n\n if (allowedFiles.length) {\n uploadObject(allowedFiles, newFolderPath);\n console.log(\n `${allowedFiles.length} Allowed Files Processed out of ${acceptedFiles.length}.`,\n pathAsResourceInPolicy,\n ...sessionGrantWildCards,\n );\n\n if (allowedFiles.length !== acceptedFiles.length) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"Upload is restricted.\",\n detailedError: permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT, IAM_SCOPES.S3_PUT_ACTIONS],\n \"upload objects to this location\",\n ),\n }),\n );\n }\n } else {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"Could not process drag and drop.\",\n detailedError: permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT, IAM_SCOPES.S3_PUT_ACTIONS],\n \"upload objects to this location\",\n ),\n }),\n );\n\n console.error(\n \"Could not process drag and drop . upload may be restricted.\",\n pathAsResourceInPolicy,\n ...sessionGrantWildCards,\n );\n }\n }\n if (!canUpload) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"Upload not allowed\",\n detailedError: permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT, IAM_SCOPES.S3_PUT_ACTIONS],\n \"upload objects to this location\",\n ),\n }),\n );\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [uploadObject],\n );\n\n const { getRootProps, getInputProps, isDragActive, isDragAccept } =\n useDropzone({\n noClick: true,\n onDrop,\n });\n\n const dndStyles = useMemo(\n () => ({\n ...baseDnDStyle,\n ...(isDragActive ? activeDnDStyle : {}),\n ...(isDragAccept ? acceptDnDStyle : {}),\n }),\n [isDragActive, isDragAccept],\n );\n\n const closeShareModal = () => {\n dispatch(setShareFileModalOpen(false));\n dispatch(setSelectedPreview(null));\n };\n\n const rewindCloseModal = () => {\n setRewindSelect(false);\n };\n\n const closePreviewWindow = () => {\n dispatch(setPreviewOpen(false));\n dispatch(setSelectedPreview(null));\n };\n\n const onClosePanel = (forceRefresh: boolean) => {\n dispatch(setSelectedObjectView(null));\n dispatch(setVersionsModeEnabled({ status: false }));\n if (detailsOpen && selectedInternalPaths !== null) {\n // We change URL to be the contained folder\n\n const decodedPath = decodeURLString(internalPaths);\n const splitURLS = decodedPath.split(\"/\");\n\n // We remove the last section of the URL as it should be a file\n splitURLS.pop();\n\n let URLItem = \"\";\n\n if (splitURLS && splitURLS.length > 0) {\n URLItem = `${splitURLS.join(\"/\")}/`;\n }\n\n navigate(`/browser/${bucketName}/${encodeURLString(URLItem)}`);\n }\n\n dispatch(setObjectDetailsView(false));\n\n if (forceRefresh) {\n dispatch(setReloadObjectsList(true));\n }\n };\n\n const setDeletedAction = () => {\n dispatch(resetMessages());\n dispatch(setShowDeletedObjects(!showDeleted));\n onClosePanel(true);\n };\n\n const closeRenameModal = () => {\n dispatch(setDownloadRenameModal(null));\n };\n\n const closeAddAccessRule = () => {\n dispatch(setAnonymousAccessOpen(false));\n };\n\n let createdTime = DateTime.now();\n\n if (bucketInfo?.creation_date) {\n createdTime = DateTime.fromISO(bucketInfo.creation_date);\n }\n\n const downloadToolTip =\n selectedObjects?.length <= 1\n ? \"Download Selected\"\n : ` Download selected objects as Zip. Any Deleted objects in the selection would be skipped from download.`;\n\n const multiActionButtons = [\n {\n action: () => {\n dispatch(downloadSelected(bucketName));\n },\n label: \"Download\",\n disabled: !canDownload || isSelObjectDelMarker,\n icon: ,\n tooltip: canDownload\n ? downloadToolTip\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"download objects from this bucket\",\n ),\n },\n {\n action: () => {\n dispatch(openShare());\n },\n label: \"Share\",\n disabled:\n selectedObjects.length !== 1 || !canShareFile || isSelObjectDelMarker,\n icon: ,\n tooltip: canShareFile ? \"Share Selected File\" : \"Sharing unavailable\",\n },\n {\n action: () => {\n dispatch(openPreview());\n },\n label: \"Preview\",\n disabled:\n selectedObjects.length !== 1 || !canPreviewFile || isSelObjectDelMarker,\n icon: ,\n tooltip: canPreviewFile ? \"Preview Selected File\" : \"Preview unavailable\",\n },\n {\n action: () => {\n dispatch(openAnonymousAccess());\n },\n label: \"Anonymous Access\",\n disabled:\n selectedObjects.length !== 1 ||\n !selectedObjects[0].endsWith(\"/\") ||\n !canSetAnonymousAccess,\n icon: ,\n tooltip:\n selectedObjects.length === 1 && selectedObjects[0].endsWith(\"/\")\n ? \"Set Anonymous Access to this Folder\"\n : \"Anonymous Access unavailable\",\n },\n {\n action: () => {\n setDeleteMultipleOpen(true);\n },\n label: \"Delete\",\n icon: ,\n disabled: !canDelete || selectedObjects.length === 0,\n tooltip: canDelete\n ? \"Delete Selected Files\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_DELETE_OBJECT],\n \"delete objects in this bucket\",\n ),\n },\n ];\n\n return (\n \n {shareFileModalOpen && selectedPreview && (\n \n )}\n {deleteMultipleOpen && (\n \n )}\n {rewindSelect && (\n \n )}\n {previewOpen && (\n \n )}\n {!!downloadRenameModal && (\n \n )}\n {anonymousAccessOpen && (\n \n )}\n\n \n {anonymousMode && (\n
\n \n
\n )}\n \n \n \n \n }\n title={bucketName}\n subTitle={\n !anonymousMode ? (\n \n \n Created on: \n \n {bucketInfo?.creation_date\n ? createdTime.toFormat(\n \"ccc, LLL dd yyyy HH:mm:ss (ZZZZ)\",\n )\n : \"\"}\n \n \n \n Access:  \n {bucketInfo?.access || \"\"}\n \n {bucketInfo && (\n \n \n {bucketInfo.size && (\n {niceBytesInt(bucketInfo.size)}\n )}\n {bucketInfo.size && quota && (\n \n {\" \"}\n / {niceBytesInt(quota.quota || 0)}\n \n )}\n {bucketInfo.size && bucketInfo.objects ? \" - \" : \"\"}\n {bucketInfo.objects && (\n \n {bucketInfo.objects} Object\n {bucketInfo.objects && bucketInfo.objects !== 1\n ? \"s\"\n : \"\"}\n \n )}\n \n \n )}\n \n ) : null\n }\n actions={\n \n {!anonymousMode && (\n \n \n \n \n }\n variant={\"regular\"}\n onClick={() => {\n setRewindSelect(true);\n }}\n disabled={\n !isVersioningApplied ||\n !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_OBJECT,\n IAM_SCOPES.S3_GET_ACTIONS,\n ])\n }\n />\n \n )}\n \n }\n variant={\"regular\"}\n onClick={() => {\n if (versionsMode) {\n dispatch(setLoadingVersions(true));\n } else {\n dispatch(resetMessages());\n dispatch(setReloadObjectsList(true));\n }\n }}\n disabled={\n anonymousMode\n ? false\n : !hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n IAM_SCOPES.S3_ALL_LIST_BUCKET,\n ]) || rewindEnabled\n }\n />\n \n \n \n {\n if (fileUpload && fileUpload.current) {\n fileUpload.current.click();\n }\n closeMenu();\n }}\n uploadFolderFunction={(closeMenu) => {\n if (folderUpload && folderUpload.current) {\n folderUpload.current.click();\n }\n closeMenu();\n }}\n />\n \n }\n bottomBorder={false}\n />\n \n \n \n \n {versionsMode ? (\n \n {selectedInternalPaths !== null && (\n \n )}\n \n ) : (\n \n \n {!anonymousMode && (\n \n \n )\n }\n hidePathButton={false}\n />\n \n )}\n \n \n \n )}\n {!anonymousMode && (\n \n {\n onClosePanel(false);\n }}\n className={`${versionsMode ? \"hideListOnSmall\" : \"\"}`}\n >\n {selectedObjects.length > 0 && (\n \n )}\n {selectedInternalPaths !== null && (\n \n )}\n \n \n )}\n \n \n
\n
\n );\n};\n\nexport default ListObjects;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 } from \"react\";\nimport {\n IAM_PAGES,\n IAM_PERMISSIONS,\n IAM_ROLES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport { BackLink, Button, SettingsIcon, Grid } from \"mds\";\nimport AutoColorIcon from \"../Common/Components/AutoColorIcon\";\nimport { useSelector } from \"react-redux\";\nimport { selFeatures } from \"../consoleSlice\";\nimport hasPermission from \"../../../common/SecureComponent/accessControl\";\nimport { useNavigate } from \"react-router-dom\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setSearchVersions } from \"./objectBrowserSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport FilterObjectsSB from \"./FilterObjectsSB\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport ObjectManagerButton from \"../Common/ObjectManager/ObjectManagerButton\";\nimport HelpMenu from \"../HelpMenu\";\nimport { setHelpName } from \"../../../systemSlice\";\n\ninterface IOBHeader {\n bucketName: string;\n}\n\nconst OBHeader = ({ bucketName }: IOBHeader) => {\n const dispatch = useAppDispatch();\n const features = useSelector(selFeatures);\n\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const versionedFile = useSelector(\n (state: AppState) => state.objectBrowser.versionedFile,\n );\n const searchVersions = useSelector(\n (state: AppState) => state.objectBrowser.searchVersions,\n );\n\n const obOnly = !!features?.includes(\"object-browser-only\");\n\n const navigate = useNavigate();\n\n const configureBucketAllowed = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n IAM_SCOPES.S3_PUT_BUCKET_POLICY,\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,\n IAM_SCOPES.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION,\n IAM_SCOPES.S3_DELETE_BUCKET,\n IAM_SCOPES.S3_GET_BUCKET_NOTIFICATIONS,\n IAM_SCOPES.S3_PUT_BUCKET_NOTIFICATIONS,\n IAM_SCOPES.S3_GET_REPLICATION_CONFIGURATION,\n IAM_SCOPES.S3_PUT_REPLICATION_CONFIGURATION,\n IAM_SCOPES.S3_GET_LIFECYCLE_CONFIGURATION,\n IAM_SCOPES.S3_PUT_LIFECYCLE_CONFIGURATION,\n IAM_SCOPES.ADMIN_GET_BUCKET_QUOTA,\n IAM_SCOPES.ADMIN_SET_BUCKET_QUOTA,\n IAM_SCOPES.S3_PUT_BUCKET_TAGGING,\n IAM_SCOPES.S3_GET_BUCKET_TAGGING,\n IAM_SCOPES.S3_LIST_BUCKET_VERSIONS,\n IAM_SCOPES.S3_GET_BUCKET_POLICY_STATUS,\n IAM_SCOPES.S3_DELETE_BUCKET_POLICY,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n\n const searchBar = (\n \n {!versionsMode ? (\n \n \n \n ) : (\n \n {\n dispatch(setSearchVersions(value));\n }}\n value={searchVersions}\n />\n \n )}\n \n );\n\n useEffect(() => {\n dispatch(setHelpName(\"object_browser\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {!obOnly ? (\n {\n navigate(IAM_PAGES.OBJECT_BROWSER_VIEW);\n }}\n />\n }\n actions={\n \n \n \n navigate(`/buckets/${bucketName}/admin`)}\n icon={\n \n }\n style={{\n padding: \"0 10px\",\n }}\n />\n \n \n \n \n }\n middleComponent={searchBar}\n />\n ) : (\n \n \n \n \n \n {searchBar}\n \n \n \n )}\n \n );\n};\n\nexport default OBHeader;\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 { useLocation, useParams } from \"react-router-dom\";\nimport { api } from \"api\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport { decodeURLString, encodeURLString } from \"../../../../common/utils\";\nimport {\n resetMessages,\n setIsVersioned,\n setLoadingLocking,\n setLoadingObjectInfo,\n setLoadingVersioning,\n setLoadingVersions,\n setLockingEnabled,\n setObjectDetailsView,\n setRequestInProgress,\n setSelectedObjectView,\n setVersionsModeEnabled,\n} from \"../../ObjectBrowser/objectBrowserSlice\";\nimport ListObjects from \"../ListBuckets/Objects/ListObjects/ListObjects\";\nimport hasPermission from \"../../../../common/SecureComponent/accessControl\";\nimport OBHeader from \"../../ObjectBrowser/OBHeader\";\n\nconst BrowserHandler = () => {\n const dispatch = useAppDispatch();\n const params = useParams();\n const location = useLocation();\n\n const loadingVersioning = useSelector(\n (state: AppState) => state.objectBrowser.loadingVersioning,\n );\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const rewindDate = useSelector(\n (state: AppState) => state.objectBrowser.rewind.dateToRewind,\n );\n const showDeleted = useSelector(\n (state: AppState) => state.objectBrowser.showDeleted,\n );\n const requestInProgress = useSelector(\n (state: AppState) => state.objectBrowser.requestInProgress,\n );\n const loadingLocking = useSelector(\n (state: AppState) => state.objectBrowser.loadingLocking,\n );\n const reloadObjectsList = useSelector(\n (state: AppState) => state.objectBrowser.reloadObjectsList,\n );\n const simplePath = useSelector(\n (state: AppState) => state.objectBrowser.simplePath,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n const selectedBucket = useSelector(\n (state: AppState) => state.objectBrowser.selectedBucket,\n );\n const records = useSelector((state: AppState) => state.objectBrowser.records);\n\n const bucketName = params.bucketName || \"\";\n const pathSegment = location.pathname.split(`/browser/${bucketName}/`);\n const internalPaths = pathSegment.length === 2 ? pathSegment[1] : \"\";\n\n const initWSRequest = useCallback(\n (path: string) => {\n let currDate = new Date();\n\n let date = currDate.toISOString();\n\n if (rewindDate !== null && rewindEnabled) {\n date = rewindDate;\n }\n\n const payloadData = {\n bucketName,\n path,\n rewindMode: rewindEnabled || showDeleted,\n date: date,\n };\n\n dispatch({ type: \"socket/OBRequest\", payload: payloadData });\n },\n [bucketName, showDeleted, rewindDate, rewindEnabled, dispatch],\n );\n\n // Common path load\n const pathLoad = useCallback(\n (forceLoad: boolean = false) => {\n const decodedInternalPaths = decodeURLString(internalPaths);\n\n // We exit Versions mode in case of path change\n dispatch(setVersionsModeEnabled({ status: false }));\n\n let searchPath = decodedInternalPaths;\n\n if (!decodedInternalPaths.endsWith(\"/\") && decodedInternalPaths !== \"\") {\n searchPath = `${decodedInternalPaths\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\")}/`;\n }\n\n if (searchPath === \"/\") {\n searchPath = \"\";\n }\n\n // If the path is different of the actual path or reload objects list is requested, then we initialize a new request to load a new record set.\n if (\n searchPath !== simplePath ||\n bucketName !== selectedBucket ||\n forceLoad\n ) {\n dispatch(setRequestInProgress(true));\n initWSRequest(searchPath);\n }\n },\n [\n internalPaths,\n dispatch,\n simplePath,\n selectedBucket,\n bucketName,\n initWSRequest,\n ],\n );\n\n useEffect(() => {\n return () => {\n dispatch({ type: \"socket/OBCancelLast\" });\n };\n }, [dispatch]);\n\n // Object Details handler\n useEffect(() => {\n const decodedIPaths = decodeURLString(internalPaths);\n\n dispatch(setLoadingVersioning(true));\n\n if (decodedIPaths.endsWith(\"/\") || decodedIPaths === \"\") {\n dispatch(setObjectDetailsView(false));\n dispatch(setSelectedObjectView(null));\n dispatch(setLoadingLocking(true));\n } else {\n dispatch(setLoadingObjectInfo(true));\n dispatch(setObjectDetailsView(true));\n dispatch(setLoadingVersions(true));\n dispatch(\n setSelectedObjectView(\n `${decodedIPaths ? `${encodeURLString(decodedIPaths)}` : ``}`,\n ),\n );\n }\n }, [bucketName, internalPaths, rewindDate, rewindEnabled, dispatch]);\n\n // Navigation Listing Request\n useEffect(() => {\n pathLoad(false);\n }, [pathLoad]);\n\n // Reload Handler\n useEffect(() => {\n if (reloadObjectsList && records.length === 0 && !requestInProgress) {\n pathLoad(true);\n }\n }, [reloadObjectsList, records, requestInProgress, pathLoad]);\n\n const displayListObjects =\n hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n IAM_SCOPES.S3_ALL_LIST_BUCKET,\n ]) || anonymousMode;\n\n useEffect(() => {\n if (loadingVersioning && !anonymousMode) {\n if (displayListObjects) {\n api.buckets\n .getBucketVersioning(bucketName)\n .then((res) => {\n dispatch(setIsVersioned(res.data));\n dispatch(setLoadingVersioning(false));\n })\n .catch((err) => {\n console.error(\n \"Error Getting Object Versioning Status: \",\n err.error.detailedMessage,\n );\n dispatch(setLoadingVersioning(false));\n });\n } else {\n dispatch(setLoadingVersioning(false));\n dispatch(resetMessages());\n }\n }\n }, [\n bucketName,\n loadingVersioning,\n dispatch,\n displayListObjects,\n anonymousMode,\n ]);\n\n useEffect(() => {\n if (loadingLocking) {\n if (displayListObjects) {\n api.buckets\n .getBucketObjectLockingStatus(bucketName)\n .then((res) => {\n dispatch(setLockingEnabled(res.data.object_locking_enabled));\n dispatch(setLoadingLocking(false));\n })\n .catch((err) => {\n console.error(\n \"Error Getting Object Locking Status: \",\n err.error.detailedMessage,\n );\n dispatch(setLoadingLocking(false));\n });\n } else {\n dispatch(resetMessages());\n dispatch(setLoadingLocking(false));\n }\n }\n }, [bucketName, loadingLocking, dispatch, displayListObjects]);\n\n return (\n \n {!anonymousMode && }\n \n \n );\n};\n\nexport default BrowserHandler;\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 { DateTime } from \"luxon\";\nimport { Box, InputBox, InputLabel, LinkIcon } from \"mds\";\n\ninterface IDaysSelector {\n id: string;\n initialDate: Date;\n maxDays?: number;\n label: string;\n entity: string;\n onChange: (newDate: string, isValid: boolean) => void;\n}\n\nconst calculateNewTime = (\n initialDate: Date,\n days: number,\n hours: number,\n minutes: number,\n) => {\n return DateTime.fromJSDate(initialDate).plus({\n hours: hours + days * 24,\n minutes,\n }); // Lump days into hours to avoid daylight savings causing issues\n};\n\nconst DaysSelector = ({\n id,\n initialDate,\n label,\n maxDays,\n entity,\n onChange,\n}: IDaysSelector) => {\n const [selectedDays, setSelectedDays] = useState(7);\n const [selectedHours, setSelectedHours] = useState(0);\n const [selectedMinutes, setSelectedMinutes] = useState(0);\n const [validDate, setValidDate] = useState(true);\n const [dateSelected, setDateSelected] = useState(DateTime.now());\n\n useEffect(() => {\n if (\n !isNaN(selectedHours) &&\n !isNaN(selectedDays) &&\n !isNaN(selectedMinutes)\n ) {\n setDateSelected(\n calculateNewTime(\n initialDate,\n selectedDays,\n selectedHours,\n selectedMinutes,\n ),\n );\n }\n }, [initialDate, selectedDays, selectedHours, selectedMinutes]);\n\n useEffect(() => {\n if (validDate) {\n const formattedDate = dateSelected.toFormat(\"yyyy-MM-dd HH:mm:ss\");\n onChange(formattedDate.split(\" \").join(\"T\"), true);\n } else {\n onChange(\"0000-00-00\", false);\n }\n }, [dateSelected, onChange, validDate]);\n\n // Basic validation for inputs\n useEffect(() => {\n let valid = true;\n if (\n selectedDays < 0 ||\n (maxDays && selectedDays > maxDays) ||\n isNaN(selectedDays)\n ) {\n valid = false;\n }\n\n if (selectedHours < 0 || selectedHours > 23 || isNaN(selectedHours)) {\n valid = false;\n }\n\n if (selectedMinutes < 0 || selectedMinutes > 59 || isNaN(selectedMinutes)) {\n valid = false;\n }\n\n if (\n maxDays &&\n selectedDays === maxDays &&\n (selectedHours !== 0 || selectedMinutes !== 0)\n ) {\n valid = false;\n }\n\n if (selectedDays <= 0 && selectedHours <= 0 && selectedMinutes <= 0) {\n valid = false;\n }\n\n setValidDate(valid);\n }, [\n dateSelected,\n maxDays,\n onChange,\n selectedDays,\n selectedHours,\n selectedMinutes,\n ]);\n\n const extraStyles = {\n \"& .textBoxContainer\": {\n minWidth: 0,\n },\n \"& input\": {\n textAlign: \"center\" as const,\n paddingRight: 10,\n paddingLeft: 10,\n width: 40,\n },\n };\n\n return (\n \n \n {label}\n \n label\": {\n fontWeight: 400,\n marginLeft: 15,\n marginRight: 25,\n },\n },\n }}\n >\n \n {\n setSelectedDays(parseInt(e.target.value));\n }}\n value={selectedDays.toString()}\n sx={extraStyles}\n noLabelMinWidth\n />\n \n \n {\n setSelectedHours(parseInt(e.target.value));\n }}\n value={selectedHours.toString()}\n sx={extraStyles}\n noLabelMinWidth\n />\n \n \n {\n setSelectedMinutes(parseInt(e.target.value));\n }}\n value={selectedMinutes.toString()}\n sx={extraStyles}\n noLabelMinWidth\n />\n \n \n .min-icon\": {\n color: \"#5E5E5E\",\n width: 15,\n height: 15,\n marginRight: 10,\n },\n },\n \"& .validTill\": {\n fontWeight: \"bold\",\n marginLeft: 15,\n },\n \"& .invalidDurationText\": {\n marginTop: 15,\n display: \"flex\",\n color: \"red\",\n fontSize: 11,\n },\n }}\n >\n {validDate ? (\n
\n \n
{entity} will be available until:
{\" \"}\n
\n {dateSelected.toFormat(\"MM/dd/yyyy HH:mm:ss ZZZZ\")}\n
\n
\n ) : (\n
\n Please select a valid duration.\n
\n )}\n \n \n );\n};\n\nexport default DaysSelector;\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 { Button, CopyIcon, ReadBox, ShareIcon, Grid, ProgressBar } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport DaysSelector from \"../../../../Common/FormComponents/DaysSelector/DaysSelector\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport {\n selDistSet,\n setModalErrorSnackMessage,\n setModalSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IShareFileProps {\n open: boolean;\n bucketName: string;\n dataObject: BucketObject;\n closeModalAndRefresh: () => void;\n}\n\nconst ShareFile = ({\n open,\n closeModalAndRefresh,\n bucketName,\n dataObject,\n}: IShareFileProps) => {\n const dispatch = useAppDispatch();\n const distributedSetup = useSelector(selDistSet);\n const [shareURL, setShareURL] = useState(\"\");\n const [isLoadingVersion, setIsLoadingVersion] = useState(true);\n const [isLoadingFile, setIsLoadingFile] = useState(false);\n const [selectedDate, setSelectedDate] = useState(\"\");\n const [dateValid, setDateValid] = useState(true);\n const [versionID, setVersionID] = useState(\"null\");\n\n const initialDate = new Date();\n\n const dateChanged = (newDate: string, isValid: boolean) => {\n setDateValid(isValid);\n if (isValid) {\n setSelectedDate(newDate);\n return;\n }\n setSelectedDate(\"\");\n setShareURL(\"\");\n };\n\n useEffect(() => {\n // In case version is undefined, we get the latest version of the object\n if (dataObject.version_id === undefined) {\n // In case it is not distributed setup, then we default to \"null\";\n if (distributedSetup) {\n api.buckets\n .listObjects(bucketName, {\n prefix: encodeURLString(dataObject.name || \"\"),\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result: BucketObject[] = res.data.objects || [];\n\n const latestVersion: BucketObject | undefined = result.find(\n (elem: BucketObject) => elem.is_latest,\n );\n\n if (latestVersion) {\n setVersionID(`${latestVersion.version_id}`);\n return;\n }\n\n // Version couldn't be retrieved, we default\n setVersionID(\"null\");\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n\n setIsLoadingVersion(false);\n return;\n }\n setVersionID(\"null\");\n setIsLoadingVersion(false);\n return;\n }\n setVersionID(dataObject.version_id || \"null\");\n setIsLoadingVersion(false);\n }, [bucketName, dataObject, distributedSetup, dispatch]);\n\n useEffect(() => {\n if (dateValid && !isLoadingVersion) {\n setIsLoadingFile(true);\n setShareURL(\"\");\n\n const slDate = new Date(`${selectedDate}`);\n const currDate = new Date();\n\n const diffDate = Math.ceil(\n (slDate.getTime() - currDate.getTime()) / 1000,\n );\n\n if (diffDate > 0) {\n api.buckets\n .shareObject(bucketName, {\n prefix: encodeURLString(dataObject.name || \"\"),\n version_id: versionID,\n expires: selectedDate !== \"\" ? `${diffDate}s` : \"\",\n })\n .then((res) => {\n setShareURL(res.data);\n setIsLoadingFile(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setShareURL(\"\");\n setIsLoadingFile(false);\n });\n }\n }\n }, [\n dataObject,\n selectedDate,\n bucketName,\n dateValid,\n setShareURL,\n dispatch,\n distributedSetup,\n isLoadingVersion,\n versionID,\n ]);\n\n return (\n \n }\n modalOpen={open}\n onClose={() => {\n closeModalAndRefresh();\n }}\n >\n {isLoadingVersion && (\n \n \n \n )}\n {!isLoadingVersion && (\n \n \n This is a temporary URL with integrated access credentials for\n sharing objects valid for up to 7 days.\n
\n
\n The temporary URL expires after the configured time limit.\n \n
\n \n \n \n \n \n {\n dispatch(\n setModalSnackMessage(\"Share URL Copied to clipboard\"),\n );\n }}\n disabled={shareURL === \"\" || isLoadingFile}\n style={{\n width: \"28px\",\n height: \"28px\",\n padding: \"0px\",\n }}\n icon={}\n />\n \n }\n >\n {shareURL}\n \n \n
\n )}\n \n
\n );\n};\n\nexport default ShareFile;\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 { ProgressBar, Grid, Box, InformativeMessage } from \"mds\";\nimport get from \"lodash/get\";\nimport { BucketObjectItem } from \"../ListObjects/types\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { api } from \"../../../../../../api\";\n\ninterface IPreviewFileProps {\n bucketName: string;\n object: BucketObjectItem | null;\n isFullscreen?: boolean;\n}\n\nconst PreviewFile = ({\n bucketName,\n object,\n isFullscreen = false,\n}: IPreviewFileProps) => {\n const [loading, setLoading] = useState(true);\n\n const [metaData, setMetaData] = useState(null);\n const [isMetaDataLoaded, setIsMetaDataLoaded] = useState(false);\n\n const objectName = object?.name || \"\";\n\n const fetchMetadata = useCallback(() => {\n if (!isMetaDataLoaded) {\n const encodedPath = encodeURLString(objectName);\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: encodedPath,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n setIsMetaDataLoaded(true);\n setMetaData(metadata);\n })\n .catch((err) => {\n console.error(\n \"Error Getting Metadata Status: \",\n err,\n err?.detailedError,\n );\n setIsMetaDataLoaded(true);\n });\n }\n }, [bucketName, objectName, isMetaDataLoaded]);\n\n useEffect(() => {\n if (bucketName && objectName) {\n fetchMetadata();\n }\n }, [bucketName, objectName, fetchMetadata]);\n\n let path = \"\";\n\n if (object) {\n const encodedPath = encodeURLString(object.name);\n let basename = document.baseURI.replace(window.location.origin, \"\");\n path = `${window.location.origin}${basename}api/v1/buckets/${bucketName}/objects/download?preview=true&prefix=${encodedPath}`;\n if (object.version_id) {\n path = path.concat(`&version_id=${object.version_id}`);\n }\n }\n\n let objectType: AllowedPreviews = previewObjectType(metaData, objectName);\n\n const iframeLoaded = () => {\n setLoading(false);\n };\n\n return (\n \n {objectType !== \"none\" && loading && (\n \n \n \n )}\n {isMetaDataLoaded ? (\n \n {objectType === \"video\" && (\n \n \n \n )}\n {objectType === \"audio\" && (\n \n \n \n )}\n {objectType === \"image\" && (\n \n )}\n {objectType === \"none\" && (\n
\n \n
\n )}\n {objectType !== \"none\" &&\n objectType !== \"video\" &&\n objectType !== \"audio\" &&\n objectType !== \"image\" && (\n
\n \n File couldn't be loaded. Please try Download instead\n \n
\n )}\n \n ) : null}\n
\n );\n};\nexport default PreviewFile;\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 ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport PreviewFileContent from \"./PreviewFileContent\";\nimport { BucketObjectItem } from \"../ListObjects/types\";\nimport { ObjectPreviewIcon } from \"mds\";\n\ninterface IPreviewFileProps {\n open: boolean;\n bucketName: string;\n object: BucketObjectItem | null;\n onClosePreview: () => void;\n}\n\nconst PreviewFileModal = ({\n open,\n bucketName,\n object,\n onClosePreview,\n}: IPreviewFileProps) => {\n return (\n \n }\n >\n \n \n \n );\n};\n\nexport default PreviewFileModal;\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, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

(\n WrappedComponent: ComponentType

,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\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, { useState } from \"react\";\nimport { Button, CopyIcon, InputBox, Box, breakPoints } from \"mds\";\n\nconst KeyRevealer = ({ value }: { value: string }) => {\n const [shown, setShown] = useState(false);\n\n return (\n \n {}}\n value={value}\n overlayIcon={}\n readOnly={true}\n overlayAction={() => navigator.clipboard.writeText(value)}\n />\n\n setShown(!shown)}\n label={\"Show/Hide\"}\n />\n \n );\n};\n\nexport default KeyRevealer;\n"],"names":["_ref","modalOpen","onClose","bucket","prefilledRoute","dispatch","useAppDispatch","prefix","setPrefix","useState","selectedAccess","setSelectedAccess","useEffect","_jsx","ModalWrapper","title","titleIcon","AddAccessRuleIcon","children","_jsxs","FormLayout","withBorders","containerPadding","InputBox","value","label","id","name","placeholder","onChange","e","target","tooltip","Select","options","disabled","helpTip","Fragment","helpTipPlacement","Grid","item","xs","sx","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","resetForm","trim","createProcess","api","setAccessRuleWithBucket","access","then","res","setSnackBarMessage","catch","setErrorSnackMessage","errorToHandler","error","extractFileExtn","resourceStr","match","getSessionGrantsWildCard","sessionGrants","uploadPath","scopes","arguments","length","undefined","grantsWithExtension","Object","keys","reduce","acc","grantKey","includes","filter","sessionGrantKey","hasScope","some","actionKey","find","scopeKey","wildCardMatch","indexOf","scopeActionKey","substring","isUploadPathMatching","concat","CreatePathModal","withSuspense","React","BreadcrumbsMain","styled","div","display","paddingRight","alignItems","breakPoints","lg","margin","bucketName","internalPaths","hidePathButton","additionalOptions","navigate","useNavigate","rewindEnabled","useSelector","state","objectBrowser","rewind","versionsMode","versionedFile","anonymousMode","system","createFolderOpen","setCreateFolderOpen","canCreateSubpath","setCanCreateSubpath","putObjectPermScopes","IAM_SCOPES","S3_PUT_OBJECT","S3_PUT_ACTIONS","console","session","permissions","paths","splitPaths","split","path","lastBreadcrumbsIndex","pathToCheckPerms","sessionGrantWildCards","forEach","grant","canCreatePath","hasPermission","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeURLString","className","style","cursor","whiteSpace","safeDecodeURIComponent","Link","to","setVersionsModeEnabled","status","objectName","toString","versionsItem","listBreadcrumbs","folderName","closeAddFolderModal","limitedSubPath","Breadcrumbs","goBackFunction","prevPath","CopyToClipboard","text","icon","CopyIcon","width","height","fill","marginTop","color","border","marginRight","Box","Tooltip","permissionTooltipHelper","NewPathIcon","marginBottom","justifyContent","fontSize","fontWeight","flexDirection","flexWrap","isVersionedMode","downloadSelected","createAsyncThunk","async","getState","rejectWithValue","downloadObject","object","identityDownload","Date","getTime","Math","random","ID","makeid","downloadCall","download","version_id","size","progress","updateProgress","instanceID","completeObject","msg","failObject","cancelObjectInList","storeCallForObjectWithID","setNewObject","done","percentage","waitingForFile","failed","cancelled","errorMessage","selectedObjects","itemsToDownload","filterFunction","currValue","records","getClientOS","toLowerCase","setDownloadRenameModal","fileName","DateTime","now","toFormat","multiObjList","dwList","bi","isDeleted","delete_flag","push","log","downloadSelectedAsZip","openPreview","_","_ref2","fileObject","findFunction","setSelectedPreview","setPreviewOpen","openShare","_ref3","setShareFileModalOpen","openAnonymousAccess","_ref4","endsWith","setAnonymousAccessOpen","forceDisable","uploadFileFunction","uploadFolderFunction","overrideStyles","anchorEl","setAnchorEl","uploadOptionsOpen","uploadOptionsSetOpen","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","TooltipWrapper","event","currentTarget","UploadIcon","DropdownSelector","UploadFolderIcon","selectedOption","onSelect","nValue","hideTriggerAction","open","anchorOrigin","useAnchorWidth","closePanel","borderColor","borderWidth","borderStyle","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","transitionDuration","overflowX","overflowY","position","opacity","marginLeft","minWidth","borderLeftWidth","ClosePanelIcon","right","top","padding","backgroundColor","_object$name","isWinOs","setLongFileOpen","strings","minHeight","overflow","textOverflow","replaceUnicodeChar","extensionToIcon","FileVideoIcon","extensions","FileMusicIcon","FilePdfIcon","FilePptIcon","FileXlsIcon","FileLockIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileTxtIcon","FileZipIcon","FileBookIcon","FileImageIcon","displayFileIconName","element","returnOnlyIcon","elementString","FileNonType","FolderBrowserIcon","lowercaseElement","etc","ext","FileMissingIcon","splitItem","IconWithLabel","metaData","metaKeys","renderItem","Array","isArray","itemRendererFn","maxHeight","months","days","from","num","currentYear","getFullYear","years","numYear","forwardRef","ref","disableOptions","borderBottom","onDateChange","useImperativeHandle","resetDate","month","setMonth","day","setDay","year","setYear","valueSplit","parseInt","isValid","dateString","validDate","currentDate","parse","isNaN","parsedMonth","parsedDay","monthForString","dayForString","parsedDate","toISOString","isDateDisabled","monthForDropDown","daysForDrop","yearsForDrop","gap","InputLabel","htmlFor","placement","HelpIcon","newValue","closeModalAndRefresh","objectInfo","retentionConfig","statusEnabled","setStatusEnabled","setType","date","setDate","isDateValid","setIsDateValid","isSaving","setIsSaving","alreadyConfigured","setAlreadyConfigured","retention_mode","mode","ObjectRetentionMode","Governance","retention_until_date","valueDate","getMonth","getDate","dateElement","useRef","current","showSwitcher","noValidate","autoComplete","onSubmit","preventDefault","Switch","checked","indicatorLabels","RadioGroup","currentValue","selectorOptions","Compliance","DateSelector","saveNewRetentionPolicy","selectedObject","versionId","expireDate","addRetention","buckets","putObjectRetention","expires","err","setModalErrorSnackMessage","disableRetention","deleteObjectRetention","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","versioningInfo","selectedVersion","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","detailedError","deleteVersions","setDeleteVersions","bypassGovernance","setBypassGovernance","canBypass","S3_BYPASS_GOVERNANCE_RETENTION","ConfirmDialog","confirmText","isOpen","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","recursive","decodeURLString","confirmationContent","description","actualInfo","legalHoldEnabled","setLegalHoldEnabled","get","putObjectLegalHold","ObjectLegalHoldStatus","Enabled","Disabled","DeleteTag","b","theme","_actualInfo$name","onCloseAndUpdate","distributedSetup","selDistSet","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","deleteEnabled","setDeleteEnabled","deleteKey","setDeleteKey","deleteLabel","setDeleteLabel","currentTags","tags","currTagKeys","allPathData","currentItem","pop","tagsFor","plural","iconColor","DisabledIcon","EditTagIcon","container","cancelDelete","deleteTagProcess","cleanObject","verID","putObjectTags","SecureComponent","S3_GET_OBJECT_TAGGING","S3_GET_ACTIONS","resource","flexFlow","tagKey","tag","S3_DELETE_OBJECT_TAGGING","errorProps","deleteIcon","onDelete","Tag","onDeleteTag","S3_PUT_OBJECT_TAGGING","SectionTitle","AddNewTagIcon","separator","addTagProcess","newTag","newTagList","closeInspectModalAndRefresh","inspectOpen","inspectPath","volumeName","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","InspectMenuIcon","file","volume","fetch","url","method","makeRequest","ok","resErr","json","message","code","blob","filename","headers","decryptKey","getCookieValue","performDownload","onCloseDecKeyModal","deleteCookie","PasswordKeyIcon","KeyRevealer","closeModal","newFileName","setNewFileName","acceptLongName","setAcceptLongName","EditIcon","doDownload","emptyFile","is_latest","last_modified","legal_hold_status","locking","onClosePanel","loadingObjectInfo","shareFileModalOpen","retentionModalOpen","setRetentionModalOpen","tagModalOpen","setTagModalOpen","legalholdOpen","setLegalholdOpen","inspectModalOpen","setInspectModalOpen","setActualInfo","allInfoElements","setAllInfoElements","objectToShare","setObjectToShare","versions","setVersions","setDeleteOpen","previewOpen","totalVersionsSize","setTotalVersionsSize","longFileOpen","setMetaData","loadMetadata","setLoadingMetadata","objectNameArray","infoElement","el","is_delete_marker","listObjects","with_versions","result","data","objects","tVersionSize","resInfo","setLoadingObjectInfo","getObjectMetadata","metadata","tagKeys","loaderForContainer","textAlign","Loader","objectResources","canSetLegalHold","S3_PUT_OBJECT_LEGAL_HOLD","canSetTags","canChangeRetention","S3_GET_OBJECT_RETENTION","S3_PUT_OBJECT_RETENTION","canInspect","ADMIN_INSPECT_DATA","canChangeVersioning","S3_GET_BUCKET_VERSIONING","S3_PUT_BUCKET_VERSIONING","S3_GET_OBJECT_VERSION","canGetObject","S3_GET_OBJECT","canDelete","S3_DELETE_OBJECT","objectType","previewObjectType","multiActionButtons","action","DownloadIcon","ShareIcon","PreviewIcon","LegalHoldIcon","openRetentionModal","RetentionIcon","TagsIcon","VersionsIcon","ShareFile","closeShareModal","dataObject","SetRetention","updateInfo","DeleteObject","closeAndReload","setLoadingVersions","setSelectedVersion","SetLegalHoldModal","reload","PreviewFileModal","content_type","onClosePreview","TagsModal","reloadObjectData","InspectObject","RenameLongFileName","closeFileOpen","textTransform","ActionsList","items","DeleteIcon","iconLocation","fullWidth","SimpleHeader","ObjectInfoIcon","overflowWrap","niceBytes","niceBytesInt","lastModified","currentTime","modifiedTime","difTime","formatTime","niceDaysInt","calculateLastModifyTime","etag","S3_GET_OBJECT_LEGAL_HOLD","MetadataIcon","ObjectMetaData","versionToRestore","objectPath","restoreOpen","restoreLoading","setRestoreLoading","RecoverIcon","restoreVersion","putObjectRestore","restoreLocalObjectList","confirmButtonProps","bgColor","FileVersionStyled","content","left","borderBottomColor","maxWidth","versionInfo","isSelected","checkable","isChecked","onCheck","onShare","onDownload","onRestore","onPreview","globalClick","key","disableButtons","versionItemButtons","pill","fromISO","md","Checkbox","stopPropagation","SpecificVersionPill","button","IconButton","setDeleteLoading","typeConfirm","setTypeConfirm","deleteObject","non_current_versions","bypass","selectedVersions","selectedObjectsRequest","versionID","deleteMultipleObjects","all_versions","searchVersions","loadingVersions","restoreVersionOpen","setRestoreVersionOpen","setRestoreVersion","sortValue","setSortValue","deleteNonCurrentOpen","setDeleteNonCurrentOpen","selectEnabled","setSelectEnabled","selectedItems","setSelectedItems","delSelectedVOpen","setDelSelectedVOpen","decodedInternalPaths","filteredPrefixes","onShareItem","onPreviewItem","onRestoreItem","onDownloadItem","onGlobalClick","filteredRecords","version","totalSpace","sort","a","dateA","dateB","onCheckVersion","filteredItems","cloneState","RestoreFileVersion","DeleteNonCurrent","reloadAfterDelete","DeleteSelectedVersions","reloadOnComplete","ProgressBar","BrowserBreadcrumbs","ScreenTitle","subTitle","actions","SelectMultipleIcon","DeleteNonCurrentIcon","noLabelMinWidth","bottomBorder","flexGrow","List","containerStyle","rowCount","rowHeight","rowRenderer","isScrolling","isVisible","versOrd","FileVersionItem","displayParsedDate","currTime","objectTime","hasSame","displayNiceBytes","String","listModeColumns","elementKey","renderFunction","enableSort","renderFullObject","rewindModeColumns","ListObjectsTable","params","useParams","sortDirection","setSortDirection","currentSortField","setCurrentSortField","detailsOpen","objectDetailsOpen","requestInProgress","features","selFeatures","obOnly","searchObjects","connectionError","displayListObjects","S3_LIST_BUCKET","S3_ALL_LIST_BUCKET","sortASC","sortListObjects","payload","reverse","tableActions","idElement","newPath","setSelectedObjects","setObjectDetailsView","setSelectedObjectView","sendOnlyId","customPaperHeight","DataTable","itemActions","columns","entityName","idField","targetD","elements","customEmptyMessage","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","sortBy","setReloadObjectsList","onSelectAll","selectAllItems","rowStyle","_payload$index","noBackground","FilterObjectsSB","SearchBox","setSearchObjects","DeleteMultipleObjects","RewindEnable","baseDnDStyle","outline","activeDnDStyle","acceptDnDStyle","ListObjects","_downloadRenameModal$","location","useLocation","bucketToRewind","showDeleted","selectedInternalPaths","simplePath","versioningConfig","lockingEnabled","downloadRenameModal","selectedPreview","anonymousAccessOpen","_state$objectBrowser","loadingBucket","selBucketDetailsLoading","bucketInfo","selBucketDetailsInfo","deleteMultipleOpen","setDeleteMultipleOpen","rewindSelect","setRewindSelect","iniLoad","setIniLoad","canShareFile","setCanShareFile","canPreviewFile","setCanPreviewFile","quota","setQuota","isMetaDataLoaded","setIsMetaDataLoaded","isVersioningApplied","pathSegment","pathname","pageTitle","currentPath","i","fileUpload","folderUpload","pathAsResourceInPolicy","allowedFileExtensions","cv","extension","Set","getPolicyAllowedFileExtensions","canDownload","canUpload","canSetAnonymousAccess","S3_GET_BUCKET_POLICY","S3_PUT_BUCKET_POLICY","isSelObjectDelMarker","checkForDelMarker","isObjDelMarker","obj","fetchMetadata","useCallback","encodedPath","resetRewind","setAttribute","isPrefix","getBucketQuota","quotaVals","detailedMessage","setBucketDetailsLoad","setBucketInfo","getBucketRetentionConfig","setRetentionConfig","handleUploadButton","files","newFiles","uploadObject","folderPath","pathPrefix","upload","uploadPromise","Promise","resolve","reject","uploadUrl","blobFile","Blob","filePath","fileWebkitRelativePath","relativeFolderPath","prefixPath","finalFolderPath","pathClean","startsWith","identity","xhr","XMLHttpRequest","setRequestHeader","areMultipleFiles","errorMessages","withCredentials","onload","removeTrace","response","JSON","addEventListener","floor","loaded","total","onerror","onloadend","onabort","formData","FormData","append","storeFormDataWithID","uploadFilePromises","openList","allSettled","results","errors","totalFiles","successUploadedFiles","onDrop","acceptedFiles","newFolderPath","allowedFiles","fileExtn","getRootProps","getInputProps","isDragActive","isDragAccept","useDropzone","noClick","dndStyles","useMemo","forceRefresh","splitURLS","URLItem","createdTime","creation_date","downloadToolTip","AccessRuleIcon","refresh","versioning","rewindCloseModal","closePreviewWindow","closeRenameModal","AddAccessRule","closeAddAccessRule","PageLayout","paddingBottom","BucketsIcon","Badge","dotOnly","invisible","HistoryIcon","RefreshIcon","resetMessages","multiple","accept","UploadFilesButton","closeMenu","click","borderTop","VersionsNavigator","setDeletedAction","setShowDeletedObjects","DetailsListPanel","ObjectDetailPanel","configureBucketAllowed","S3_GET_BUCKET_ENCRYPTION_CONFIGURATION","S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION","S3_DELETE_BUCKET","S3_GET_BUCKET_NOTIFICATIONS","S3_PUT_BUCKET_NOTIFICATIONS","S3_GET_REPLICATION_CONFIGURATION","S3_PUT_REPLICATION_CONFIGURATION","S3_GET_LIFECYCLE_CONFIGURATION","S3_PUT_LIFECYCLE_CONFIGURATION","ADMIN_GET_BUCKET_QUOTA","ADMIN_SET_BUCKET_QUOTA","S3_PUT_BUCKET_TAGGING","S3_GET_BUCKET_TAGGING","S3_LIST_BUCKET_VERSIONS","S3_GET_BUCKET_POLICY_STATUS","S3_DELETE_BUCKET_POLICY","searchBar","setSearchVersions","setHelpName","AutoColorIcon","ObjectManagerButton","PageHeaderWrapper","BackLink","IAM_PAGES","OBJECT_BROWSER_VIEW","IAM_PERMISSIONS","IAM_ROLES","BUCKET_ADMIN","SettingsIcon","HelpMenu","middleComponent","BrowserHandler","loadingVersioning","rewindDate","dateToRewind","loadingLocking","reloadObjectsList","initWSRequest","rewindMode","pathLoad","forceLoad","searchPath","setRequestInProgress","decodedIPaths","setLoadingVersioning","setLoadingLocking","getBucketVersioning","setIsVersioned","getBucketObjectLockingStatus","setLockingEnabled","object_locking_enabled","OBHeader","initialDate","maxDays","entity","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","setValidDate","dateSelected","setDateSelected","calculateNewTime","hours","minutes","fromJSDate","plus","formattedDate","valid","extraStyles","paddingLeft","min","max","LinkIcon","shareURL","setShareURL","isLoadingVersion","setIsLoadingVersion","isLoadingFile","setIsLoadingFile","selectedDate","setSelectedDate","dateValid","setDateValid","setVersionID","latestVersion","elem","slDate","currDate","diffDate","ceil","shareObject","DaysSelector","dateChanged","newDate","ReadBox","actionButton","setModalSnackMessage","isFullscreen","loading","setLoading","basename","document","baseURI","replace","window","origin","iframeLoaded","flex","autoPlay","controls","muted","playsInline","onPlay","src","alt","onLoad","InformativeMessage","allowTransparency","wideLimit","ObjectPreviewIcon","PreviewFileContent","WrappedComponent","fallback","props","Suspense","shown","setShown","sm","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2603.e6ac8963.chunk.js b/portal-ui/build/static/js/2603.e6ac8963.chunk.js deleted file mode 100644 index c3446ca4a..000000000 --- a/portal-ui/build/static/js/2603.e6ac8963.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2603,4619],{94619:function(e,t,n){n.r(t);var o=n(29439),i=n(72791),r=n(56028),a=n(29945),s=n(31776),c=n(82342),l=n(23814),d=n(87995),u=n(44690),h=n(80184);t.default=function(e){var t=e.modalOpen,n=e.onClose,f=e.bucket,x=e.prefilledRoute,m=(0,u.TL)(),p=(0,i.useState)(""),v=(0,o.Z)(p,2),j=v[0],b=v[1],g=(0,i.useState)("readonly"),_=(0,o.Z)(g,2),S=_[0],T=_[1];(0,i.useEffect)((function(){x&&b(x)}),[x]);return(0,h.jsx)(r.Z,{modalOpen:t,title:"Add Anonymous Access Rule",onClose:n,titleIcon:(0,h.jsx)(a.sR0,{}),children:(0,h.jsxs)(a.ltY,{withBorders:!1,containerPadding:!1,children:[(0,h.jsx)(a.Wzg,{value:j,label:"Prefix",id:"prefix",name:"prefix",placeholder:"Enter Prefix",onChange:function(e){b(e.target.value)},tooltip:"Enter '/' to apply the rule to all prefixes and objects at the bucket root. Do not include the wildcard asterisk '*' as part of the prefix *unless* it is an explicit part of the prefix name. The Console automatically appends an asterisk to the appropriate sections of the resulting IAM policy."}),(0,h.jsx)(a.PhF,{id:"access",name:"Access",onChange:function(e){T(e)},label:"Access",value:S,options:[{label:"readonly",value:"readonly"},{label:"writeonly",value:"writeonly"},{label:"readwrite",value:"readwrite"}],disabled:!1,helpTip:(0,h.jsx)(i.Fragment,{children:"Select the desired level of access available to unauthenticated Users"}),helpTipPlacement:"right"}),(0,h.jsxs)(a.rjZ,{item:!0,xs:12,sx:l.ID.modalButtonBar,children:[(0,h.jsx)(a.zxk,{id:"clear",type:"button",variant:"regular",onClick:function(){b(""),T("readonly")},label:"Clear"}),(0,h.jsx)(a.zxk,{id:"add-access-save",type:"submit",variant:"callAction",disabled:""===j.trim(),onClick:function(){s.h.bucket.setAccessRuleWithBucket(f,{prefix:j,access:S}).then((function(e){m((0,d.y1)("Access Rule added successfully")),n()})).catch((function(e){m((0,d.Ih)((0,c.g)(e.error))),n()}))},label:"Save"})]})]})})}},32603:function(e,t,n){n.r(t),n.d(t,{default:function(){return et}});var o=n(72791),i=n(78687),r=n(57689),a=n(31776),s=n(44690),c=n(56087),l=n(45248),d=n(54756),u=n(1413),h=n(93433),f=n(29439),x=n(26181),m=n.n(x),p=n(29945),v=n(82342),j=n(43954),b=n(99779),g=n(4942),_=n(78029),S=n.n(_),T=n(17691),w=n(11087),y=n(38442),C=n(75578),E=n(87995),O=function(e){return(e.match(/\.([^.]*?)(?=\?|#|$)/)||[])[1]},F=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=Object.keys(e).reduce((function(n,o){return O(o)&&o.includes(t)&&(n[o]=e[o]),n}),{});return Object.keys(o).filter((function(e){var i=o[e].some((function(e){return n.find((function(t){var n=!1;if(-1!==t.indexOf("*")){var o=t.substring(0,t.length-1);n=e.includes(o)}return n||e===t}))})),r=e.substring(0,e.indexOf("/*."))==="arn:aws:s3:::".concat(t);return i&&(r&&"arn:aws:s3:::*"!==e)}))},I=n(80184),k=(0,C.Z)(o.lazy((function(){return n.e(2185).then(n.bind(n,62185))}))),N=T.ZP.div((function(){return{display:"flex","& .additionalOptions":(0,g.Z)({paddingRight:"10px",display:"flex",alignItems:"center"},"@media (max-width: ".concat(p.Egj.lg,"px)"),{display:"none"}),"& .slashSpacingStyle":{margin:"0 5px"}}})),Z=function(e){var t=e.bucketName,n=e.internalPaths,a=e.hidePathButton,u=e.additionalOptions,x=(0,s.TL)(),m=(0,r.s0)(),v=(0,i.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),j=(0,i.v9)((function(e){return e.objectBrowser.versionsMode})),b=(0,i.v9)((function(e){return e.objectBrowser.versionedFile})),_=(0,i.v9)((function(e){return e.system.anonymousMode})),T=(0,o.useState)(!1),C=(0,f.Z)(T,2),O=C[0],Z=C[1],B=[c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],L=(0,i.v9)((function(e){return e.console.session&&e.console.session.permissions||{}})),A=n;""!==n&&(A="/".concat(n));var D=A.split("/").filter((function(e){return""!==e})),P=D.length-1,R=t+A||t,M=F(L,R,B),U=(0,y.F)([R].concat((0,h.Z)(M)),B)||_,G=D.map((function(e,n){var i="".concat(D.slice(0,n+1).join("/"),"/"),r="/browser/".concat(t,"/").concat(i?"".concat((0,l.LL)(i)):"");return n===P&&e===b?null:(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)("span",{className:"slashSpacingStyle",children:"/"}),n===P?(0,I.jsx)("span",{style:{cursor:"default",whiteSpace:"pre"},children:(0,l.eC)(e)}):(0,I.jsx)(w.rU,{style:{whiteSpace:"pre"},to:r,onClick:function(){x((0,d.db)({status:!1,objectName:""}))},children:(0,l.eC)(e)})]},"breadcrumbs-".concat(n.toString()))})),z=[];j&&(z=[(0,I.jsx)(o.Fragment,{children:(0,I.jsxs)("span",{children:[(0,I.jsx)("span",{className:"slashSpacingStyle",children:"/"}),b," - Versions"]})},"breadcrumbs-versionedItem")]);var K=[(0,I.jsx)(o.Fragment,{children:(0,I.jsx)(w.rU,{to:"/browser/".concat(t),onClick:function(){x((0,d.db)({status:!1,objectName:""}))},children:t})},"breadcrumbs-root-path")].concat((0,h.Z)(G),(0,h.Z)(z));return(0,I.jsxs)(o.Fragment,{children:[(0,I.jsxs)(N,{children:[O&&(0,I.jsx)(k,{modalOpen:O,bucketName:t,folderName:n,onClose:function(){Z(!1)}}),(0,I.jsx)(p.OoM,{sx:{whiteSpace:"pre"},goBackFunction:function(){if(j)x((0,d.db)({status:!1,objectName:""}));else{if(0===D.length)return void m("/browser");var e=D.slice(0,-1);m("/browser/".concat(t).concat(e.length>0?"/".concat((0,l.LL)("".concat(e.join("/"),"/"))):""))}},additionalOptions:(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)(S(),{text:"".concat(t,"/").concat(D.join("/")),children:(0,I.jsx)(p.zxk,{id:"copy-path",icon:(0,I.jsx)(p.TIy,{style:{width:"12px",height:"12px",fill:"#969FA8",marginTop:-1}}),variant:"regular",onClick:function(){x((0,E.y1)("Path copied to clipboard"))},style:{width:"28px",height:"28px",color:"#969FA8",border:"#969FA8 1px solid",marginRight:5}})}),(0,I.jsx)(p.xuv,{className:"additionalOptions",children:u})]}),children:K}),!a&&(0,I.jsx)(p.ua7,{tooltip:U?"Choose or create a new path":(0,c.MK)([c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],"create a new path"),children:(0,I.jsx)(p.zxk,{id:"new-path",onClick:function(){Z(!0)},disabled:!_&&(v||!U),icon:(0,I.jsx)(p.N$q,{style:{fill:"#969FA8"}}),style:{whiteSpace:"nowrap"},variant:"regular",label:"Create new path"})})]}),(0,I.jsx)(p.xuv,{sx:(0,g.Z)({display:"none",marginTop:15,marginBottom:5,justifyContent:"flex-start","& > div":{fontSize:12,fontWeight:"normal",flexDirection:"row",flexWrap:"nowrap"}},"@media (max-width: ".concat(p.Egj.lg,"px)"),{display:"flex"}),children:u})]})},B=n(47922),L=function(e){return"Enabled"===e||"Suspended"===e},A=n(76610),D=n(9859),P=n(74165),R=n(15861),M=n(96382),U=(0,M.hg)("objectBrowser/downloadSelected",function(){var e=(0,R.Z)((0,P.Z)().mark((function e(t,n){var o,i,r,a,s,c,u,h;return(0,P.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.getState,n.rejectWithValue,i=n.dispatch,r=o(),a=function(e){var n=(0,l.LL)("".concat(t,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),o=(0,A.YO)(8),r=(0,B.LR)(t,(0,l.LL)(e.name),e.version_id,e.size,null,o,(function(e){i((0,d.RO)({instanceID:n,progress:e}))}),(function(){i((0,d.oK)(n))}),(function(e){i((0,d.qJ)({instanceID:n,msg:e}))}),(function(){i((0,d.Im)(n))}),(function(){i((0,E.y1)("File download will be handled directly by the browser."))}));(0,A.EN)(o,r),i((0,d.Mc)({ID:o,bucketName:t,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))},0===r.objectBrowser.selectedObjects.length){e.next=26;break}if(s=[],c=function(e){return r.objectBrowser.selectedObjects.includes(e.name)},1!==(s=r.objectBrowser.records.filter(c)).length){e.next=16;break}if(!(s[0].name.length>200&&(0,l.mv)().toLowerCase().includes("win"))){e.next=13;break}return i((0,d.$y)(s[0])),e.abrupt("return");case 13:a(s[0]);case 14:e.next=26;break;case 16:if(1!==s.length){e.next=20;break}a(s[0]),e.next=26;break;case 20:if(!(s.length>1)){e.next=26;break}return u="".concat(b.ou.now().toFormat("LL-dd-yyyy-HH-mm-ss"),"_files_list.zip"),h=s.reduce((function(e,t){var n=null===t||void 0===t?void 0:t.delete_flag;return t&&!n?e.push(t.name):console.log("Skipping ".concat(null===t||void 0===t?void 0:t.name," from download.")),e}),[]),e.next=25,(0,B.Sv)(t,h,u);case 25:return e.abrupt("return");case 26:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),G=(0,M.hg)("objectBrowser/openPreview",function(){var e=(0,R.Z)((0,P.Z)().mark((function e(t,n){var o,i,r,a,s;return(0,P.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=n.getState,n.rejectWithValue,i=n.dispatch,1===(r=o()).objectBrowser.selectedObjects.length&&(s=function(e){return r.objectBrowser.selectedObjects.includes(e.name)},(a=r.objectBrowser.records.find(s))&&(i((0,d.eP)(a)),i((0,d.ei)(!0))));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),z=(0,M.hg)("objectBrowser/openShare",function(){var e=(0,R.Z)((0,P.Z)().mark((function e(t,n){var o,i,r,a,s;return(0,P.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=n.getState,n.rejectWithValue,i=n.dispatch,1===(r=o()).objectBrowser.selectedObjects.length&&(s=function(e){return r.objectBrowser.selectedObjects.includes(e.name)},(a=r.objectBrowser.records.find(s))&&(i((0,d.eP)(a)),i((0,d.Qf)(!0))));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),K=(0,M.hg)("objectBrowser/openAnonymousAccess",function(){var e=(0,R.Z)((0,P.Z)().mark((function e(t,n){var o,i,r;return(0,P.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=n.getState,i=n.dispatch,1===(r=o()).objectBrowser.selectedObjects.length&&r.objectBrowser.selectedObjects[0].endsWith("/")&&i((0,d.xV)(!0));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),W=n(27454),H=function(e){var t=e.uploadPath,n=e.bucketName,r=e.forceDisable,a=void 0!==r&&r,s=e.uploadFileFunction,l=e.uploadFolderFunction,d=e.overrideStyles,u=void 0===d?{}:d,x=(0,o.useState)(null),m=(0,f.Z)(x,2),v=m[0],j=m[1],b=(0,o.useState)(!1),g=(0,f.Z)(b,2),_=g[0],S=g[1],T=(0,i.v9)((function(e){return e.system.anonymousMode})),w=(0,i.v9)((function(e){return e.console.session&&e.console.session.permissions||{}})),C=[c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],E=F(w,t,C),O=Boolean(v),k=function(){j(null)},N=(0,y.F)([t].concat((0,h.Z)(E)),C)||T,Z=(0,y.F)([n].concat((0,h.Z)(E)),C,!1,!0),B=N||Z;return(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)(W.Z,{tooltip:B?"Upload Files":(0,c.MK)([c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],"upload files to this bucket"),children:(0,I.jsx)(p.zxk,{id:"upload-main","aria-controls":"upload-main-menu","aria-haspopup":"true","aria-expanded":O?"true":void 0,onClick:function(e){S(!_),j(e.currentTarget)},label:"Upload",icon:(0,I.jsx)(p.rG2,{}),variant:"callAction",disabled:a||!B,sx:u})}),(0,I.jsx)(p.udT,{id:"upload-main-menu",options:[{label:"Upload File",icon:(0,I.jsx)(p.rG2,{}),value:"file",disabled:!N||a},{label:"Upload Folder",icon:(0,I.jsx)(p.oXh,{}),value:"folder",disabled:!Z||a}],selectedOption:"",onSelect:function(e){"folder"!==e?s(k):l(k)},hideTriggerAction:function(){S(!1)},open:_,anchorEl:v,anchorOrigin:"end",useAnchorWidth:!1})]})},J=function(e){var t=e.open,n=e.closePanel,o=e.className,i=void 0===o?"":o,r=e.children;return(0,I.jsxs)(p.xuv,{id:"details-panel",sx:{borderColor:"#EAEDEE",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}}},className:"".concat(t?"open":""," ").concat(i),children:[(0,I.jsx)(p.zxk,{variant:"text",id:"close-details-list",onClick:n,icon:(0,I.jsx)(p.oto,{}),sx:{position:"absolute",right:5,top:18,padding:0,height:14,"&:hover:not(:disabled)":{backgroundColor:"transparent"}}}),r]})},V=function(e,t,n,o){var i,r=(0,l.LL)("".concat(t,"-").concat(o.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),a=(0,l.mv)().toLowerCase().includes("win");if(((null===(i=o.name)||void 0===i?void 0:i.length)||0)>200&&a)e((0,d.Hg)(!0));else{var s=(0,A.YO)(8),c=(0,B.LR)(t,n,o.version_id,o.size||0,null,s,(function(t){e((0,d.RO)({instanceID:r,progress:t}))}),(function(){e((0,d.oK)(r))}),(function(t){e((0,d.qJ)({instanceID:r,msg:t}))}),(function(){e((0,d.Im)(r))}),(function(){e((0,E.y1)("File download will be handled directly by the browser."))}));(0,A.EN)(s,c),e((0,d.Mc)({ID:s,bucketName:t,done:!1,instanceID:r,percentage:0,prefix:o.name||"",type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))}},Y=n(37762),q=function(e){var t=e.icon,n=e.strings;return(0,I.jsxs)(p.xuv,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:16,height:16,marginRight:4,minWidth:16,minHeight:16},"& .fileNameText":{whiteSpace:"pre",overflow:"hidden",textOverflow:"ellipsis"}},children:[t,(0,I.jsx)("span",{className:"fileNameText",children:(0,l.e3)(n[n.length-1])})]})},$=[{icon:(0,I.jsx)(p.n9O,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,I.jsx)(p.mYf,{}),extensions:["mp3","m4a","aac"]},{icon:(0,I.jsx)(p.UU9,{}),extensions:["pdf"]},{icon:(0,I.jsx)(p.hjP,{}),extensions:["ppt","pptx"]},{icon:(0,I.jsx)(p.hz9,{}),extensions:["xls","xlsx"]},{icon:(0,I.jsx)(p.xDw,{}),extensions:["cer","crt","pem"]},{icon:(0,I.jsx)(p.jG9,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,I.jsx)(p.NqG,{}),extensions:["cfg","yaml"]},{icon:(0,I.jsx)(p.OkY,{}),extensions:["sql"]},{icon:(0,I.jsx)(p.ZAy,{}),extensions:["ttf","otf"]},{icon:(0,I.jsx)(p.p2x,{}),extensions:["doc","docx","txt","rtf"]},{icon:(0,I.jsx)(p.xhr,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,I.jsx)(p.rtI,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,I.jsx)(p.q$4,{}),extensions:["jpeg","jpg","gif","tiff","png","heic","dng"]}],Q=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e,o=(0,I.jsx)(p.MoH,{});e.endsWith("/")&&(o=(0,I.jsx)(p.BI,{}),n=e.slice(0,-1));for(var i=e.toLowerCase(),r=0,a=$;r"}].concat((0,h.Z)(ie)),k=[{value:"",label:""}].concat((0,h.Z)(re)),N=[{value:"",label:""}].concat((0,h.Z)(se));return(0,I.jsxs)(p.xuv,{className:"inputItem",children:[(0,I.jsx)(p.xuv,{sx:{display:"flex",alignItems:"center",gap:5,marginBottom:5},children:(0,I.jsxs)(p.AZs,{htmlFor:n,children:[(0,I.jsx)("span",{children:i}),""!==c&&(0,I.jsx)(p.xuv,{sx:{marginLeft:5,display:"flex",alignItems:"center","& .min-icon":{width:13}},children:(0,I.jsx)(p.ua7,{tooltip:c,placement:"top",children:(0,I.jsx)(p.xuv,{sx:{"& .min-icon":{width:13}},children:(0,I.jsx)(p.byK,{})})})})]})}),(0,I.jsxs)(p.xuv,{sx:{display:"flex",gap:12},children:[(0,I.jsx)(p.PhF,{id:"".concat(n,"-month"),name:"".concat(n,"-month"),value:v,onChange:function(e){j(e)},options:F,label:"",disabled:O()}),(0,I.jsx)(p.PhF,{id:"".concat(n,"-day"),name:"".concat(n,"-day"),value:_,onChange:function(e){S(e)},options:k,label:"",disabled:O()}),(0,I.jsx)(p.PhF,{id:"".concat(n,"-year"),name:"".concat(n,"-year"),value:y,onChange:function(e){C(e)},options:N,label:"",disabled:O(),sx:{marginBottom:12}})]})]})})),de=function(e){var t=e.open,n=e.closeModalAndRefresh,r=e.objectName,c=e.objectInfo,d=e.bucketName,u=(0,s.TL)(),h=(0,i.v9)((function(e){return e.objectBrowser.retentionConfig})),x=(0,o.useState)(!0),m=(0,f.Z)(x,2),j=m[0],b=m[1],g=(0,o.useState)(""),_=(0,f.Z)(g,2),S=_[0],T=_[1],w=(0,o.useState)(""),y=(0,f.Z)(w,2),C=y[0],O=y[1],F=(0,o.useState)(!1),k=(0,f.Z)(F,2),N=k[0],Z=k[1],B=(0,o.useState)(!1),L=(0,f.Z)(B,2),A=L[0],D=L[1],P=(0,o.useState)(!1),R=(0,f.Z)(P,2),M=R[0],U=R[1];(0,o.useEffect)((function(){if(c.retention_mode&&(T((null===h||void 0===h?void 0:h.mode)||ne.oO.Governance),U(!0)),c.retention_until_date){var e=new Date(c.retention_until_date);if("Invalid Date"!==e.toString()){var t=e.getFullYear(),n=(i=e.getMonth()+1)<10?"0".concat(i):"".concat(i),o=e.getDate();isNaN(o)||"NaN"===n||isNaN(t)||O("".concat(t,"-").concat(n,"-").concat(o))}U(!0)}var i}),[c,null===h||void 0===h?void 0:h.mode]);var G=(0,o.useRef)(null),z=function(){b(!1),T(ne.oO.Governance),G.current&&G.current.resetDate()},K=M&&("governance"===S||""===S);return(0,I.jsx)(ce.Z,{title:"Set Retention Policy",modalOpen:t,onClose:function(){z(),n(!1)},children:(0,I.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:(0,I.jsxs)(p.ltY,{withBorders:!1,containerPadding:!1,children:[(0,I.jsxs)(p.xuv,{className:"inputItem",children:[(0,I.jsx)("strong",{children:"Selected Object"}),": ",r]}),K&&(0,I.jsx)(p.rsf,{value:"status",id:"status",name:"status",checked:j,onChange:function(e){b(!j)},label:"Status",indicatorLabels:["Enabled","Disabled"]}),(0,I.jsx)(p.Eep,{currentValue:S,id:"type",name:"type",label:"Type",disableOptions:!j||M&&""!==S,onChange:function(e){T(e.target.value)},selectorOptions:[{label:"Governance",value:ne.oO.Governance},{label:"Compliance",value:ne.oO.Compliance}]}),(0,I.jsx)(le,{id:"date",label:"Date",disableOptions:!(j&&("governance"===S||"compliance"===S)),ref:G,value:C,borderBottom:!0,onDateChange:function(e,t){Z(t),t&&O(e)}}),(0,I.jsxs)(p.rjZ,{item:!0,xs:12,sx:oe.ID.modalButtonBar,children:[(0,I.jsx)(p.zxk,{id:"reset",type:"button",variant:"regular",onClick:z,label:"Reset"}),(0,I.jsx)(p.zxk,{id:"save",type:"submit",variant:"callAction",disabled:j&&""===S||j&&!N||A,onClick:function(){D(!0);var e=c.name||"",t=c.version_id||null,o=j||"governance"!==S?"".concat(C,"T23:59:59Z"):"";j||"governance"!==S?function(e,t,o){a.h.buckets.putObjectRetention(d,{prefix:(0,l.LL)(e),version_id:t||""},{expires:o,mode:S}).then((function(){D(!1),n(!0)})).catch((function(e){u((0,E.zb)((0,v.g)(e.error))),D(!1)}))}(e,t,o):function(e,t){a.h.buckets.deleteObjectRetention(d,{prefix:(0,l.LL)(e),version_id:t||""}).then((function(){D(!1),n(!0)})).catch((function(e){u((0,E.zb)((0,v.g)(e.error))),D(!1)}))}(e,t)},label:"Save"})]})]})})})},ue=n(23508),he=n(9505),fe=function(e){var t=e.closeDeleteModalAndRefresh,n=e.deleteOpen,r=e.selectedBucket,a=e.selectedObject,d=e.versioningInfo,u=e.selectedVersion,h=void 0===u?"":u,x=(0,s.TL)(),m=(0,he.Z)((function(){return t(!0)}),(function(e){x((0,E.Ih)(e)),"Access Denied."===e.detailedError&&t(!0)})),v=(0,f.Z)(m,2),j=v[0],b=v[1],g=(0,o.useState)(!1),_=(0,f.Z)(g,2),S=_[0],T=_[1],w=(0,o.useState)(!1),C=(0,f.Z)(w,2),O=C[0],F=C[1],k=(0,i.v9)((function(e){return e.objectBrowser.retentionConfig})),N=(0,y.F)([r],[c.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===k||void 0===k?void 0:k.mode);if(!a)return null;return(0,I.jsx)(ue.Z,{title:"Delete Object",confirmText:"Delete",isOpen:n,titleIcon:(0,I.jsx)(p.NvT,{}),isLoading:j,onConfirm:function(){var e=(0,l.IO)(a).endsWith("/");b("DELETE","/api/v1/buckets/".concat(r,"/objects?path=").concat(a).concat(""!==h?"&version_id=".concat(h):"&recursive=".concat(e,"&all_versions=").concat(S)).concat(O?"&bypass=true":""))},onClose:function(){return t(!1)},confirmationContent:(0,I.jsxs)(o.Fragment,{children:["Are you sure you want to delete: ",(0,I.jsx)("br",{}),(0,I.jsx)("b",{children:(0,l.IO)(a)})," ",""!==h?(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)("br",{}),(0,I.jsx)("br",{}),"Version ID:",(0,I.jsx)("br",{}),(0,I.jsx)("strong",{children:h})]}):"","? ",(0,I.jsx)("br",{}),(0,I.jsx)("br",{}),L(null===d||void 0===d?void 0:d.status)&&""===h&&(0,I.jsx)(o.Fragment,{children:(0,I.jsx)(p.rsf,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:S,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:function(e){T(!S)},description:""})}),N&&(S||""!==h)&&(0,I.jsx)(o.Fragment,{children:(0,I.jsx)("div",{style:{marginTop:10},children:(0,I.jsx)(p.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:O,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:function(e){F(!O)},description:""})})}),S&&(0,I.jsxs)(o.Fragment,{children:[(0,I.jsxs)("div",{style:{marginTop:10,border:"#c83b51 1px solid",borderRadius:3,padding:5,backgroundColor:"#c83b5120",color:"#c83b51"},children:["This will remove the object as well as all of its versions,"," ",(0,I.jsx)("br",{}),"This action is irreversible."]}),(0,I.jsx)("br",{}),"Are you sure you want to continue?"]})]})})},xe=function(e){var t=e.open,n=e.closeModalAndRefresh,i=e.objectName,r=e.bucketName,c=e.actualInfo,d=(0,s.TL)(),u=(0,o.useState)(!1),h=(0,f.Z)(u,2),x=h[0],j=h[1],b=(0,o.useState)(!1),g=(0,f.Z)(b,2),_=g[0],S=g[1],T=c.version_id;(0,o.useEffect)((function(){var e=m()(c,"legal_hold_status","OFF");j("ON"===e)}),[c]);var w=function(){j(!1)};return(0,I.jsx)(ce.Z,{title:"Set Legal Hold",modalOpen:t,onClose:function(){w(),n(!1)},children:(0,I.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),S(!0),a.h.buckets.putObjectLegalHold(r,{prefix:(0,l.LL)(i),version_id:T||""},{status:x?ne.nY.Enabled:ne.nY.Disabled}).then((function(){S(!1),n(!0)})).catch((function(e){d((0,E.zb)((0,v.g)(e.error))),S(!1)}))}(e)},children:(0,I.jsxs)(p.ltY,{withBorders:!1,containerPadding:!1,children:[(0,I.jsxs)(p.xuv,{className:"inputItem",children:[(0,I.jsx)("strong",{children:"Object"}),": ",r]}),(0,I.jsx)(p.rsf,{value:"legalhold",id:"legalhold",name:"legalhold",checked:x,onChange:function(e){j(!x)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"}),(0,I.jsxs)(p.rjZ,{item:!0,xs:12,sx:oe.ID.modalButtonBar,children:[(0,I.jsx)(p.zxk,{id:"clear",type:"button",variant:"regular",onClick:w,label:"Clear"}),(0,I.jsx)(p.zxk,{id:"save",type:"submit",variant:"callAction",disabled:_,label:" Save"})]})]})})})},me=T.ZP.b((function(e){var t=e.theme;return{color:m()(t,"signalColors.danger","#C83B51"),marginLeft:5}})),pe=function(e){var t,n=e.modalOpen,r=e.onCloseAndUpdate,d=e.bucketName,h=e.actualInfo,x=(0,s.TL)(),j=(0,i.v9)(E.N5),b=(0,o.useState)(""),g=(0,f.Z)(b,2),_=g[0],S=g[1],T=(0,o.useState)(""),w=(0,f.Z)(T,2),C=w[0],O=w[1],F=(0,o.useState)(!1),k=(0,f.Z)(F,2),N=k[0],Z=k[1],B=(0,o.useState)(!1),L=(0,f.Z)(B,2),A=L[0],D=L[1],P=(0,o.useState)(""),R=(0,f.Z)(P,2),M=R[0],U=R[1],G=(0,o.useState)(""),z=(0,f.Z)(G,2),K=z[0],W=z[1],H=(0,l.LL)(h.name||""),J=h.tags,V=Object.keys(J||{}),Y=null===(t=h.name)||void 0===t?void 0:t.split("/"),q=(null===Y||void 0===Y?void 0:Y.pop())||"",$=function(e){return(0,I.jsxs)(p.xuv,{sx:{fontSize:16,margin:"20px 0 30px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"100%"},children:["Tag",e?"s":""," for: ",(0,I.jsx)("strong",{children:q})]})};return(0,I.jsx)(o.Fragment,{children:(0,I.jsx)(ce.Z,{modalOpen:n,title:A?"Delete Tag":"Edit Tags",onClose:function(){r(!0)},iconColor:A?"delete":"default",titleIcon:A?(0,I.jsx)(p.dRf,{}):(0,I.jsx)(p.T0F,{}),children:A?(0,I.jsx)(o.Fragment,{children:(0,I.jsxs)(p.rjZ,{container:!0,children:[$(!1),"Are you sure you want to delete the tag"," ",(0,I.jsxs)(me,{children:[M," : ",K]})," ","?",(0,I.jsxs)(p.rjZ,{item:!0,xs:12,sx:oe.ID.modalButtonBar,children:[(0,I.jsx)(p.zxk,{id:"cancel",type:"button",variant:"regular",onClick:function(){U(""),W(""),D(!1)},label:"Cancel"}),(0,I.jsx)(p.zxk,{type:"submit",variant:"secondary",onClick:function(){var e=(0,u.Z)({},J);delete e[M];var t=j?h.version_id||"":"null";a.h.buckets.putObjectTags(d,{prefix:H,version_id:t},{tags:e}).then((function(){r(!0),Z(!1)})).catch((function(e){x((0,E.zb)((0,v.g)(e.error))),Z(!1)}))},id:"deleteTag",label:"Delete Tag"})]})]})}):(0,I.jsxs)(p.xuv,{children:[(0,I.jsx)(y.s,{scopes:[c.Ft.S3_GET_OBJECT_TAGGING,c.Ft.S3_GET_ACTIONS],resource:d,children:(0,I.jsxs)(p.xuv,{sx:{display:"flex",flexFlow:"column",width:"100%"},children:[$(!0),(0,I.jsxs)(p.xuv,{sx:{fontSize:14,fontWeight:"normal"},children:["Current Tags:",(0,I.jsx)("br",{}),0===V.length?(0,I.jsx)("span",{className:"muted",children:"There are no tags for this object"}):(0,I.jsx)(o.Fragment,{}),(0,I.jsx)(p.xuv,{sx:{marginTop:"5px",marginBottom:"15px"},children:V.map((function(e,t){var n=m()(J,"".concat(e),"");return""!==n?(0,I.jsx)(y.s,{scopes:[c.Ft.S3_DELETE_OBJECT_TAGGING],resource:d,errorProps:{deleteIcon:null,onDelete:null},children:(0,I.jsx)(p.Vp9,{id:"".concat(e," : ").concat(n),label:"".concat(e," : ").concat(n),variant:"regular",color:"default",onDelete:function(){!function(e,t){U(e),W(t),D(!0)}(e,n)}})},"chip-".concat(t)):null}))})]})]})}),(0,I.jsx)(y.s,{scopes:[c.Ft.S3_PUT_OBJECT_TAGGING,c.Ft.S3_PUT_ACTIONS],resource:d,errorProps:{disabled:!0,onClick:null},children:(0,I.jsxs)(p.xuv,{children:[(0,I.jsx)(p.NZf,{icon:(0,I.jsx)(p.OCT,{}),separator:!1,children:"Add New Tag"}),(0,I.jsxs)(p.ltY,{containerPadding:!1,withBorders:!1,children:[(0,I.jsx)(p.Wzg,{value:_,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:function(e){S(e.target.value)}}),(0,I.jsx)(p.Wzg,{value:C,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:function(e){O(e.target.value)}}),(0,I.jsxs)(p.rjZ,{item:!0,xs:12,sx:oe.ID.modalButtonBar,children:[(0,I.jsx)(p.zxk,{id:"clear",type:"button",variant:"regular",color:"primary",onClick:function(){O(""),S("")},label:"Clear"}),(0,I.jsx)(p.zxk,{type:"submit",variant:"callAction",disabled:""===C.trim()||""===_.trim()||N,onClick:function(){Z(!0);var e={};e[_]=C;var t=(0,u.Z)((0,u.Z)({},J),e),n=j?h.version_id||"":"null";a.h.buckets.putObjectTags(d,{prefix:H,version_id:n},{tags:t}).then((function(){r(!0),Z(!1)})).catch((function(e){x((0,E.zb)((0,v.g)(e.error))),Z(!1)}))},id:"saveTag",label:"Save"})]})]})]})})]})})})},ve=n(73669),je=function(e){var t=e.closeInspectModalAndRefresh,n=e.inspectOpen,i=e.inspectPath,r=e.volumeName,a=(0,s.TL)(),c=function(){return t(!1)},d=(0,o.useState)(!0),u=(0,f.Z)(d,2),h=u[0],x=u[1],m=(0,o.useState)(""),v=(0,f.Z)(m,2),j=v[0],b=v[1],g=(0,o.useState)(""),_=(0,f.Z)(g,2),S=_[0],T=_[1];if(!i)return null;var w=function(){var e=(0,R.Z)((0,P.Z)().mark((function e(t){return(0,P.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{method:"GET"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=function(){var e=(0,R.Z)((0,P.Z)().mark((function e(){var t,n,o;return(0,P.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,l.LL)(i+"/xl.meta"),n=(0,l.LL)(r),o="/api/v1/admin/inspect?volume=".concat(n,"&file=").concat(t,"&encrypt=").concat(h),w(o).then(function(){var e=(0,R.Z)((0,P.Z)().mark((function e(t){var n,o,i,r;return(0,P.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.ok){e.next=5;break}return e.next=3,t.json();case 3:n=e.sent,a((0,E.Ih)({errorMessage:n.message,detailedError:n.code}));case 5:return e.next=7,t.blob();case 7:if(o=e.sent,i=t.headers.get("content-disposition").split('"')[1],r=(0,l.Do)(i)||"",(0,l.zZ)(o,i),T(i),""!==r){e.next=15;break}return c(),e.abrupt("return");case 15:b(r);case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){a((0,E.Ih)(e))}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,I.jsxs)(o.Fragment,{children:[!j&&(0,I.jsx)(ce.Z,{modalOpen:n,titleIcon:(0,I.jsx)(p.Gp8,{}),title:"Inspect Object",onClose:c,children:(0,I.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:["Would you like to encrypt ",(0,I.jsx)("b",{children:(0,l.IO)(i)}),"?"," ",(0,I.jsx)("br",{}),(0,I.jsx)(p.rsf,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:h,value:"encrypt",id:"encrypt",name:"encrypt",onChange:function(e){x(!h)},description:""}),(0,I.jsx)(p.rjZ,{item:!0,xs:12,sx:oe.ID.modalButtonBar,children:(0,I.jsx)(p.zxk,{id:"inspect",type:"submit",variant:"callAction",color:"primary",onClick:y,label:"Inspect"})})]})}),j?(0,I.jsxs)(ce.Z,{modalOpen:n,title:"Inspect Decryption Key",onClose:function(){(0,l.kT)(S),c(),b("")},titleIcon:(0,I.jsx)(p.tvm,{}),children:[(0,I.jsxs)(p.xuv,{children:["This will be displayed only once. It cannot be recovered.",(0,I.jsx)("br",{}),"Use secure medium to share this key."]}),(0,I.jsx)(p.xuv,{children:(0,I.jsx)(ve.Z,{value:j})})]}):null]})},be=function(e){var t=e.open,n=e.closeModal,i=e.currentItem,r=e.internalPaths,a=e.actualInfo,c=e.bucketName,l=(0,s.TL)(),d=(0,o.useState)(i),u=(0,f.Z)(d,2),h=u[0],x=u[1],m=(0,o.useState)(!1),v=(0,f.Z)(m,2),j=v[0],b=v[1];return(0,I.jsxs)(ce.Z,{title:"Rename Download",modalOpen:t,onClose:n,titleIcon:(0,I.jsx)(p.dY8,{}),children:[(0,I.jsxs)("div",{children:["The file you are trying to download has a long name.",(0,I.jsx)("br",{}),"This can cause issues on Windows Systems by trimming the file name after download.",(0,I.jsx)("br",{}),(0,I.jsx)("br",{})," We recommend to rename the file download"]}),(0,I.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),V(l,c,r,a),n()}(e)},children:(0,I.jsxs)(p.ltY,{withBorders:!1,containerPadding:!1,children:[(0,I.jsx)(p.Wzg,{id:"download-filename",name:"download-filename",onChange:function(e){x(e.target.value)},label:"",type:"text",value:h,error:h.length>200&&!j?"Filename should be less than 200 characters long.":""}),(0,I.jsx)(p.rsf,{value:"acceptLongName",id:"acceptLongName",name:"acceptLongName",checked:j,onChange:function(e){b(e.target.checked),e.target.checked&&x(i)},label:"Use Original Name"}),(0,I.jsx)(p.rjZ,{item:!0,xs:12,sx:oe.ID.modalButtonBar,children:(0,I.jsx)(p.zxk,{id:"download-file",type:"submit",variant:"callAction",color:"primary",disabled:h.length>200&&!j,label:"Download File"})})]})})]})},ge={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:0,tags:{},version_id:void 0},_e=function(e){var t=e.internalPaths,n=e.bucketName,r=e.versioningInfo,u=e.locking,h=e.onClosePanel,x=(0,s.TL)(),v=(0,i.v9)(E.N5),j=(0,i.v9)((function(e){return e.objectBrowser.versionsMode})),b=(0,i.v9)((function(e){return e.objectBrowser.selectedVersion})),g=(0,i.v9)((function(e){return e.objectBrowser.loadingObjectInfo})),_=(0,o.useState)(!1),S=(0,f.Z)(_,2),T=S[0],w=S[1],C=(0,o.useState)(!1),O=(0,f.Z)(C,2),F=O[0],k=O[1],N=(0,o.useState)(!1),Z=(0,f.Z)(N,2),L=Z[0],A=Z[1],D=(0,o.useState)(!1),P=(0,f.Z)(D,2),R=P[0],M=P[1],U=(0,o.useState)(!1),G=(0,f.Z)(U,2),z=G[0],K=G[1],H=(0,o.useState)(null),J=(0,f.Z)(H,2),Y=J[0],q=J[1],$=(0,o.useState)([]),ne=(0,f.Z)($,2),oe=ne[0],ie=ne[1],re=(0,o.useState)(null),ae=(0,f.Z)(re,2),se=ae[0],ce=ae[1],le=(0,o.useState)([]),ue=(0,f.Z)(le,2),he=ue[0],me=ue[1],ve=(0,o.useState)(!1),_e=(0,f.Z)(ve,2),Se=_e[0],Te=_e[1],we=(0,o.useState)(!1),ye=(0,f.Z)(we,2),Ce=ye[0],Ee=ye[1],Oe=(0,o.useState)(0),Fe=(0,f.Z)(Oe,2),Ie=Fe[0],ke=Fe[1],Ne=(0,o.useState)(!1),Ze=(0,f.Z)(Ne,2),Be=Ze[0],Le=Ze[1],Ae=(0,o.useState)(null),De=(0,f.Z)(Ae,2),Pe=De[0],Re=De[1],Me=(0,o.useState)(!1),Ue=(0,f.Z)(Me,2),Ge=Ue[0],ze=Ue[1],Ke=((0,l.IO)(t)||"").split("/").pop()||"",We=[];Y&&Y.name&&(We=Y.name.split("/")),(0,o.useEffect)((function(){if(v&&oe&&oe.length>=1){var e=oe.find((function(e){return e.is_latest}))||ge;""!==b&&(e=oe.find((function(e){return e.version_id===b}))||ge),e.is_delete_marker||ze(!0),q(e)}}),[b,v,oe]),(0,o.useEffect)((function(){g&&""!==t&&a.h.buckets.listObjects(n,{prefix:t,with_versions:v}).then((function(e){var t=e.data.objects||[];if(v){ie(t),me(t);var n=t.reduce((function(e,t){return null!==t&&void 0!==t&&t.size?e+t.size:e}),0);ke(n)}else{var o=t[0];q(o),me([]),o.is_delete_marker||ze(!0)}x((0,d.vH)(!1))})).catch((function(e){console.error("Error loading object details",e.error),x((0,d.vH)(!1))}))}),[g,n,t,x,v,b]),(0,o.useEffect)((function(){Ge&&""!==t&&a.h.buckets.getObjectMetadata(n,{prefix:t}).then((function(e){var t=m()(e.data,"objectMetadata",{});Re(t),ze(!1)})).catch((function(e){console.error("Error Getting Metadata Status: ",e.detailedError),ze(!1)}))}),[n,t,Ge]);var He=[];Y&&Y.tags&&(He=Object.keys(Y.tags));var Je=(0,I.jsx)("div",{style:{textAlign:"center",marginTop:35},children:(0,I.jsx)(p.aNw,{})});if(!Y)return g?Je:null;var Ve=We.length>0?We[We.length-1]:Y.name,Ye=[n,Ke,[n,Y.name].join("/")],qe=(0,y.F)(n,[c.Ft.S3_PUT_OBJECT_LEGAL_HOLD,c.Ft.S3_PUT_ACTIONS]),$e=(0,y.F)(Ye,[c.Ft.S3_PUT_OBJECT_TAGGING,c.Ft.S3_PUT_ACTIONS]),Qe=(0,y.F)(Ye,[c.Ft.S3_GET_OBJECT_RETENTION,c.Ft.S3_PUT_OBJECT_RETENTION,c.Ft.S3_GET_ACTIONS,c.Ft.S3_PUT_ACTIONS],!0),Xe=(0,y.F)(Ye,[c.Ft.ADMIN_INSPECT_DATA]),et=(0,y.F)(Ye,[c.Ft.S3_GET_BUCKET_VERSIONING,c.Ft.S3_PUT_BUCKET_VERSIONING,c.Ft.S3_GET_OBJECT_VERSION,c.Ft.S3_GET_ACTIONS,c.Ft.S3_PUT_ACTIONS]),tt=(0,y.F)(Ye,[c.Ft.S3_GET_OBJECT,c.Ft.S3_GET_ACTIONS]),nt=(0,y.F)([n,Ke,[n,Y.name].join("/")],[c.Ft.S3_DELETE_OBJECT]),ot=(0,B.s7)(Pe,Ke),it=[{action:function(){V(x,n,t,Y)},label:"Download",disabled:!!Y.is_delete_marker||!tt,icon:(0,I.jsx)(p._8t,{}),tooltip:tt?"Download this Object":(0,c.MK)([c.Ft.S3_GET_OBJECT,c.Ft.S3_GET_ACTIONS],"download this object")},{action:function(){w(!0)},label:"Share",disabled:!!Y.is_delete_marker||!tt,icon:(0,I.jsx)(p.aAc,{}),tooltip:tt?"Share this File":(0,c.MK)([c.Ft.S3_GET_OBJECT,c.Ft.S3_GET_ACTIONS],"share this object")},{action:function(){Ee(!0)},label:"Preview",disabled:!!Y.is_delete_marker||"none"===ot&&!tt,icon:(0,I.jsx)(p.P99,{}),tooltip:tt?"Preview this File":(0,c.MK)([c.Ft.S3_GET_OBJECT,c.Ft.S3_GET_ACTIONS],"preview this object")},{action:function(){M(!0)},label:"Legal Hold",disabled:!u||!v||!!Y.is_delete_marker||!qe||""!==b,icon:(0,I.jsx)(p.fNL,{}),tooltip:qe?u?"Change Legal Hold rules for this File":"Object Locking must be enabled on this bucket in order to set Legal Hold":(0,c.MK)([c.Ft.S3_PUT_OBJECT_LEGAL_HOLD,c.Ft.S3_PUT_ACTIONS],"change legal hold settings for this object")},{action:function(){k(!0)},label:"Retention",disabled:!v||!!Y.is_delete_marker||!Qe||""!==b||!u,icon:(0,I.jsx)(p.E9d,{}),tooltip:Qe?u?"Change Retention rules for this File":"Object Locking must be enabled on this bucket in order to set Retention Rules":(0,c.MK)([c.Ft.S3_GET_OBJECT_RETENTION,c.Ft.S3_PUT_OBJECT_RETENTION,c.Ft.S3_GET_ACTIONS,c.Ft.S3_PUT_ACTIONS],"change Retention Rules for this object")},{action:function(){A(!0)},label:"Tags",disabled:!!Y.is_delete_marker||""!==b||!$e,icon:(0,I.jsx)(p.DgT,{}),tooltip:$e?"Change Tags for this File":(0,c.MK)([c.Ft.S3_PUT_OBJECT_TAGGING,c.Ft.S3_GET_OBJECT_TAGGING,c.Ft.S3_GET_ACTIONS,c.Ft.S3_PUT_ACTIONS],"set Tags on this object")},{action:function(){K(!0)},label:"Inspect",disabled:!v||!!Y.is_delete_marker||""!==b||!Xe,icon:(0,I.jsx)(p.Gp8,{}),tooltip:Xe?"Inspect this file":(0,c.MK)([c.Ft.ADMIN_INSPECT_DATA],"inspect this file")},{action:function(){x((0,d.db)({status:!j,objectName:Ve}))},label:j?"Hide Object Versions":"Display Object Versions",icon:(0,I.jsx)(p.cRd,{}),disabled:!v||!(Y.version_id&&"null"!==Y.version_id)||!et,tooltip:et?Y.version_id&&"null"!==Y.version_id?"Display Versions for this file":"":(0,c.MK)([c.Ft.S3_GET_BUCKET_VERSIONING,c.Ft.S3_PUT_BUCKET_VERSIONING,c.Ft.S3_GET_OBJECT_VERSION,c.Ft.S3_GET_ACTIONS,c.Ft.S3_PUT_ACTIONS],"display all versions of this object")}];return(0,I.jsxs)(o.Fragment,{children:[T&&Y&&(0,I.jsx)(te.default,{open:T,closeModalAndRefresh:function(){ce(null),w(!1)},bucketName:n,dataObject:se||Y}),F&&Y&&(0,I.jsx)(de,{open:F,closeModalAndRefresh:function(e){k(!1),e&&x((0,d.vH)(!0))},objectName:Ke,objectInfo:Y,bucketName:n}),Se&&(0,I.jsx)(fe,{deleteOpen:Se,selectedBucket:n,selectedObject:t,closeDeleteModalAndRefresh:function(e){Te(!1),e&&""===b?h(!0):(x((0,d.Eq)(!0)),x((0,d.M3)("")),x((0,d.vH)(!0)))},versioningInfo:v?r:void 0,selectedVersion:b}),R&&Y&&(0,I.jsx)(xe,{open:R,closeModalAndRefresh:function(e){M(!1),e&&x((0,d.vH)(!0))},objectName:Y.name||"",bucketName:n,actualInfo:Y}),Ce&&Y&&(0,I.jsx)(X.default,{open:Ce,bucketName:n,object:{name:Y.name||"",version_id:Y.version_id||"null",size:Y.size||0,content_type:"",last_modified:Y.last_modified||""},onClosePreview:function(){Ee(!1)}}),L&&Y&&(0,I.jsx)(pe,{modalOpen:L,bucketName:n,actualInfo:Y,onCloseAndUpdate:function(e){A(!1),e&&x((0,d.vH)(!0))}}),z&&Y&&(0,I.jsx)(je,{inspectOpen:z,volumeName:n,inspectPath:Y.name||"",closeInspectModalAndRefresh:function(e){K(!1),e&&x((0,d.vH)(!0))}}),Be&&Y&&(0,I.jsx)(be,{open:Be,closeModal:function(){Le(!1)},currentItem:Ke,bucketName:n,internalPaths:t,actualInfo:Y}),g?(0,I.jsx)(o.Fragment,{children:Je}):(0,I.jsxs)(p.xuv,{sx:{"& .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},"& .capitalizeFirst":{textTransform:"capitalize"},"& .detailContainer":{padding:"0 22px",marginBottom:10,fontSize:14}},children:[(0,I.jsx)(p.Wk,{title:(0,I.jsxs)("div",{className:"ObjectDetailsTitle",children:[Q(Ve||"",!0),(0,I.jsx)("span",{className:"objectNameContainer",children:Ve})]}),items:it}),(0,I.jsx)(W.Z,{tooltip:nt?"":(0,c.MK)([c.Ft.S3_DELETE_OBJECT],"delete this object"),children:(0,I.jsx)(p.rjZ,{item:!0,xs:12,sx:{justifyContent:"center",display:"flex"},children:(0,I.jsx)(y.s,{resource:[n,Ke,[n,Y.name].join("/")],scopes:[c.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,I.jsx)(p.zxk,{id:"delete-element-click",icon:(0,I.jsx)(p.pJl,{}),iconLocation:"start",fullWidth:!0,variant:"secondary",onClick:function(){Te(!0)},disabled:""===b&&Y.is_delete_marker,sx:{width:"calc(100% - 44px)",margin:"8px 0"},label:"Delete".concat(""!==b?" version":"")})})})}),(0,I.jsx)(p.AG2,{icon:(0,I.jsx)(p.Gvh,{}),label:"Object Info"}),(0,I.jsxs)(p.xuv,{className:"detailContainer",children:[(0,I.jsx)("strong",{children:"Name:"}),(0,I.jsx)("br",{}),(0,I.jsx)("div",{style:{overflowWrap:"break-word"},children:Ve})]}),""!==b&&(0,I.jsxs)(p.xuv,{className:"detailContainer",children:[(0,I.jsx)("strong",{children:"Version ID:"}),(0,I.jsx)("br",{}),b]}),(0,I.jsxs)(p.xuv,{className:"detailContainer",children:[(0,I.jsx)("strong",{children:"Size:"}),(0,I.jsx)("br",{}),(0,l.ae)("".concat(Y.size||"0"))]}),Y.version_id&&"null"!==Y.version_id&&""===b&&(0,I.jsxs)(p.xuv,{className:"detailContainer",children:[(0,I.jsx)("strong",{children:"Versions:"}),(0,I.jsx)("br",{}),he.length," version",1!==he.length?"s":"",","," ",(0,l.l5)(Ie)]}),""===b&&(0,I.jsxs)(p.xuv,{className:"detailContainer",children:[(0,I.jsx)("strong",{children:"Last Modified:"}),(0,I.jsx)("br",{}),function(e){var t=new Date,n=new Date(e),o=t.getTime()-n.getTime(),i=(0,l.nF)(o,"ms");return""!==i.trim()?"".concat(i," ago"):"Just now"}(Y.last_modified||"")]}),(0,I.jsxs)(p.xuv,{className:"detailContainer",children:[(0,I.jsx)("strong",{children:"ETAG:"}),(0,I.jsx)("br",{}),Y.etag||"N/A"]}),(0,I.jsxs)(p.xuv,{className:"detailContainer",children:[(0,I.jsx)("strong",{children:"Tags:"}),(0,I.jsx)("br",{}),0===He.length?"N/A":He.map((function(e,t){return(0,I.jsxs)("span",{children:[e,":",m()(Y,"tags.".concat(e),""),t div":{borderBottomColor:m()(t,"boxBackground","#F8F8F8")}}},"& .versionContainer":{fontSize:16,fontWeight:"bold",display:"flex",alignItems:"center","& svg.min-icon":{width:18,height:18,minWidth:18,minHeight:18,marginRight:10}},"& .buttonContainer":{textAlign:"right","& button":{marginLeft:"1.5rem"}},"& .versionID":{fontSize:"12px",margin:"2px 0",whiteSpace:"nowrap",textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden"},"& .versionData":{marginRight:"10px",fontSize:12,color:"#868686"},"@media (max-width: 600px)":{"& .buttonContainer":{"& button":{marginLeft:"5px"}}},"@media (max-width: 799px)":{"&:before":{display:"none"},"& .mainFileVersionItem":{padding:"5px 0px",margin:0},"& .intermediateLayer":{margin:0,"&:hover, &.selected":{backgroundColor:"transparent","& > div":{borderBottomColor:m()(t,"boxBackground","#F8F8F8")}}},"& .versionContainer":{fontSize:14,"& svg.min-icon":{display:"none"}},"& .versionData":{textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden",whiteSpace:"nowrap"},"& .collapsableInfo":{display:"flex",flexDirection:"column"},"& .versionItem":{display:"none"}}}})),ye=function(e){var t=e.fileName,n=e.versionInfo,o=e.isSelected,i=e.checkable,r=e.isChecked,a=e.onCheck,s=e.onShare,c=e.onDownload,d=e.onRestore,u=e.onPreview,h=e.globalClick,f=e.index,x=e.key,m=e.style,v=n.is_delete_marker,j=[{icon:(0,I.jsx)(p.P99,{}),action:u,tooltip:"Preview"},{icon:(0,I.jsx)(p._8t,{}),action:c,tooltip:"Download this version"},{icon:(0,I.jsx)(p.aAc,{}),action:s,tooltip:"Share this version"},{icon:(0,I.jsx)(p.D7Y,{}),action:d,tooltip:"Restore this version"}],g=null;n.is_delete_marker?g="deleted":n.is_latest?g="current":"null"===n.version_id&&(g="null");var _=b.ou.now();return n.last_modified&&(_=b.ou.fromISO(n.last_modified)),(0,I.jsx)(we,{children:(0,I.jsx)(p.rjZ,{container:!0,className:"ctrItem",onClick:function(){h(n)},style:m,children:(0,I.jsx)(p.rjZ,{item:!0,xs:12,className:"intermediateLayer".concat(" ",o?"selected":""),children:(0,I.jsxs)(p.rjZ,{item:!0,xs:!0,className:"mainFileVersionItem ".concat(n.is_delete_marker?"deleted":""),children:[(0,I.jsx)(p.rjZ,{item:!0,xs:12,children:(0,I.jsxs)(p.rjZ,{container:!0,children:[(0,I.jsxs)(p.rjZ,{item:!0,xs:!0,md:4,className:"versionContainer",children:[i&&(0,I.jsx)(p.XZJ,{checked:r,id:"select-".concat(n.version_id),name:"select-".concat(n.version_id),onChange:function(e){e.stopPropagation(),a(n.version_id||"")},value:n.version_id||"",disabled:n.is_delete_marker,sx:{width:"initial"}}),Q(t,!0)," v",f.toString(),(0,I.jsx)("span",{className:"versionItem",children:g&&(0,I.jsx)(Te,{type:g})})]}),(0,I.jsx)(p.rjZ,{item:!0,xs:10,md:8,className:"buttonContainer",children:j.map((function(e,t){return(0,I.jsx)(p.ua7,{tooltip:e.tooltip,children:(0,I.jsx)(p.hU,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(t.toString()),className:"spacing".concat(" ",v?"buttonDisabled":""),disabled:v,onClick:function(t){t.stopPropagation(),v?t.preventDefault():e.action(n)},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,I.jsx)(p.rjZ,{item:!0,xs:12,className:"versionID",children:"null"!==n.version_id?n.version_id:"-"}),(0,I.jsxs)(p.rjZ,{item:!0,xs:12,className:"collapsableInfo",children:[(0,I.jsxs)("span",{className:"versionData",children:[(0,I.jsx)("strong",{children:"Last modified:"})," ",_.toFormat("ccc, LLL dd yyyy HH:mm:ss (ZZZZ)")]}),(0,I.jsxs)("span",{className:"versionData",children:[(0,I.jsx)("strong",{children:"Size:"})," ",(0,l.ae)("".concat(n.size||"0"))]})]})]})})},x)})},Ce=function(e){var t=e.closeDeleteModalAndRefresh,n=e.deleteOpen,r=e.selectedBucket,d=e.selectedObject,u=(0,s.TL)(),h=(0,o.useState)(!1),x=(0,f.Z)(h,2),m=x[0],j=x[1],b=(0,o.useState)(""),g=(0,f.Z)(b,2),_=g[0],S=g[1],T=(0,o.useState)(!1),w=(0,f.Z)(T,2),C=w[0],O=w[1],F=(0,i.v9)((function(e){return e.objectBrowser.retentionConfig})),k=(0,y.F)([r],[c.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===F||void 0===F?void 0:F.mode);if((0,o.useEffect)((function(){m&&a.h.buckets.deleteObject(r,{path:d,non_current_versions:!0,bypass:C}).then((function(){t(!0)})).catch((function(e){u((0,E.Ih)((0,v.g)(e.error))),j(!1)}))}),[m,t,u,d,r,C]),!d)return null;return(0,I.jsx)(ue.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:n,titleIcon:(0,I.jsx)(p.NvT,{}),isLoading:m,onConfirm:function(){j(!0)},onClose:function(){return t(!1)},confirmButtonProps:{disabled:"YES, PROCEED"!==_||m},confirmationContent:(0,I.jsxs)(o.Fragment,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,I.jsx)("b",{children:(0,l.IO)(d)}),"? ",(0,I.jsx)("br",{}),k&&(0,I.jsx)(o.Fragment,{children:(0,I.jsx)("div",{style:{marginTop:10},children:(0,I.jsx)(p.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:C,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:function(e){O(!C)},description:""})})}),(0,I.jsx)("br",{}),"To continue please type ",(0,I.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,I.jsx)("br",{}),(0,I.jsx)("br",{}),(0,I.jsx)(p.rjZ,{item:!0,xs:12,children:(0,I.jsx)(p.Wzg,{id:"type-confirm",name:"retype-tenant",onChange:function(e){S(e.target.value)},label:"",value:_})})]})})},Ee=function(e){var t=e.closeDeleteModalAndRefresh,n=e.deleteOpen,r=e.selectedBucket,l=e.selectedVersions,d=e.selectedObject,u=(0,s.TL)(),h=(0,o.useState)(!1),x=(0,f.Z)(h,2),m=x[0],j=x[1],b=(0,o.useState)(!1),g=(0,f.Z)(b,2),_=g[0],S=g[1],T=(0,i.v9)((function(e){return e.objectBrowser.retentionConfig})),w=(0,y.F)([r],[c.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===T||void 0===T?void 0:T.mode);return(0,o.useEffect)((function(){if(m){var e=l.map((function(e){return{path:d,versionID:e,recursive:!1}}));e.length>0&&a.h.buckets.deleteMultipleObjects(r,e,{all_versions:!1,bypass:_}).then((function(){j(!1),t(!0)})).catch((function(e){u((0,E.Ih)((0,v.g)(e.error))),j(!1)}))}}),[m,t,r,d,l,_,u]),l?(0,I.jsx)(ue.Z,{title:"Delete Selected Versions",confirmText:"Delete",isOpen:n,titleIcon:(0,I.jsx)(p.NvT,{}),isLoading:m,onConfirm:function(){j(!0)},onClose:function(){return t(!1)},confirmationContent:(0,I.jsxs)(o.Fragment,{children:["Are you sure you want to delete the selected ",l.length," ","versions for ",(0,I.jsx)("strong",{children:d}),"?",w&&(0,I.jsx)(o.Fragment,{children:(0,I.jsx)("div",{style:{marginTop:10},children:(0,I.jsx)(p.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:_,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:function(e){S(!_)},description:""})})})]})}):null},Oe=n(53128),Fe={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:0,tags:{},version_id:void 0},Ie=function(e){var t=e.internalPaths,n=e.bucketName,r=(0,s.TL)(),c=(0,i.v9)((function(e){return e.objectBrowser.searchVersions})),u=(0,i.v9)((function(e){return e.objectBrowser.loadingVersions})),x=(0,i.v9)((function(e){return e.objectBrowser.selectedVersion})),j=(0,i.v9)(E.N5),b=(0,o.useState)(!1),_=(0,f.Z)(b,2),S=_[0],T=_[1],w=(0,o.useState)(null),y=(0,f.Z)(w,2),C=y[0],O=y[1],F=(0,o.useState)(null),k=(0,f.Z)(F,2),N=k[0],B=k[1],L=(0,o.useState)([]),A=(0,f.Z)(L,2),D=A[0],P=A[1],R=(0,o.useState)(!1),M=(0,f.Z)(R,2),U=M[0],G=M[1],z=(0,o.useState)(null),K=(0,f.Z)(z,2),H=K[0],J=K[1],Y=(0,o.useState)("date"),q=(0,f.Z)(Y,2),$=q[0],Q=q[1],ee=(0,o.useState)(!1),ne=(0,f.Z)(ee,2),oe=ne[0],ie=ne[1],re=(0,o.useState)(!1),ae=(0,f.Z)(re,2),se=ae[0],ce=ae[1],le=(0,o.useState)(!1),de=(0,f.Z)(le,2),ue=de[0],he=de[1],fe=(0,o.useState)([]),xe=(0,f.Z)(fe,2),me=xe[0],pe=xe[1],ve=(0,o.useState)(!1),je=(0,f.Z)(ve,2),be=je[0],ge=je[1],_e=[];C&&C.name&&(_e=C.name.split("/")),(0,o.useEffect)((function(){u||C||r((0,d.Eq)(!0))}),[u,C,r]),(0,o.useEffect)((function(){u&&""!==t&&a.h.buckets.listObjects(n,{prefix:t,with_versions:j}).then((function(e){var n=m()(e.data,"objects",[]),o=(0,l.IO)(t),i=n.filter((function(e){return e.name===o}));j?(O(i.find((function(e){return e.is_latest}))||Fe),P(i)):(O(i[0]),P([])),r((0,d.Eq)(!1))})).catch((function(e){r((0,E.Ih)((0,v.g)(e.error))),r((0,d.Eq)(!1))}))}),[u,n,t,r,j]);var Te=function(e){B(e),T(!0)},we=function(e){B(e),ie(!0)},Ie=function(e){J(e),G(!0)},ke=function(e){V(r,n,t,e)},Ne=function(e){r((0,d.M3)(e.version_id||""))},Ze=D.filter((function(e){return!!e.version_id&&e.version_id.includes(c)})),Be=D.reduce((function(e,t){return t.size?e+t.size:e}),0);Ze.sort((function(e,t){if("size"===$)return e.size&&t.size?e.sizet.size?1:0:0;var n=new Date(e.last_modified||"").getTime(),o=new Date(t.last_modified||"").getTime();return no?-1:0}));var Le=function(e){if(me.includes(e)){var t=me.filter((function(t){return t!==e}));pe(t)}else{var n=(0,h.Z)(me);n.push(e),pe(n)}};return(0,I.jsxs)(o.Fragment,{children:[S&&C&&(0,I.jsx)(te.default,{open:S,closeModalAndRefresh:function(){B(null),T(!1),ie(!1)},bucketName:n,dataObject:N||C}),U&&C&&H&&(0,I.jsx)(Se,{restoreOpen:U,bucketName:n,versionToRestore:H,objectPath:C.name||"",onCloseAndUpdate:function(e){G(!1),J(null),e&&(r((0,d.Eq)(!0)),r((0,d.vH)(!0)))}}),oe&&C&&(0,I.jsx)(X.default,{open:oe,bucketName:n,object:{name:C.name||"",version_id:N&&N.version_id?N.version_id:"null",size:N&&N.size?N.size:0,content_type:"",last_modified:C.last_modified||""},onClosePreview:function(){ie(!1)}}),se&&(0,I.jsx)(Ce,{deleteOpen:se,closeDeleteModalAndRefresh:function(e){ce(!1),e&&(r((0,d.Eq)(!0)),r((0,d.M3)("")),r((0,d.vH)(!0)))},selectedBucket:n,selectedObject:t}),be&&(0,I.jsx)(Ee,{selectedBucket:n,selectedObject:(0,l.IO)(t),deleteOpen:be,selectedVersions:me,closeDeleteModalAndRefresh:function(e){ge(!1),e&&(r((0,d.Eq)(!0)),r((0,d.M3)("")),r((0,d.vH)(!0)),pe([]))}}),(0,I.jsxs)(p.rjZ,{container:!0,sx:{width:"100%",padding:10,"@media (max-width: 799px)":{minHeight:800}},children:[!C&&(0,I.jsx)(p.rjZ,{item:!0,xs:12,children:(0,I.jsx)(p.kod,{})}),C&&(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)(p.rjZ,{item:!0,xs:12,children:(0,I.jsx)(Z,{bucketName:n,internalPaths:(0,l.IO)(t),hidePathButton:!0})}),(0,I.jsx)(p.rjZ,{item:!0,xs:12,sx:(0,g.Z)({position:"relative","& .detailsSpacer":{marginRight:18,"@media (max-width: 600px)":{marginRight:0}}},"@media (max-width: ".concat(p.Egj.md,"px)"),{"&::before":{display:"none"}}),children:(0,I.jsx)(p.UHn,{icon:(0,I.jsx)("span",{style:{display:"block",marginTop:"-10px"},children:(0,I.jsx)(p.cRd,{style:{width:20,height:20}})}),title:"".concat(_e.length>0?_e[_e.length-1]:C.name," Versions"),subTitle:(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)("span",{className:"detailsSpacer",children:(0,I.jsxs)("strong",{children:[D.length," Version",1===D.length?"":"s","\xa0\xa0\xa0"]})}),(0,I.jsx)("span",{className:"detailsSpacer",children:(0,I.jsx)("strong",{children:(0,l.l5)(Be)})})]}),actions:(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)(W.Z,{tooltip:"Select Multiple Versions",children:(0,I.jsx)(p.zxk,{id:"select-multiple-versions",onClick:function(){he(!ue)},icon:(0,I.jsx)(p.amE,{}),variant:ue?"callAction":"regular",style:{marginRight:8}})}),ue&&(0,I.jsx)(W.Z,{tooltip:"Delete Selected Versions",children:(0,I.jsx)(p.zxk,{id:"delete-multiple-versions",onClick:function(){ge(!0)},icon:(0,I.jsx)(p.pJl,{}),variant:"secondary",style:{marginRight:8},disabled:0===me.length})}),(0,I.jsx)(W.Z,{tooltip:"Delete Non Current Versions",children:(0,I.jsx)(p.zxk,{id:"delete-non-current",onClick:function(){ce(!0)},icon:(0,I.jsx)(p.utM,{}),variant:"secondary",style:{marginRight:15},disabled:D.length<=1})}),(0,I.jsx)(p.PhF,{id:"sort-by",options:[{label:"Date",value:"date"},{label:"Size",value:"size"}],value:$,label:"Sort by",onChange:function(e){Q(e)},noLabelMinWidth:!0})]}),bottomBorder:!1})}),(0,I.jsx)(p.rjZ,{item:!0,xs:12,sx:(0,g.Z)({flexGrow:1,height:"calc(100% - 120px)",overflow:"auto"},"@media (max-width: ".concat(p.Egj.md,"px)"),{height:600}),children:C.version_id&&"null"!==C.version_id&&(0,I.jsx)(Oe.aV,{style:{width:"100%"},containerStyle:{width:"100%",maxWidth:"100%"},width:1,height:800,rowCount:Ze.length,rowHeight:108,rowRenderer:function(e){var t=e.key,n=e.index,o=(e.isScrolling,e.isVisible,e.style),i=D.length-n;return(0,I.jsx)(ye,{style:o,fileName:(null===C||void 0===C?void 0:C.name)||"",versionInfo:Ze[n],index:i,onDownload:ke,onRestore:Ie,onShare:Te,onPreview:we,globalClick:Ne,isSelected:x===Ze[n].version_id,checkable:ue,onCheck:Le,isChecked:me.includes(Ze[n].version_id||"")},t)}})})]})]})]})},ke=function(e){if(e.name.endsWith("/"))return"";var t=b.ou.now(),n=b.ou.fromISO(e.last_modified);return t.hasSame(n,"day")&&t.hasSame(n,"month")&&t.hasSame(n,"year")?"Today, ".concat(n.toFormat("HH:mm")):n.toFormat("ccc, LLL dd yyyy HH:mm (ZZZZ)")},Ne=function(e){return e.name.endsWith("/")||!e.size?"-":(0,l.ae)(String(e.size))},Ze=[{label:"Name",elementKey:"name",renderFunction:Q,enableSort:!0},{label:"Last Modified",elementKey:"last_modified",renderFunction:ke,renderFullObject:!0,enableSort:!0},{label:"Size",elementKey:"size",renderFunction:Ne,renderFullObject:!0,width:100,enableSort:!0}],Be=[{label:"Name",elementKey:"name",renderFunction:Q,enableSort:!0},{label:"Object Date",elementKey:"last_modified",renderFunction:ke,renderFullObject:!0,enableSort:!0},{label:"Size",elementKey:"size",renderFunction:Ne,renderFullObject:!0,width:100,enableSort:!0},{label:"Deleted",elementKey:"delete_flag",renderFunction:function(e){return e?"Yes":"No"},width:60}],Le=n(46078),Ae=function(){var e=(0,s.TL)(),t=(0,r.UO)(),n=(0,r.s0)(),a=(0,o.useState)("ASC"),u=(0,f.Z)(a,2),x=u[0],v=u[1],j=(0,o.useState)("name"),b=(0,f.Z)(j,2),g=b[0],_=b[1],S=t.bucketName||"",T=(0,i.v9)((function(e){return e.objectBrowser.objectDetailsOpen})),w=(0,i.v9)((function(e){return e.objectBrowser.requestInProgress})),C=(0,i.v9)(Le.$4),E=!(null===C||void 0===C||!C.includes("object-browser-only")),O=(0,i.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),F=(0,i.v9)((function(e){return e.objectBrowser.records})),k=(0,i.v9)((function(e){return e.objectBrowser.searchObjects})),N=(0,i.v9)((function(e){return e.objectBrowser.selectedObjects})),Z=(0,i.v9)((function(e){return e.objectBrowser.connectionError})),L=(0,i.v9)((function(e){return e.system.anonymousMode})),A=(0,y.F)(S,[c.Ft.S3_LIST_BUCKET,c.Ft.S3_ALL_LIST_BUCKET]),D=F.filter((function(e){return""===k||e.name.toLowerCase().indexOf(k.toLowerCase())>=0})).sort((0,B.P_)(g)),P=[];P="ASC"===x?D:D.reverse();var R=[{type:"view",tooltip:"View",onClick:function(t){var o,i=t.name||"",r="/browser/".concat(S).concat(i?"/".concat((0,l.LL)(i)):"");!L||null!==(o=t.name)&&void 0!==o&&o.endsWith("/")?(e((0,d.S2)([])),n(r),L||(e((0,d.vb)(!0)),e((0,d.Eq)(!0))),e((0,d.EE)("".concat(i?"".concat((0,l.LL)(i)):"")))):V(e,S,"".concat((0,l.LL)(i)),t)},sendOnlyId:!1}],M=A||L?"This location is empty".concat(O?"":", please try uploading a new file"):(0,c.MK)([c.Ft.S3_LIST_BUCKET,c.Ft.S3_ALL_LIST_BUCKET],"view Objects in this bucket");Z&&(M="Objects List unavailable. Please review your WebSockets configuration and try again");var U="calc(100vh - 290px)";return E&&(U="calc(100vh - 315px)"),(0,I.jsx)(p.wQF,{itemActions:R,columns:O?Be:Ze,isLoading:w,entityName:"Objects",idField:"name",records:P,customPaperHeight:U,selectedItems:N,onSelect:L?void 0:function(t){var n=t.target,o=n.value,i=n.checked,r=(0,h.Z)(N);return i?r.push(o):r=r.filter((function(e){return e!==o})),e((0,d.S2)(r)),e((0,d.EE)(null)),r},customEmptyMessage:M,sortConfig:{currentSort:g,currentDirection:x,triggerSort:function(t){var n=m()(t,"sortDirection","DESC");_(t.sortBy),v(n),e((0,d.$3)(!0))}},onSelectAll:function(){if(e((0,d.EE)(null)),N.length!==P.length){var t=P.map((function(e){return e.name}));e((0,d.S2)(t))}else e((0,d.S2)([]))},rowStyle:function(e){var t,n=e.index;return null!==(t=P[n])&&void 0!==t&&t.delete_flag?"deleted":""},sx:{minHeight:T?"100%":"initial"},noBackground:!0})},De=n(59114),Pe=function(){var e=(0,s.TL)(),t=(0,i.v9)((function(e){return e.objectBrowser.searchObjects}));return(0,I.jsx)(De.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:function(t){e((0,d.G4)(t))},value:t})},Re=n(94619),Me=(0,C.Z)(o.lazy((function(){return n.e(711).then(n.bind(n,50711))}))),Ue=(0,C.Z)(o.lazy((function(){return Promise.resolve().then(n.bind(n,34433))}))),Ge=(0,C.Z)(o.lazy((function(){return Promise.all([n.e(2631),n.e(8850)]).then(n.bind(n,26901))}))),ze=(0,C.Z)(o.lazy((function(){return Promise.resolve().then(n.bind(n,78562))}))),Ke={borderWidth:2,borderRadius:2,borderColor:"transparent",outline:"none"},We={borderStyle:"dashed",backgroundColor:"transparent",borderColor:"#2196f3"},He={borderStyle:"dashed",backgroundColor:"transparent",borderColor:"#00e676"},Je=function(){var e,t=(0,s.TL)(),n=(0,r.UO)(),x=(0,r.s0)(),g=(0,r.TH)(),_=(0,i.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),S=(0,i.v9)((function(e){return e.objectBrowser.rewind.bucketToRewind})),T=(0,i.v9)((function(e){return e.objectBrowser.versionsMode})),w=(0,i.v9)((function(e){return e.objectBrowser.showDeleted})),C=(0,i.v9)((function(e){return e.objectBrowser.objectDetailsOpen})),k=(0,i.v9)((function(e){return e.objectBrowser.selectedInternalPaths})),N=(0,i.v9)((function(e){return e.objectBrowser.requestInProgress})),P=(0,i.v9)((function(e){return e.objectBrowser.simplePath})),R=(0,i.v9)((function(e){return e.objectBrowser.versionInfo})),M=(0,i.v9)((function(e){return e.objectBrowser.lockingEnabled})),V=(0,i.v9)((function(e){return e.objectBrowser.downloadRenameModal})),Y=(0,i.v9)((function(e){return e.objectBrowser.selectedPreview})),q=(0,i.v9)((function(e){return e.objectBrowser.shareFileModalOpen})),$=(0,i.v9)((function(e){return e.objectBrowser.previewOpen})),Q=(0,i.v9)((function(e){return e.objectBrowser.selectedBucket})),X=(0,i.v9)((function(e){return e.system.anonymousMode})),ee=(0,i.v9)((function(e){return e.objectBrowser.anonymousAccessOpen})),te=(0,i.v9)(D.HQ),ne=(0,i.v9)(D.G6),oe=(0,o.useState)(!1),ie=(0,f.Z)(oe,2),re=ie[0],ae=ie[1],se=(0,o.useState)(!1),ce=(0,f.Z)(se,2),le=ce[0],de=ce[1],ue=(0,o.useState)(!1),he=(0,f.Z)(ue,2),fe=he[0],xe=he[1],me=(0,o.useState)(!1),pe=(0,f.Z)(me,2),ve=pe[0],je=pe[1],ge=(0,o.useState)(!1),Se=(0,f.Z)(ge,2),Te=Se[0],we=Se[1],ye=(0,o.useState)(null),Ce=(0,f.Z)(ye,2),Ee=Ce[0],Oe=Ce[1],Fe=(0,o.useState)(null),ke=(0,f.Z)(Fe,2),Ne=ke[0],Ze=ke[1],Be=(0,o.useState)(!1),Le=(0,f.Z)(Be,2),De=Le[0],Je=Le[1],Ve=L(R.status),Ye=n.bucketName||"",qe=g.pathname.split("/browser/".concat(Ye,"/")),$e=2===qe.length?qe[1]:"",Qe=(0,l.IO)($e),Xe=Qe.split("/").filter((function(e){return""!==e})),et=[Ye];Xe.length>0&&(et=et.concat(Xe));var tt=(0,o.useRef)(null),nt=(0,o.useRef)(null),ot=(0,i.v9)((function(e){return e.console.session&&e.console.session.permissions||{}})),it=[c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],rt=et.join("/"),at=function(e,t){var n=F(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]).reduce((function(e,t){var n=O(t);return n&&e.push(".".concat(n)),e}),[]);return(0,h.Z)(new Set(n)).join(",")}(ot,rt,it),st=F(ot,rt,it),ct=(0,y.F)([rt].concat((0,h.Z)(st)),[c.Ft.S3_GET_OBJECT,c.Ft.S3_GET_ACTIONS]),lt=(0,y.F)([rt].concat((0,h.Z)(st)),[c.Ft.S3_DELETE_OBJECT]),dt=(0,y.F)([rt].concat((0,h.Z)(st)),it)||X,ut=(0,y.F)(Ye,[c.Ft.S3_GET_BUCKET_POLICY,c.Ft.S3_PUT_BUCKET_POLICY,c.Ft.S3_GET_ACTIONS,c.Ft.S3_PUT_ACTIONS]),ht=(0,i.v9)((function(e){return e.objectBrowser.selectedObjects})),ft=(0,o.useCallback)((function(){var e=ht[0];if(!De){var t=(0,l.LL)(e);a.h.buckets.getObjectMetadata(Ye,{prefix:t}).then((function(e){var t=m()(e.data,"objectMetadata",{});Je(!0),Ze(t)})).catch((function(e){console.error("Error Getting Metadata Status: ",e,null===e||void 0===e?void 0:e.detailedError),Je(!0)}))}}),[Ye,ht,De]);(0,o.useEffect)((function(){Ye&&1===ht.length&&ft()}),[Ye,ht,ft]),(0,o.useEffect)((function(){_&&S!==Ye&&t((0,d._w)())}),[_,S,Ye,t]),(0,o.useEffect)((function(){null!==nt.current&&(nt.current.setAttribute("directory",""),nt.current.setAttribute("webkitdirectory",""))}),[nt]),(0,o.useEffect)((function(){if(1===ht.length){var e=ht[0],t=(0,B.s7)(Ne,e);we(!("none"===t||!ct)),e.endsWith("/")||ct?je(!0):je(!1)}else je(!1),we(!1)}),[ht,ct,Ne]),(0,o.useEffect)((function(){Ee||X||a.h.buckets.getBucketQuota(Ye).then((function(e){var t=null;e.data.quota&&(t=e.data),Oe(t)})).catch((function(e){console.error("Error Getting Quota Status: ",e.error.detailedMessage),Oe(null)}))}),[Ee,Ye,X]),(0,o.useEffect)((function(){ht.length>0?t((0,d.vb)(!0)):0!==ht.length||null!==k||N||t((0,d.vb)(!1))}),[ht,k,t,N]),(0,o.useEffect)((function(){fe||(t((0,D.d5)(!0)),xe(!0))}),[fe,t,xe]),(0,o.useEffect)((function(){!N&&!te||X||a.h.buckets.bucketInfo(Ye).then((function(e){t((0,D.d5)(!1)),t((0,D.f4)(e.data))})).catch((function(e){t((0,D.d5)(!1)),t((0,E.Ih)((0,v.g)(e)))}))}),[Ye,te,t,X,N]),(0,o.useEffect)((function(){""!==Q&&a.h.buckets.getBucketRetentionConfig(Q).then((function(e){t((0,d.c8)(e.data))})).catch((function(){t((0,d.c8)(null))}))}),[Q,t]);var xt=function(e){if(null!==e&&void 0!==e&&null!==e.target.files&&void 0!==e.target.files){e.preventDefault();for(var t=[],n=0;n1,w="An error occurred while uploading the file".concat(T?"s":"","."),y={413:"Error - File size too large"};S.withCredentials=!1,S.onload=function(){if(S.status>=200&&S.status<300)t((0,d.oK)(_)),a({status:S.status}),(0,A.GM)(j);else{if(y[S.status])w=y[S.status];else if(S.response)try{var e=JSON.parse(S.response);w=e.detailedMessage}catch(n){w="something went wrong"}t((0,d.qJ)({instanceID:_,msg:w})),s({status:S.status,message:w}),(0,A.GM)(j)}},S.upload.addEventListener("error",(function(){s(w),t((0,d.qJ)({instanceID:_,msg:"A network error occurred."}))})),S.upload.addEventListener("progress",(function(e){var n=Math.floor(100*e.loaded/e.total);t((0,d.RO)({instanceID:_,progress:n}))})),S.onerror=function(){s(w),t((0,d.qJ)({instanceID:_,msg:"A network error occurred."}))},S.onloadend=function(){0===e.length&&t((0,d.$3)(!0))},S.onabort=function(){t((0,d.Im)(_))};var C=new FormData;void 0!==r.size&&(C.append(r.size.toString(),h,u),(0,A.EN)(j,S),t((0,d.Mc)({ID:j,bucketName:n,done:!1,instanceID:_,percentage:0,prefix:"".concat((0,l.IO)(f)).concat(u),type:"upload",waitingForFile:!1,failed:!1,cancelled:!1,errorMessage:""})),(0,A.N5)(j,C))}))},a=[];t((0,d.LD)());for(var s=0;s0){var o=a.length,i=a.length-n.length,r={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(i,"/").concat(o)};t((0,E.Ih)(r))}t((0,d.$3)(!0))}))}(e,Ye,o,n)}),[Ye,t,P,X]),pt=(0,o.useCallback)((function(e){if(e&&e.length>0&&dt){var n,o,i=e[0].path,r=e;if(at.length>0&&(r=e.filter((function(e){var t=O(e.name);return at.includes(t)}))),r.length)mt(r,i),(n=console).log.apply(n,["".concat(r.length," Allowed Files Processed out of ").concat(e.length,"."),rt].concat((0,h.Z)(st))),r.length!==e.length&&t((0,E.Ih)({errorMessage:"Upload is restricted.",detailedError:(0,c.MK)([c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],"upload objects to this location")}));else t((0,E.Ih)({errorMessage:"Could not process drag and drop.",detailedError:(0,c.MK)([c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],"upload objects to this location")})),(o=console).error.apply(o,["Could not process drag and drop . upload may be restricted.",rt].concat((0,h.Z)(st)))}dt||t((0,E.Ih)({errorMessage:"Upload not allowed",detailedError:(0,c.MK)([c.Ft.S3_PUT_OBJECT,c.Ft.S3_PUT_ACTIONS],"upload objects to this location")}))}),[mt]),vt=(0,j.uI)({noClick:!0,onDrop:pt}),jt=vt.getRootProps,bt=vt.getInputProps,gt=vt.isDragActive,_t=vt.isDragAccept,St=(0,o.useMemo)((function(){return(0,u.Z)((0,u.Z)((0,u.Z)({},Ke),gt?We:{}),_t?He:{})}),[gt,_t]),Tt=function(e){if(t((0,d.EE)(null)),t((0,d.db)({status:!1})),C&&null!==k){var n=(0,l.IO)($e).split("/");n.pop();var o="";n&&n.length>0&&(o="".concat(n.join("/"),"/")),x("/browser/".concat(Ye,"/").concat((0,l.LL)(o)))}t((0,d.vb)(!1)),e&&t((0,d.$3)(!0))},wt=b.ou.now();null!==ne&&void 0!==ne&&ne.creation_date&&(wt=b.ou.fromISO(ne.creation_date));var yt=(null===ht||void 0===ht?void 0:ht.length)<=1?"Download Selected":" Download selected objects as Zip. Any Deleted objects in the selection would be skipped from download.",Ct=[{action:function(){t(U(Ye))},label:"Download",disabled:!ct||0===(null===ht||void 0===ht?void 0:ht.length),icon:(0,I.jsx)(p._8t,{}),tooltip:ct?yt:(0,c.MK)([c.Ft.S3_GET_OBJECT,c.Ft.S3_GET_ACTIONS],"download objects from this bucket")},{action:function(){t(z())},label:"Share",disabled:1!==ht.length||!ve,icon:(0,I.jsx)(p.aAc,{}),tooltip:ve?"Share Selected File":"Sharing unavailable"},{action:function(){t(G())},label:"Preview",disabled:1!==ht.length||!Te,icon:(0,I.jsx)(p.P99,{}),tooltip:Te?"Preview Selected File":"Preview unavailable"},{action:function(){t(K())},label:"Anonymous Access",disabled:1!==ht.length||!ht[0].endsWith("/")||!ut,icon:(0,I.jsx)(p.cuP,{}),tooltip:1===ht.length&&ht[0].endsWith("/")?"Set Anonymous Access to this Folder":"Anonymous Access unavailable"},{action:function(){ae(!0)},label:"Delete",icon:(0,I.jsx)(p.pJl,{}),disabled:!lt||0===ht.length,tooltip:lt?"Delete Selected Files":(0,c.MK)([c.Ft.S3_DELETE_OBJECT],"delete objects in this bucket")}];return(0,I.jsxs)(o.Fragment,{children:[q&&Y&&(0,I.jsx)(Ue,{open:q,closeModalAndRefresh:function(){t((0,d.Qf)(!1)),t((0,d.eP)(null))},bucketName:Ye,dataObject:{name:Y.name,last_modified:"",version_id:Y.version_id}}),re&&(0,I.jsx)(Me,{deleteOpen:re,selectedBucket:Ye,selectedObjects:ht,closeDeleteModalAndRefresh:function(e){ae(!1),e&&(t((0,E.y1)("Objects deleted successfully.")),t((0,d.S2)([])),t((0,d.$3)(!0)))},versioning:R}),le&&(0,I.jsx)(Ge,{open:le,closeModalAndRefresh:function(){de(!1)},bucketName:Ye}),$&&(0,I.jsx)(ze,{open:$,bucketName:Ye,object:Y,onClosePreview:function(){t((0,d.ei)(!1)),t((0,d.eP)(null))}}),!!V&&(0,I.jsx)(be,{open:!!V,closeModal:function(){t((0,d.$y)(null))},currentItem:(null===(e=V.name.split("/"))||void 0===e?void 0:e.pop())||"",bucketName:Ye,internalPaths:$e,actualInfo:{name:V.name,last_modified:"",version_id:V.version_id,size:V.size}}),ee&&(0,I.jsx)(Re.default,{onClose:function(){t((0,d.xV)(!1))},bucket:Ye,modalOpen:ee,prefilledRoute:"".concat(ht[0],"*")}),(0,I.jsxs)(p.Xgh,{variant:"full",children:[X&&(0,I.jsx)("div",{style:{paddingBottom:16},children:(0,I.jsx)(Pe,{})}),(0,I.jsx)(p.xuv,{withBorders:!0,sx:{padding:"0 5px"},children:(0,I.jsx)(p.UHn,{icon:(0,I.jsx)("span",{children:(0,I.jsx)(p.wNb,{style:{width:30}})}),title:Ye,subTitle:X?null:(0,I.jsxs)(p.xuv,{sx:{"& .detailsSpacer":{marginRight:18,"@media (max-width: 600px)":{marginRight:0}}},children:[(0,I.jsxs)("span",{className:"detailsSpacer",children:["Created on:\xa0",(0,I.jsx)("strong",{children:null!==ne&&void 0!==ne&&ne.creation_date?wt.toFormat("ccc, LLL dd yyyy HH:mm:ss (ZZZZ)"):""})]}),(0,I.jsxs)("span",{className:"detailsSpacer",children:["Access:\xa0\xa0",(0,I.jsx)("strong",{children:(null===ne||void 0===ne?void 0:ne.access)||""})]}),ne&&(0,I.jsx)(o.Fragment,{children:(0,I.jsxs)("span",{className:"detailsSpacer",children:[ne.size&&(0,I.jsx)(o.Fragment,{children:(0,l.l5)(ne.size)}),ne.size&&Ee&&(0,I.jsxs)(o.Fragment,{children:[" ","/ ",(0,l.l5)(Ee.quota||0)]}),ne.size&&ne.objects?" - ":"",ne.objects&&(0,I.jsxs)(o.Fragment,{children:[ne.objects,"\xa0Object",ne.objects&&1!==ne.objects?"s":""]})]})})]}),actions:(0,I.jsxs)(o.Fragment,{children:[!X&&(0,I.jsx)(W.Z,{tooltip:"Rewind Bucket",children:(0,I.jsx)(p.zxk,{id:"rewind-objects-list",label:"Rewind",icon:(0,I.jsx)(p.Cts,{color:"alert",dotOnly:!0,invisible:!_,children:(0,I.jsx)(p.F_y,{style:{minWidth:16,minHeight:16,width:16,height:16,marginTop:-3}})}),variant:"regular",onClick:function(){de(!0)},disabled:!Ve||!(0,y.F)(Ye,[c.Ft.S3_GET_OBJECT,c.Ft.S3_GET_ACTIONS])})}),(0,I.jsx)(W.Z,{tooltip:"Reload List",children:(0,I.jsx)(p.zxk,{id:"refresh-objects-list",label:"Refresh",icon:(0,I.jsx)(p.DuK,{}),variant:"regular",onClick:function(){T?t((0,d.Eq)(!0)):(t((0,d.o_)()),t((0,d.$3)(!0)))},disabled:!X&&(!(0,y.F)(Ye,[c.Ft.S3_LIST_BUCKET,c.Ft.S3_ALL_LIST_BUCKET])||_)})}),(0,I.jsx)("input",{type:"file",multiple:!0,accept:at||void 0,onChange:xt,style:{display:"none"},ref:tt}),(0,I.jsx)("input",{type:"file",multiple:!0,onChange:xt,style:{display:"none"},ref:nt}),(0,I.jsx)(H,{bucketName:Ye,uploadPath:rt,uploadFileFunction:function(e){tt&&tt.current&&tt.current.click(),e()},uploadFolderFunction:function(e){nt&&nt.current&&nt.current.click(),e()}})]}),bottomBorder:!1})}),(0,I.jsxs)("div",(0,u.Z)((0,u.Z)({id:"object-list-wrapper"},jt({style:(0,u.Z)({},St)})),{},{children:[(0,I.jsx)("input",(0,u.Z)({},bt())),(0,I.jsxs)(p.xuv,{withBorders:!0,sx:{display:"flex",borderTop:0,padding:0,"& .hideListOnSmall":{"@media (max-width: 799px)":{display:"none"}}},children:[T?(0,I.jsx)(o.Fragment,{children:null!==k&&(0,I.jsx)(Ie,{internalPaths:k,bucketName:Ye})}):(0,I.jsx)(y.s,{scopes:[c.Ft.S3_LIST_BUCKET,c.Ft.S3_ALL_LIST_BUCKET],resource:Ye,errorProps:{disabled:!0},children:(0,I.jsxs)(p.rjZ,{item:!0,xs:12,sx:{width:"100%",position:"relative","&.detailsOpen":{"@media (max-width: 799px)":{display:"none"}}},className:C?"detailsOpen":"",children:[!X&&(0,I.jsx)(p.rjZ,{item:!0,xs:12,sx:{padding:"12px 14px 5px"},children:(0,I.jsx)(Z,{bucketName:Ye,internalPaths:Qe,additionalOptions:!Ve||_?null:(0,I.jsx)(p.XZJ,{name:"deleted_objects",id:"showDeletedObjects",value:"deleted_on",label:"Show deleted objects",onChange:function(){t((0,d.o_)()),t((0,d.mz)(!w)),Tt(!0)},checked:w,sx:{marginLeft:5,"@media (max-width: 600px)":{marginLeft:0,flexDirection:"row"}}}),hidePathButton:!1})}),(0,I.jsx)(Ae,{})]})}),!X&&(0,I.jsx)(y.s,{scopes:[c.Ft.S3_LIST_BUCKET,c.Ft.S3_ALL_LIST_BUCKET],resource:Ye,errorProps:{disabled:!0},children:(0,I.jsxs)(J,{open:C,closePanel:function(){Tt(!1)},className:"".concat(T?"hideListOnSmall":""),children:[ht.length>0&&(0,I.jsx)(p.Wk,{items:Ct,title:"Selected Objects:"}),null!==k&&(0,I.jsx)(_e,{internalPaths:k,bucketName:Ye,onClosePanel:Tt,versioningInfo:R,locking:M})]})})]})]}))]})]})},Ve=n(49535),Ye=n(73996),qe=n(47974),$e=n(4677),Qe=n(99670),Xe=function(e){var t=e.bucketName,n=(0,s.TL)(),a=(0,i.v9)(Le.$4),l=(0,i.v9)((function(e){return e.objectBrowser.versionsMode})),u=(0,i.v9)((function(e){return e.objectBrowser.versionedFile})),h=(0,i.v9)((function(e){return e.objectBrowser.searchVersions})),f=!(null===a||void 0===a||!a.includes("object-browser-only")),x=(0,r.s0)(),m=(0,Ve.Z)(t,[c.Ft.S3_GET_BUCKET_POLICY,c.Ft.S3_PUT_BUCKET_POLICY,c.Ft.S3_GET_BUCKET_VERSIONING,c.Ft.S3_PUT_BUCKET_VERSIONING,c.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,c.Ft.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION,c.Ft.S3_DELETE_BUCKET,c.Ft.S3_GET_BUCKET_NOTIFICATIONS,c.Ft.S3_PUT_BUCKET_NOTIFICATIONS,c.Ft.S3_GET_REPLICATION_CONFIGURATION,c.Ft.S3_PUT_REPLICATION_CONFIGURATION,c.Ft.S3_GET_LIFECYCLE_CONFIGURATION,c.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,c.Ft.ADMIN_GET_BUCKET_QUOTA,c.Ft.ADMIN_SET_BUCKET_QUOTA,c.Ft.S3_PUT_BUCKET_TAGGING,c.Ft.S3_GET_BUCKET_TAGGING,c.Ft.S3_LIST_BUCKET_VERSIONS,c.Ft.S3_GET_BUCKET_POLICY_STATUS,c.Ft.S3_DELETE_BUCKET_POLICY,c.Ft.S3_GET_ACTIONS,c.Ft.S3_PUT_ACTIONS]),v=(0,I.jsx)(o.Fragment,{children:l?(0,I.jsx)(o.Fragment,{children:(0,I.jsx)(De.Z,{placeholder:"Start typing to filter versions of ".concat(u),onChange:function(e){n((0,d.Pr)(e))},value:h})}):(0,I.jsx)(y.s,{scopes:[c.Ft.S3_LIST_BUCKET,c.Ft.S3_ALL_LIST_BUCKET],resource:t,errorProps:{disabled:!0},children:(0,I.jsx)(Pe,{})})});return(0,o.useEffect)((function(){n((0,E.Sc)("object_browser"))}),[]),(0,I.jsx)(o.Fragment,{children:f?(0,I.jsxs)(p.rjZ,{container:!0,sx:{padding:"20px 32px 0"},children:[(0,I.jsx)(p.rjZ,{children:(0,I.jsx)(Ye.Z,{marginRight:30,marginTop:10})}),(0,I.jsxs)(p.rjZ,{item:!0,xs:!0,sx:{display:"flex",gap:10},children:[v,(0,I.jsx)($e.Z,{})]})]}):(0,I.jsx)(qe.Z,{label:(0,I.jsx)(p.hbI,{label:"Object Browser",onClick:function(){x(c.gA.OBJECT_BROWSER_VIEW)}}),actions:(0,I.jsxs)(o.Fragment,{children:[(0,I.jsx)(y.s,{scopes:c.D[c.EI.BUCKET_ADMIN],resource:t,errorProps:{disabled:!0},children:(0,I.jsx)(W.Z,{tooltip:m?"Configure Bucket":"You do not have the required permissions to configure this bucket. Please contact your MinIO administrator to request "+c.EI.BUCKET_ADMIN+" permisions.",children:(0,I.jsx)(p.zxk,{id:"configure-bucket-main",color:"primary","aria-label":"Configure Bucket",onClick:function(){return x("/buckets/".concat(t,"/admin"))},icon:(0,I.jsx)(p.ewm,{style:{width:20,height:20,marginTop:-3}}),style:{padding:"0 10px"}})})}),(0,I.jsx)(Qe.Z,{})]}),middleComponent:v})})},et=function(){var e=(0,s.TL)(),t=(0,r.UO)(),n=(0,r.TH)(),u=(0,i.v9)((function(e){return e.objectBrowser.loadingVersioning})),h=(0,i.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),f=(0,i.v9)((function(e){return e.objectBrowser.rewind.dateToRewind})),x=(0,i.v9)((function(e){return e.objectBrowser.showDeleted})),m=(0,i.v9)((function(e){return e.objectBrowser.requestInProgress})),p=(0,i.v9)((function(e){return e.objectBrowser.loadingLocking})),v=(0,i.v9)((function(e){return e.objectBrowser.reloadObjectsList})),j=(0,i.v9)((function(e){return e.objectBrowser.simplePath})),b=(0,i.v9)((function(e){return e.system.anonymousMode})),g=(0,i.v9)((function(e){return e.objectBrowser.selectedBucket})),_=(0,i.v9)((function(e){return e.objectBrowser.records})),S=t.bucketName||"",T=n.pathname.split("/browser/".concat(S,"/")),w=2===T.length?T[1]:"",y=(0,o.useCallback)((function(t){var n=(new Date).toISOString();null!==f&&h&&(n=f),e({type:"socket/OBRequest",payload:{bucketName:S,path:t,rewindMode:h||x,date:n}})}),[S,x,f,h,e]),C=(0,o.useCallback)((function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=(0,l.IO)(w);e((0,d.db)({status:!1}));var o=n;n.endsWith("/")||""===n||(o="".concat(n.split("/").slice(0,-1).join("/"),"/")),"/"===o&&(o=""),(o!==j||S!==g||t)&&(e((0,d.zD)(!0)),y(o))}),[w,e,j,g,S,y]);(0,o.useEffect)((function(){return function(){e({type:"socket/OBCancelLast"})}}),[e]),(0,o.useEffect)((function(){var t=(0,l.IO)(w);e((0,d.IJ)(!0)),t.endsWith("/")||""===t?(e((0,d.vb)(!1)),e((0,d.EE)(null)),e((0,d.Jn)(!0))):(e((0,d.vH)(!0)),e((0,d.vb)(!0)),e((0,d.Eq)(!0)),e((0,d.EE)("".concat(t?"".concat((0,l.LL)(t)):""))))}),[S,w,f,h,e]),(0,o.useEffect)((function(){C(!1)}),[C]),(0,o.useEffect)((function(){v&&0===_.length&&!m&&C(!0)}),[v,_,m,C]);var E=(0,Ve.Z)(S,[c.Ft.S3_LIST_BUCKET,c.Ft.S3_ALL_LIST_BUCKET])||b;return(0,o.useEffect)((function(){u&&!b&&(E?a.h.buckets.getBucketVersioning(S).then((function(t){e((0,d.lS)(t.data)),e((0,d.IJ)(!1))})).catch((function(t){console.error("Error Getting Object Versioning Status: ",t.error.detailedMessage),e((0,d.IJ)(!1))})):(e((0,d.IJ)(!1)),e((0,d.o_)())))}),[S,u,e,E,b]),(0,o.useEffect)((function(){p&&(E?a.h.buckets.getBucketObjectLockingStatus(S).then((function(t){e((0,d.lY)(t.data.object_locking_enabled)),e((0,d.Jn)(!1))})).catch((function(t){console.error("Error Getting Object Locking Status: ",t.error.detailedMessage),e((0,d.Jn)(!1))})):(e((0,d.o_)()),e((0,d.Jn)(!1))))}),[S,p,e,E]),(0,I.jsxs)(o.Fragment,{children:[!b&&(0,I.jsx)(Xe,{bucketName:S}),(0,I.jsx)(Je,{})]})}},34433:function(e,t,n){n.r(t),n.d(t,{default:function(){return j}});var o=n(29439),i=n(72791),r=n(78687),a=n(29945),s=n(78029),c=n.n(s),l=n(56028),d=n(99779),u=n(80184),h=function(e){var t=e.id,n=e.initialDate,r=e.label,s=e.maxDays,c=e.entity,l=e.onChange,h=(0,i.useState)(7),f=(0,o.Z)(h,2),x=f[0],m=f[1],p=(0,i.useState)(0),v=(0,o.Z)(p,2),j=v[0],b=v[1],g=(0,i.useState)(0),_=(0,o.Z)(g,2),S=_[0],T=_[1],w=(0,i.useState)(!0),y=(0,o.Z)(w,2),C=y[0],E=y[1],O=(0,i.useState)(d.ou.now()),F=(0,o.Z)(O,2),I=F[0],k=F[1];(0,i.useEffect)((function(){isNaN(j)||isNaN(x)||isNaN(S)||k(function(e,t,n,o){return d.ou.fromJSDate(e).plus({hours:n+24*t,minutes:o})}(n,x,j,S))}),[n,x,j,S]),(0,i.useEffect)((function(){if(C){var e=I.toFormat("yyyy-MM-dd HH:mm:ss");l(e.split(" ").join("T"),!0)}else l("0000-00-00",!1)}),[I,l,C]),(0,i.useEffect)((function(){var e=!0;(x<0||s&&x>s||isNaN(x))&&(e=!1),(j<0||j>23||isNaN(j))&&(e=!1),(S<0||S>59||isNaN(S))&&(e=!1),!s||x!==s||0===j&&0===S||(e=!1),x<=0&&j<=0&&S<=0&&(e=!1),E(e)}),[I,s,l,x,j,S]);var N={"& .textBoxContainer":{minWidth:0},"& input":{textAlign:"center",paddingRight:10,paddingLeft:10,width:40}};return(0,u.jsxs)(a.xuv,{className:"inputItem",children:[(0,u.jsx)(a.xuv,{sx:{display:"flex",alignItems:"center",marginBottom:5},children:(0,u.jsx)(a.AZs,{htmlFor:t,children:r})}),(0,u.jsxs)(a.xuv,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-evenly",gap:10,"& .reverseInput":{flexFlow:"row-reverse","& > label":{fontWeight:400,marginLeft:15,marginRight:25}}},children:[(0,u.jsx)(a.xuv,{children:(0,u.jsx)(a.Wzg,{id:t,className:"reverseInput removeArrows",type:"number",min:"0",max:s?s.toString():"999",label:"Days",name:t,onChange:function(e){m(parseInt(e.target.value))},value:x.toString(),sx:N,noLabelMinWidth:!0})}),(0,u.jsx)(a.xuv,{children:(0,u.jsx)(a.Wzg,{id:t,className:"reverseInput removeArrows",type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:function(e){b(parseInt(e.target.value))},value:j.toString(),sx:N,noLabelMinWidth:!0})}),(0,u.jsx)(a.xuv,{children:(0,u.jsx)(a.Wzg,{id:t,className:"reverseInput removeArrows",type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:function(e){T(parseInt(e.target.value))},value:S.toString(),sx:N,noLabelMinWidth:!0})})]}),(0,u.jsx)(a.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginTop:25,marginLeft:10,marginBottom:15,"& .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},"& .invalidDurationText":{marginTop:15,display:"flex",color:"red",fontSize:11}},children:C?(0,u.jsxs)("div",{className:"validityText",children:[(0,u.jsx)(a.xPt,{}),(0,u.jsxs)("div",{children:[c," will be available until:"]})," ",(0,u.jsx)("div",{className:"validTill",children:I.toFormat("MM/dd/yyyy HH:mm:ss ZZZZ")})]}):(0,u.jsx)("div",{className:"invalidDurationText",children:"Please select a valid duration."})})]})},f=n(45248),x=n(87995),m=n(44690),p=n(31776),v=n(82342),j=function(e){var t=e.open,n=e.closeModalAndRefresh,s=e.bucketName,d=e.dataObject,j=(0,m.TL)(),b=(0,r.v9)(x.N5),g=(0,i.useState)(""),_=(0,o.Z)(g,2),S=_[0],T=_[1],w=(0,i.useState)(!0),y=(0,o.Z)(w,2),C=y[0],E=y[1],O=(0,i.useState)(!1),F=(0,o.Z)(O,2),I=F[0],k=F[1],N=(0,i.useState)(""),Z=(0,o.Z)(N,2),B=Z[0],L=Z[1],A=(0,i.useState)(!0),D=(0,o.Z)(A,2),P=D[0],R=D[1],M=(0,i.useState)("null"),U=(0,o.Z)(M,2),G=U[0],z=U[1],K=new Date;return(0,i.useEffect)((function(){if(void 0===d.version_id)return b?(p.h.buckets.listObjects(s,{prefix:(0,f.LL)(d.name||""),with_versions:b}).then((function(e){var t=(e.data.objects||[]).find((function(e){return e.is_latest}));z(t?"".concat(t.version_id):"null")})).catch((function(e){j((0,x.zb)((0,v.g)(e.error)))})),void E(!1)):(z("null"),void E(!1));z(d.version_id||"null"),E(!1)}),[s,d,b,j]),(0,i.useEffect)((function(){if(P&&!C){k(!0),T("");var e=new Date("".concat(B)),t=new Date,n=Math.ceil((e.getTime()-t.getTime())/1e3);n>0&&p.h.buckets.shareObject(s,{prefix:(0,f.LL)(d.name||""),version_id:G,expires:""!==B?"".concat(n,"s"):""}).then((function(e){T(e.data),k(!1)})).catch((function(e){j((0,x.zb)((0,v.g)(e.error))),T(""),k(!1)}))}}),[d,B,s,P,T,j,b,C,G]),(0,u.jsx)(i.Fragment,{children:(0,u.jsxs)(l.Z,{title:"Share File",titleIcon:(0,u.jsx)(a.aAc,{style:{fill:"#4CCB92"}}),modalOpen:t,onClose:function(){n()},children:[C&&(0,u.jsx)(a.rjZ,{item:!0,xs:12,children:(0,u.jsx)(a.kod,{})}),!C&&(0,u.jsxs)(i.Fragment,{children:[(0,u.jsxs)(a.rjZ,{item:!0,xs:12,sx:{fontSize:14,fontWeight:400},children:["This is a temporary URL with integrated access credentials for sharing objects valid for up to 7 days.",(0,u.jsx)("br",{}),(0,u.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,u.jsx)("br",{}),(0,u.jsx)(a.rjZ,{item:!0,xs:12,children:(0,u.jsx)(h,{initialDate:K,id:"date",label:"Active for",maxDays:7,onChange:function(e,t){R(t),t?L(e):(L(""),T(""))},entity:"Link"})}),(0,u.jsx)(a.rjZ,{item:!0,xs:12,sx:{marginBottom:10},children:(0,u.jsx)(a.bSr,{actionButton:(0,u.jsx)(c(),{text:S,children:(0,u.jsx)(a.zxk,{id:"copy-path",variant:"regular",onClick:function(){j((0,x.MK)("Share URL Copied to clipboard"))},disabled:""===S||I,style:{width:"28px",height:"28px",padding:"0px"},icon:(0,u.jsx)(a.TIy,{})})}),children:S})})]})]})})}},78562:function(e,t,n){n.r(t),n.d(t,{default:function(){return x}});var o=n(72791),i=n(56028),r=n(29439),a=n(29945),s=n(26181),c=n.n(s),l=n(47922),d=n(45248),u=n(31776),h=n(80184),f=function(e){var t=e.bucketName,n=e.object,i=e.isFullscreen,s=void 0!==i&&i,f=(0,o.useState)(!0),x=(0,r.Z)(f,2),m=x[0],p=x[1],v=(0,o.useState)(null),j=(0,r.Z)(v,2),b=j[0],g=j[1],_=(0,o.useState)(!1),S=(0,r.Z)(_,2),T=S[0],w=S[1],y=(null===n||void 0===n?void 0:n.name)||"",C=(0,o.useCallback)((function(){if(!T){var e=(0,d.LL)(y);u.h.buckets.getObjectMetadata(t,{prefix:e}).then((function(e){var t=c()(e.data,"objectMetadata",{});w(!0),g(t)})).catch((function(e){console.error("Error Getting Metadata Status: ",e,null===e||void 0===e?void 0:e.detailedError),w(!0)}))}}),[t,y,T]);(0,o.useEffect)((function(){t&&y&&C()}),[t,y,C]);var E="";if(n){var O=(0,d.LL)(n.name),F=document.baseURI.replace(window.location.origin,"");E="".concat(window.location.origin).concat(F,"api/v1/buckets/").concat(t,"/objects/download?preview=true&prefix=").concat(O),n.version_id&&(E=E.concat("&version_id=".concat(n.version_id)))}var I=(0,l.s7)(b,y),k=function(){p(!1)};return(0,h.jsxs)(o.Fragment,{children:["none"!==I&&m&&(0,h.jsx)(a.rjZ,{item:!0,xs:12,children:(0,h.jsx)(a.kod,{})}),T?(0,h.jsxs)(a.xuv,{sx:{textAlign:"center","& .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"}},children:["video"===I&&(0,h.jsx)("video",{style:{width:"auto",height:"auto",maxWidth:"calc(100vw - 100px)",maxHeight:"calc(100vh - 200px)"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:k,children:(0,h.jsx)("source",{src:E,type:"video/mp4"})}),"audio"===I&&(0,h.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:k,children:(0,h.jsx)("source",{src:E,type:"audio/mpeg"})}),"image"===I&&(0,h.jsx)("img",{style:{width:"auto",height:"auto",maxWidth:"100vw",maxHeight:"100vh"},src:E,alt:"preview",onLoad:k}),"none"===I&&(0,h.jsx)("div",{children:(0,h.jsx)(a.J6i,{variant:"error",message:" File couldn't be previewed using file extension or mime type. Please try Download instead",title:"Preview unavailable",sx:{margin:"15px 0"}})}),"none"!==I&&"video"!==I&&"audio"!==I&&"image"!==I&&(0,h.jsx)("div",{className:"iframeBase ".concat(m?"iframeHidden":""),children:(0,h.jsx)("iframe",{src:E,title:"File Preview",allowTransparency:!0,className:"iframeContainer ".concat(s?"fullHeight":I),onLoad:k,children:"File couldn't be loaded. Please try Download instead"})})]}):null]})},x=function(e){var t=e.open,n=e.bucketName,r=e.object,s=e.onClosePreview;return(0,h.jsx)(o.Fragment,{children:(0,h.jsx)(i.Z,{modalOpen:t,title:"Preview - ".concat(null===r||void 0===r?void 0:r.name),onClose:s,wideLimit:!1,titleIcon:(0,h.jsx)(a.$30,{}),children:(0,h.jsx)(f,{bucketName:n,object:r})})})}},75578:function(e,t,n){var o=n(1413),i=n(72791),r=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(n){return(0,r.jsx)(i.Suspense,{fallback:t,children:(0,r.jsx)(e,(0,o.Z)({},n))})}}},73669:function(e,t,n){var o=n(4942),i=n(29439),r=n(72791),a=n(29945),s=n(80184);t.Z=function(e){var t=e.value,n=(0,r.useState)(!1),c=(0,i.Z)(n,2),l=c[0],d=c[1];return(0,s.jsxs)(a.xuv,{sx:(0,o.Z)({display:"flex",alignItems:"center",flexFlow:"row"},"@media (max-width: ".concat(a.Egj.sm,"px)"),{flexFlow:"column"}),children:[(0,s.jsx)(a.Wzg,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:l?"text":"password",onChange:function(){},value:t,overlayIcon:(0,s.jsx)(a.TIy,{}),readOnly:!0,overlayAction:function(){return navigator.clipboard.writeText(t)}}),(0,s.jsx)(a.zxk,{id:"show-hide-key",style:{marginLeft:"10px"},variant:"callAction",onClick:function(){return d(!l)},label:"Show/Hide"})]})}}}]); -//# sourceMappingURL=2603.e6ac8963.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2603.e6ac8963.chunk.js.map b/portal-ui/build/static/js/2603.e6ac8963.chunk.js.map deleted file mode 100644 index 301ab47dd..000000000 --- a/portal-ui/build/static/js/2603.e6ac8963.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2603.e6ac8963.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddAccessRule.tsx","screens/Console/Buckets/ListBuckets/UploadPermissionUtils.ts","screens/Console/ObjectBrowser/BrowserBreadcrumbs.tsx","utils/validationFunctions.ts","screens/Console/ObjectBrowser/objectBrowserThunks.ts","screens/Console/Buckets/ListBuckets/UploadFilesButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DetailsListPanel.tsx","screens/Console/ObjectBrowser/utils.ts","screens/Console/Buckets/ListBuckets/Objects/ListObjects/IconWithLabel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/utils.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/ObjectMetaData.tsx","screens/Console/Common/FormComponents/DateSelector/utils.ts","screens/Console/Common/FormComponents/DateSelector/DateSelector.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SetRetention.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DeleteObject.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SetLegalHoldModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/TagsModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/InspectObject.tsx","screens/Console/ObjectBrowser/RenameLongFilename.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/RestoreFileVersion.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SpecificVersionPill.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/FileVersionItem.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DeleteNonCurrent.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/DeleteSelectedVersions.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/VersionsNavigator.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsHelpers.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsTable.tsx","screens/Console/ObjectBrowser/FilterObjectsSB.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx","screens/Console/ObjectBrowser/OBHeader.tsx","screens/Console/Buckets/BucketDetails/BrowserHandler.tsx","screens/Console/Common/FormComponents/DaysSelector/DaysSelector.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/ShareFile.tsx","screens/Console/Buckets/ListBuckets/Objects/Preview/PreviewFileContent.tsx","screens/Console/Buckets/ListBuckets/Objects/Preview/PreviewFileModal.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Tools/KeyRevealer.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, { useEffect, useState, Fragment } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport {\n AddAccessRuleIcon,\n Button,\n FormLayout,\n Grid,\n InputBox,\n Select,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IAddAccessRule {\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n prefilledRoute?: string;\n}\n\nconst AddAccessRule = ({\n modalOpen,\n onClose,\n bucket,\n prefilledRoute,\n}: IAddAccessRule) => {\n const dispatch = useAppDispatch();\n\n const [prefix, setPrefix] = useState(\"\");\n const [selectedAccess, setSelectedAccess] = useState(\"readonly\");\n\n useEffect(() => {\n if (prefilledRoute) {\n setPrefix(prefilledRoute);\n }\n }, [prefilledRoute]);\n\n const accessOptions = [\n { label: \"readonly\", value: \"readonly\" },\n { label: \"writeonly\", value: \"writeonly\" },\n { label: \"readwrite\", value: \"readwrite\" },\n ];\n\n const resetForm = () => {\n setPrefix(\"\");\n setSelectedAccess(\"readonly\");\n };\n\n const createProcess = () => {\n api.bucket\n .setAccessRuleWithBucket(bucket, {\n prefix: prefix,\n access: selectedAccess,\n })\n .then((res: any) => {\n dispatch(setSnackBarMessage(\"Access Rule added successfully\"));\n onClose();\n })\n .catch((res) => {\n dispatch(setErrorSnackMessage(errorToHandler(res.error)));\n onClose();\n });\n };\n\n return (\n }\n >\n \n {\n setPrefix(e.target.value);\n }}\n tooltip={\n \"Enter '/' to apply the rule to all prefixes and objects at the bucket root. Do not include the wildcard asterisk '*' as part of the prefix *unless* it is an explicit part of the prefix name. The Console automatically appends an asterisk to the appropriate sections of the resulting IAM policy.\"\n }\n />\n {\n setSelectedAccess(value);\n }}\n label=\"Access\"\n value={selectedAccess}\n options={accessOptions}\n disabled={false}\n helpTip={\n \n Select the desired level of access available to unauthenticated\n Users\n \n }\n helpTipPlacement=\"right\"\n />\n \n \n\n \n \n \n \n );\n};\n\nexport default AddAccessRule;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 extractFileExtn = (resourceStr: string) => {\n //file extensions may contain query string. so exclude query strings !\n return (resourceStr.match(/\\.([^.]*?)(?=\\?|#|$)/) || [])[1];\n};\nexport const getPolicyAllowedFileExtensions = (\n sessionGrants: Record,\n uploadPath: string,\n scopes: string[] = [],\n) => {\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n uploadPath,\n scopes,\n );\n\n //get acceptable files if any in the policy.\n const allowedFileExtensions = sessionGrantWildCards.reduce(\n (acc: string[], cv: string) => {\n const extension: string = extractFileExtn(cv);\n if (extension) {\n acc.push(`.${extension}`); //strict extension matching.\n }\n return acc;\n },\n [],\n );\n\n const uniqueExtensions = [...new Set(allowedFileExtensions)];\n return uniqueExtensions.join(\",\");\n};\n\n// The resource should not have the extensions (*.ext) for the hasPermission to work.\n// so sanitize this and also use to extract the allowed extensions outside of permission check.\nexport const getSessionGrantsWildCard = (\n sessionGrants: Record,\n uploadPath: string,\n scopes: string[] = [],\n) => {\n //get only the path matching grants to reduce processing.\n const grantsWithExtension = Object.keys(sessionGrants).reduce(\n (acc: Record, grantKey: string) => {\n if (extractFileExtn(grantKey) && grantKey.includes(uploadPath)) {\n acc[grantKey] = sessionGrants[grantKey];\n }\n return acc;\n },\n {},\n );\n\n const checkPathsForPermission = (sessionGrantKey: string) => {\n const grantActions = grantsWithExtension[sessionGrantKey];\n const hasScope = grantActions.some((actionKey) =>\n scopes.find((scopeKey) => {\n let wildCardMatch = false;\n const hasWildCard = scopeKey.indexOf(\"*\") !== -1;\n if (hasWildCard) {\n const scopeActionKey = scopeKey.substring(0, scopeKey.length - 1);\n\n wildCardMatch = actionKey.includes(scopeActionKey);\n }\n\n return wildCardMatch || actionKey === scopeKey;\n }),\n );\n\n const sessionGrantKeyPath = sessionGrantKey.substring(\n 0,\n sessionGrantKey.indexOf(\"/*.\"), //start of extension part.\n );\n const isUploadPathMatching =\n sessionGrantKeyPath === `arn:aws:s3:::${uploadPath}`;\n\n const hasGrant =\n isUploadPathMatching && sessionGrantKey !== \"arn:aws:s3:::*\";\n\n return hasScope && hasGrant;\n };\n\n return Object.keys(grantsWithExtension).filter(checkPathsForPermission);\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 React, { Fragment, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport styled from \"styled-components\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { encodeURLString, safeDecodeURIComponent } from \"../../../common/utils\";\nimport {\n Button,\n CopyIcon,\n NewPathIcon,\n Tooltip,\n Breadcrumbs,\n breakPoints,\n Box,\n} from \"mds\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setVersionsModeEnabled } from \"./objectBrowserSlice\";\nimport { getSessionGrantsWildCard } from \"../Buckets/ListBuckets/UploadPermissionUtils\";\n\nconst CreatePathModal = withSuspense(\n React.lazy(\n () => import(\"../Buckets/ListBuckets/Objects/ListObjects/CreatePathModal\"),\n ),\n);\n\nconst BreadcrumbsMain = styled.div(() => ({\n display: \"flex\",\n \"& .additionalOptions\": {\n paddingRight: \"10px\",\n display: \"flex\",\n alignItems: \"center\",\n [`@media (max-width: ${breakPoints.lg}px)`]: {\n display: \"none\",\n },\n },\n \"& .slashSpacingStyle\": {\n margin: \"0 5px\",\n },\n}));\n\ninterface IObjectBrowser {\n bucketName: string;\n internalPaths: string;\n hidePathButton?: boolean;\n additionalOptions?: React.ReactNode;\n}\n\nconst BrowserBreadcrumbs = ({\n bucketName,\n internalPaths,\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 const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const [createFolderOpen, setCreateFolderOpen] = useState(false);\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\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 const pathToCheckPerms = bucketName + paths || bucketName;\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n pathToCheckPerms,\n putObjectPermScopes,\n );\n\n const canCreatePath =\n hasPermission(\n [pathToCheckPerms, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = `${splitPaths.slice(0, index + 1).join(\"/\")}/`;\n const route = `/browser/${bucketName}/${\n subSplit ? `${encodeURLString(subSplit)}` : ``\n }`;\n\n if (index === lastBreadcrumbsIndex && objectItem === versionedFile) {\n return null;\n }\n\n return (\n \n /\n {index === lastBreadcrumbsIndex ? (\n \n {safeDecodeURIComponent(objectItem) /*Only for display*/}\n \n ) : (\n {\n dispatch(\n setVersionsModeEnabled({ status: false, objectName: \"\" }),\n );\n }}\n >\n {\n safeDecodeURIComponent(\n objectItem,\n ) /*Only for display to preserve */\n }\n \n )}\n \n );\n });\n\n let versionsItem: any[] = [];\n\n if (versionsMode) {\n versionsItem = [\n \n \n /\n {versionedFile} - Versions\n \n ,\n ];\n }\n\n const listBreadcrumbs: any[] = [\n \n {\n dispatch(setVersionsModeEnabled({ status: false, objectName: \"\" }));\n }}\n >\n {bucketName}\n \n ,\n ...breadcrumbsMap,\n ...versionsItem,\n ];\n\n const closeAddFolderModal = () => {\n setCreateFolderOpen(false);\n };\n\n const goBackFunction = () => {\n if (versionsMode) {\n dispatch(setVersionsModeEnabled({ status: false, objectName: \"\" }));\n } else {\n if (splitPaths.length === 0) {\n navigate(\"/browser\");\n\n return;\n }\n\n const prevPath = splitPaths.slice(0, -1);\n\n navigate(\n `/browser/${bucketName}${\n prevPath.length > 0\n ? `/${encodeURLString(`${prevPath.join(\"/\")}/`)}`\n : \"\"\n }`,\n );\n }\n };\n\n return (\n \n \n {createFolderOpen && (\n \n )}\n \n \n \n }\n variant={\"regular\"}\n onClick={() => {\n dispatch(setSnackBarMessage(\"Path copied to clipboard\"));\n }}\n style={{\n width: \"28px\",\n height: \"28px\",\n color: \"#969FA8\",\n border: \"#969FA8 1px solid\",\n marginRight: 5,\n }}\n />\n \n {additionalOptions}\n \n }\n >\n {listBreadcrumbs}\n \n {!hidePathButton && (\n \n {\n setCreateFolderOpen(true);\n }}\n disabled={anonymousMode ? false : rewindEnabled || !canCreatePath}\n icon={}\n style={{\n whiteSpace: \"nowrap\",\n }}\n variant={\"regular\"}\n label={\"Create new path\"}\n />\n \n )}\n \n div\": {\n fontSize: 12,\n fontWeight: \"normal\",\n flexDirection: \"row\",\n flexWrap: \"nowrap\",\n },\n [`@media (max-width: ${breakPoints.lg}px)`]: {\n display: \"flex\",\n },\n }}\n >\n {additionalOptions}\n \n \n );\n};\n\nexport default BrowserBreadcrumbs;\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 isVersionedMode = (status: string | undefined) => {\n return status === \"Enabled\" || status === \"Suspended\";\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 { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { AppState } from \"../../../store\";\nimport { encodeURLString, getClientOS } from \"../../../common/utils\";\nimport { BucketObjectItem } from \"../Buckets/ListBuckets/Objects/ListObjects/types\";\nimport { makeid, storeCallForObjectWithID } from \"./transferManager\";\nimport {\n download,\n downloadSelectedAsZip,\n} from \"../Buckets/ListBuckets/Objects/utils\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setAnonymousAccessOpen,\n setDownloadRenameModal,\n setNewObject,\n setPreviewOpen,\n setSelectedPreview,\n setShareFileModalOpen,\n updateProgress,\n} from \"./objectBrowserSlice\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { DateTime } from \"luxon\";\n\nexport const downloadSelected = createAsyncThunk(\n \"objectBrowser/downloadSelected\",\n async (bucketName: string, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const downloadObject = (object: BucketObjectItem) => {\n const identityDownload = encodeURLString(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`,\n );\n\n const ID = makeid(8);\n\n const downloadCall = download(\n bucketName,\n encodeURLString(object.name),\n object.version_id,\n object.size,\n null,\n ID,\n (progress) => {\n dispatch(\n updateProgress({\n instanceID: identityDownload,\n progress: progress,\n }),\n );\n },\n () => {\n dispatch(completeObject(identityDownload));\n },\n (msg: string) => {\n dispatch(failObject({ instanceID: identityDownload, msg }));\n },\n () => {\n dispatch(cancelObjectInList(identityDownload));\n },\n () => {\n dispatch(\n setSnackBarMessage(\n \"File download will be handled directly by the browser.\",\n ),\n );\n },\n );\n storeCallForObjectWithID(ID, downloadCall);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\n }),\n );\n };\n\n if (state.objectBrowser.selectedObjects.length !== 0) {\n let itemsToDownload: BucketObjectItem[] = [];\n\n const filterFunction = (currValue: BucketObjectItem) =>\n state.objectBrowser.selectedObjects.includes(currValue.name);\n\n itemsToDownload = state.objectBrowser.records.filter(filterFunction);\n\n // In case just one element is selected, then we trigger download modal validation.\n if (itemsToDownload.length === 1) {\n if (\n itemsToDownload[0].name.length > 200 &&\n getClientOS().toLowerCase().includes(\"win\")\n ) {\n dispatch(setDownloadRenameModal(itemsToDownload[0]));\n return;\n } else {\n downloadObject(itemsToDownload[0]);\n }\n } else {\n if (itemsToDownload.length === 1) {\n downloadObject(itemsToDownload[0]);\n } else if (itemsToDownload.length > 1) {\n const fileName = `${DateTime.now().toFormat(\n \"LL-dd-yyyy-HH-mm-ss\",\n )}_files_list.zip`;\n\n // We are enforcing zip download when multiple files are selected for better user experience\n const multiObjList = itemsToDownload.reduce((dwList: any[], bi) => {\n // Download objects/prefixes(recursively) as zip\n // Skip any deleted files selected via \"Show deleted objects\" in selection and log for debugging\n const isDeleted = bi?.delete_flag;\n if (bi && !isDeleted) {\n dwList.push(bi.name);\n } else {\n console.log(`Skipping ${bi?.name} from download.`);\n }\n return dwList;\n }, []);\n\n await downloadSelectedAsZip(bucketName, multiObjList, fileName);\n return;\n }\n }\n }\n },\n);\n\nexport const openPreview = createAsyncThunk(\n \"objectBrowser/openPreview\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n if (state.objectBrowser.selectedObjects.length === 1) {\n let fileObject: BucketObjectItem | undefined;\n\n const findFunction = (currValue: BucketObjectItem) =>\n state.objectBrowser.selectedObjects.includes(currValue.name);\n\n fileObject = state.objectBrowser.records.find(findFunction);\n\n if (fileObject) {\n dispatch(setSelectedPreview(fileObject));\n dispatch(setPreviewOpen(true));\n }\n }\n },\n);\n\nexport const openShare = createAsyncThunk(\n \"objectBrowser/openShare\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n if (state.objectBrowser.selectedObjects.length === 1) {\n let fileObject: BucketObjectItem | undefined;\n\n const findFunction = (currValue: BucketObjectItem) =>\n state.objectBrowser.selectedObjects.includes(currValue.name);\n\n fileObject = state.objectBrowser.records.find(findFunction);\n\n if (fileObject) {\n dispatch(setSelectedPreview(fileObject));\n dispatch(setShareFileModalOpen(true));\n }\n }\n },\n);\n\nexport const openAnonymousAccess = createAsyncThunk(\n \"objectBrowser/openAnonymousAccess\",\n async (_, { getState, dispatch }) => {\n const state = getState() as AppState;\n\n if (\n state.objectBrowser.selectedObjects.length === 1 &&\n state.objectBrowser.selectedObjects[0].endsWith(\"/\")\n ) {\n dispatch(setAnonymousAccessOpen(true));\n }\n },\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 React, { Fragment, useState } from \"react\";\nimport { CSSObject } from \"styled-components\";\nimport { Button, DropdownSelector, UploadFolderIcon, UploadIcon } from \"mds\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { getSessionGrantsWildCard } from \"./UploadPermissionUtils\";\n\ninterface IUploadFilesButton {\n uploadPath: string;\n bucketName: string;\n forceDisable?: boolean;\n uploadFileFunction: (closeFunction: () => void) => void;\n uploadFolderFunction: (closeFunction: () => void) => void;\n overrideStyles?: CSSObject;\n}\n\nconst UploadFilesButton = ({\n uploadPath,\n bucketName,\n forceDisable = false,\n uploadFileFunction,\n uploadFolderFunction,\n overrideStyles = {},\n}: IUploadFilesButton) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [uploadOptionsOpen, uploadOptionsSetOpen] = useState(false);\n\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n uploadPath,\n putObjectPermScopes,\n );\n\n const openUploadMenu = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n uploadOptionsSetOpen(!uploadOptionsOpen);\n setAnchorEl(event.currentTarget);\n };\n const handleCloseUpload = () => {\n setAnchorEl(null);\n };\n\n const uploadObjectAllowed =\n hasPermission(\n [uploadPath, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n const uploadFolderAllowed = hasPermission(\n [bucketName, ...sessionGrantWildCards],\n putObjectPermScopes,\n false,\n true,\n );\n\n const uploadFolderAction = (action: string) => {\n if (action === \"folder\") {\n uploadFolderFunction(handleCloseUpload);\n return;\n }\n\n uploadFileFunction(handleCloseUpload);\n };\n\n const uploadEnabled: boolean = uploadObjectAllowed || uploadFolderAllowed;\n\n return (\n \n \n }\n variant={\"callAction\"}\n disabled={forceDisable || !uploadEnabled}\n sx={overrideStyles}\n />\n \n ,\n value: \"file\",\n disabled: !uploadObjectAllowed || forceDisable,\n },\n {\n label: \"Upload Folder\",\n icon: ,\n value: \"folder\",\n disabled: !uploadFolderAllowed || forceDisable,\n },\n ]}\n selectedOption={\"\"}\n onSelect={(nValue) => uploadFolderAction(nValue)}\n hideTriggerAction={() => {\n uploadOptionsSetOpen(false);\n }}\n open={uploadOptionsOpen}\n anchorEl={anchorEl}\n anchorOrigin={\"end\"}\n useAnchorWidth={false}\n />\n \n );\n};\n\nexport default UploadFilesButton;\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, Button, ClosePanelIcon } from \"mds\";\n\ninterface IDetailsListPanel {\n open: boolean;\n className?: string;\n closePanel: () => void;\n children: React.ReactNode;\n}\n\nconst DetailsListPanel = ({\n open,\n closePanel,\n className = \"\",\n children,\n}: IDetailsListPanel) => {\n return (\n \n }\n sx={{\n position: \"absolute\",\n right: 5,\n top: 18,\n padding: 0,\n height: 14,\n \"&:hover:not(:disabled)\": {\n backgroundColor: \"transparent\",\n },\n }}\n />\n {children}\n \n );\n};\n\nexport default DetailsListPanel;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { encodeURLString, getClientOS } from \"../../../common/utils\";\nimport { makeid, storeCallForObjectWithID } from \"./transferManager\";\nimport { download } from \"../Buckets/ListBuckets/Objects/utils\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setLongFileOpen,\n setNewObject,\n updateProgress,\n} from \"./objectBrowserSlice\";\nimport { AppDispatch } from \"../../../store\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { BucketObject } from \"api/consoleApi\";\n\nexport const downloadObject = (\n dispatch: AppDispatch,\n bucketName: string,\n internalPaths: string,\n object: BucketObject,\n) => {\n const identityDownload = encodeURLString(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`,\n );\n\n const isWinOs = getClientOS().toLowerCase().includes(\"win\");\n\n if ((object.name?.length || 0) > 200 && isWinOs) {\n dispatch(setLongFileOpen(true));\n return;\n }\n\n const ID = makeid(8);\n\n const downloadCall = download(\n bucketName,\n internalPaths,\n object.version_id,\n object.size || 0,\n null,\n ID,\n (progress) => {\n dispatch(\n updateProgress({\n instanceID: identityDownload,\n progress: progress,\n }),\n );\n },\n () => {\n dispatch(completeObject(identityDownload));\n },\n (msg: string) => {\n dispatch(failObject({ instanceID: identityDownload, msg }));\n },\n () => {\n dispatch(cancelObjectInList(identityDownload));\n },\n () => {\n dispatch(\n setSnackBarMessage(\n \"File download will be handled directly by the browser.\",\n ),\n );\n },\n );\n\n storeCallForObjectWithID(ID, downloadCall);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name || \"\",\n type: \"download\",\n waitingForFile: true,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\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\n// This object contains variables that will be used across form components.\n\nimport React from \"react\";\nimport { Box } from \"mds\";\nimport { replaceUnicodeChar } from \"../../../../../../common/utils\";\n\ninterface IIconWithLabel {\n icon: React.ReactNode;\n strings: string[];\n}\n\nconst IconWithLabel = ({ icon, strings }: IIconWithLabel) => {\n return (\n \n {icon}\n \n {replaceUnicodeChar(strings[strings.length - 1])}\n \n \n );\n};\n\nexport default IconWithLabel;\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\";\n\nimport {\n FileBookIcon,\n FileCodeIcon,\n FileConfigIcon,\n FileDbIcon,\n FileFontIcon,\n FileImageIcon,\n FileLockIcon,\n FileMissingIcon,\n FileMusicIcon,\n FileNonType,\n FilePdfIcon,\n FilePptIcon,\n FileTxtIcon,\n FileVideoIcon,\n FileXlsIcon,\n FileZipIcon,\n FolderBrowserIcon,\n} from \"mds\";\nimport IconWithLabel from \"./IconWithLabel\";\n\ninterface IExtToIcon {\n icon: any;\n extensions: string[];\n}\n\nexport const extensionToIcon: IExtToIcon[] = [\n {\n icon: ,\n extensions: [\"mp4\", \"mov\", \"avi\", \"mpeg\", \"mpg\"],\n },\n {\n icon: ,\n extensions: [\"mp3\", \"m4a\", \"aac\"],\n },\n {\n icon: ,\n extensions: [\"pdf\"],\n },\n {\n icon: ,\n extensions: [\"ppt\", \"pptx\"],\n },\n {\n icon: ,\n extensions: [\"xls\", \"xlsx\"],\n },\n {\n icon: ,\n extensions: [\"cer\", \"crt\", \"pem\"],\n },\n {\n icon: ,\n extensions: [\"html\", \"xml\", \"css\", \"py\", \"go\", \"php\", \"cpp\", \"h\", \"java\"],\n },\n {\n icon: ,\n extensions: [\"cfg\", \"yaml\"],\n },\n {\n icon: ,\n extensions: [\"sql\"],\n },\n {\n icon: ,\n extensions: [\"ttf\", \"otf\"],\n },\n {\n icon: ,\n extensions: [\"doc\", \"docx\", \"txt\", \"rtf\"],\n },\n {\n icon: ,\n extensions: [\"zip\", \"rar\", \"tar\", \"gz\"],\n },\n {\n icon: ,\n extensions: [\"epub\", \"mobi\", \"azw\", \"azw3\"],\n },\n {\n icon: ,\n extensions: [\"jpeg\", \"jpg\", \"gif\", \"tiff\", \"png\", \"heic\", \"dng\"],\n },\n];\n\nexport const displayFileIconName = (\n element: string,\n returnOnlyIcon: boolean = false,\n) => {\n let elementString = element;\n let icon = ;\n // Element is a folder\n if (element.endsWith(\"/\")) {\n icon = ;\n elementString = element.slice(0, -1);\n }\n\n const lowercaseElement = element.toLowerCase();\n for (const etc of extensionToIcon) {\n for (const ext of etc.extensions) {\n if (lowercaseElement.endsWith(`.${ext}`)) {\n icon = etc.icon;\n }\n }\n }\n\n if (!element.endsWith(\"/\") && element.indexOf(\".\") < 0) {\n icon = ;\n }\n\n const splitItem = elementString.split(\"/\");\n\n if (returnOnlyIcon) {\n return icon;\n }\n\n return ;\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 React, { Fragment } from \"react\";\nimport { Box } from \"mds\";\nimport { safeDecodeURIComponent } from \"../../../../../../common/utils\";\n\ninterface IObjectMetadata {\n metaData: any;\n}\n\nconst itemRendererFn = (element: any) => {\n return Array.isArray(element)\n ? element.map(safeDecodeURIComponent).join(\", \")\n : safeDecodeURIComponent(element);\n};\n\nconst ObjectMetaData = ({ metaData }: IObjectMetadata) => {\n const metaKeys = Object.keys(metaData);\n\n return (\n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = itemRendererFn(metaData[element]);\n return (\n \n {element}\n
\n {renderItem}\n \n );\n })}\n
\n );\n};\n\nexport default ObjectMetaData;\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 months = [\n { value: \"01\", label: \"January\" },\n { value: \"02\", label: \"February\" },\n { value: \"03\", label: \"March\" },\n { value: \"04\", label: \"April\" },\n { value: \"05\", label: \"May\" },\n { value: \"06\", label: \"June\" },\n { value: \"07\", label: \"July\" },\n { value: \"08\", label: \"August\" },\n { value: \"09\", label: \"September\" },\n { value: \"10\", label: \"October\" },\n { value: \"11\", label: \"November\" },\n { value: \"12\", label: \"December\" },\n];\n\nexport const days = Array.from(Array(31), (_, num) => ({\n value: (num + 1).toString(),\n label: (num + 1).toString(),\n}));\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(Array(50), (_, numYear) => ({\n value: (numYear + currentYear).toString(),\n label: (numYear + currentYear).toString(),\n}));\n\nexport const validDate = (year: string, month: string, day: string): any[] => {\n const currentDate = Date.parse(`${year}-${month}-${day}`);\n\n if (isNaN(currentDate)) {\n return [false, \"\"];\n }\n\n const parsedMonth = parseInt(month);\n const parsedDay = parseInt(day);\n\n const monthForString = parsedMonth < 10 ? `0${parsedMonth}` : parsedMonth;\n const dayForString = parsedDay < 10 ? `0${parsedDay}` : parsedDay;\n\n const parsedDate = new Date(currentDate).toISOString().split(\"T\")[0];\n const dateString = `${year}-${monthForString}-${dayForString}`;\n\n return [parsedDate === dateString, dateString];\n};\n\n// twoDigitDate gets a two digit string number used for months or days\n// returns \"NaN\" if number is NaN\nexport const twoDigitDate = (num: number): string => {\n return num < 10 ? `0${num}` : `${num}`;\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, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport { Box, HelpIcon, InputLabel, Select, Tooltip } from \"mds\";\nimport { days, months, validDate, years } from \"./utils\";\n\ninterface IDateSelectorProps {\n id: string;\n label: string;\n disableOptions?: boolean;\n tooltip?: string;\n borderBottom?: boolean;\n value?: string;\n onDateChange: (date: string, isValid: boolean) => any;\n}\n\nconst DateSelector = forwardRef(\n (\n {\n id,\n label,\n disableOptions = false,\n tooltip = \"\",\n borderBottom = false,\n onDateChange,\n value = \"\",\n }: IDateSelectorProps,\n ref: any,\n ) => {\n useImperativeHandle(ref, () => ({ resetDate }));\n\n const [month, setMonth] = useState(\"\");\n const [day, setDay] = useState(\"\");\n const [year, setYear] = useState(\"\");\n\n useEffect(() => {\n // verify if there is a current value\n // assume is in the format \"2021-12-30\"\n if (value !== \"\") {\n const valueSplit = value.split(\"-\");\n\n setYear(valueSplit[0]);\n setMonth(valueSplit[1]);\n // Turn to single digit to be displayed on dropdown buttons\n setDay(`${parseInt(valueSplit[2])}`);\n }\n }, [value]);\n\n useEffect(() => {\n const [isValid, dateString] = validDate(year, month, day);\n onDateChange(dateString, isValid);\n }, [month, day, year, onDateChange]);\n\n const resetDate = () => {\n setMonth(\"\");\n setDay(\"\");\n setYear(\"\");\n };\n\n const isDateDisabled = () => {\n if (disableOptions) {\n return disableOptions;\n } else {\n return false;\n }\n };\n\n const monthForDropDown = [{ value: \"\", label: \"\" }, ...months];\n const daysForDrop = [{ value: \"\", label: \"\" }, ...days];\n const yearsForDrop = [{ value: \"\", label: \"\" }, ...years];\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n \n \n \n \n \n \n \n )}\n \n \n \n {\n setMonth(newValue);\n }}\n options={monthForDropDown}\n label={\"\"}\n disabled={isDateDisabled()}\n />\n\n {\n setDay(newValue);\n }}\n options={daysForDrop}\n label={\"\"}\n disabled={isDateDisabled()}\n />\n\n {\n setYear(newValue);\n }}\n options={yearsForDrop}\n label={\"\"}\n disabled={isDateDisabled()}\n sx={{\n marginBottom: 12,\n }}\n />\n \n \n );\n },\n);\n\nexport default DateSelector;\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, useRef, useState } from \"react\";\nimport { Box, Button, FormLayout, Grid, RadioGroup, Switch } from \"mds\";\nimport { useSelector } from \"react-redux\";\nimport { BucketObject, ObjectRetentionMode } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { encodeURLString } from \"common/utils\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { twoDigitDate } from \"../../../../Common/FormComponents/DateSelector/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport DateSelector from \"../../../../Common/FormComponents/DateSelector/DateSelector\";\n\ninterface ISetRetentionProps {\n open: boolean;\n closeModalAndRefresh: (updateInfo: boolean) => void;\n objectName: string;\n bucketName: string;\n objectInfo: BucketObject;\n}\n\ninterface IRefObject {\n resetDate: () => void;\n}\n\nconst SetRetention = ({\n open,\n closeModalAndRefresh,\n objectName,\n objectInfo,\n bucketName,\n}: ISetRetentionProps) => {\n const dispatch = useAppDispatch();\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const [statusEnabled, setStatusEnabled] = useState(true);\n const [type, setType] = useState(\"\");\n const [date, setDate] = useState(\"\");\n const [isDateValid, setIsDateValid] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const [alreadyConfigured, setAlreadyConfigured] = useState(false);\n\n useEffect(() => {\n if (objectInfo.retention_mode) {\n setType(retentionConfig?.mode || ObjectRetentionMode.Governance);\n setAlreadyConfigured(true);\n }\n // get retention_until_date if defined\n if (objectInfo.retention_until_date) {\n const valueDate = new Date(objectInfo.retention_until_date);\n if (valueDate.toString() !== \"Invalid Date\") {\n const year = valueDate.getFullYear();\n const month = twoDigitDate(valueDate.getMonth() + 1);\n const day = valueDate.getDate();\n if (!isNaN(day) && month !== \"NaN\" && !isNaN(year)) {\n setDate(`${year}-${month}-${day}`);\n }\n }\n setAlreadyConfigured(true);\n }\n }, [objectInfo, retentionConfig?.mode]);\n\n const dateElement = useRef(null);\n\n const dateFieldDisabled = () => {\n return !(statusEnabled && (type === \"governance\" || type === \"compliance\"));\n };\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n };\n\n const resetForm = () => {\n setStatusEnabled(false);\n setType(ObjectRetentionMode.Governance);\n if (dateElement.current) {\n dateElement.current.resetDate();\n }\n };\n\n const addRetention = (\n selectedObject: string,\n versionId: string | null,\n expireDate: string,\n ) => {\n api.buckets\n .putObjectRetention(\n bucketName,\n {\n prefix: encodeURLString(selectedObject),\n version_id: versionId || \"\",\n },\n {\n expires: expireDate,\n mode: type as ObjectRetentionMode,\n },\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const disableRetention = (\n selectedObject: string,\n versionId: string | null,\n ) => {\n api.buckets\n .deleteObjectRetention(bucketName, {\n prefix: encodeURLString(selectedObject),\n version_id: versionId || \"\",\n })\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const saveNewRetentionPolicy = () => {\n setIsSaving(true);\n const selectedObject = objectInfo.name || \"\";\n const versionId = objectInfo.version_id || null;\n\n const expireDate =\n !statusEnabled && type === \"governance\" ? \"\" : `${date}T23:59:59Z`;\n\n if (!statusEnabled && type === \"governance\") {\n disableRetention(selectedObject, versionId);\n\n return;\n }\n\n addRetention(selectedObject, versionId, expireDate);\n };\n\n const showSwitcher =\n alreadyConfigured && (type === \"governance\" || type === \"\");\n\n return (\n {\n resetForm();\n closeModalAndRefresh(false);\n }}\n >\n ) => {\n onSubmit(e);\n }}\n >\n \n \n Selected Object: {objectName}\n \n {showSwitcher && (\n ) => {\n setStatusEnabled(!statusEnabled);\n }}\n label={\"Status\"}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n )}\n {\n setType(e.target.value as ObjectRetentionMode);\n }}\n selectorOptions={[\n { label: \"Governance\", value: ObjectRetentionMode.Governance },\n { label: \"Compliance\", value: ObjectRetentionMode.Compliance },\n ]}\n />\n {\n setIsDateValid(isValid);\n if (isValid) {\n setDate(date);\n }\n }}\n />\n \n \n \n \n \n \n \n );\n};\n\nexport default SetRetention;\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, useState } from \"react\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon, Switch } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { isVersionedMode } from \"../../../../../../utils/validationFunctions\";\nimport { BucketVersioningResponse } from \"api/consoleApi\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n\n versioningInfo: BucketVersioningResponse | undefined;\n selectedVersion?: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n versioningInfo,\n selectedVersion = \"\",\n}: IDeleteObjectProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n\n // We close the modal box on access denied.\n if (err.detailedError === \"Access Denied.\") {\n closeDeleteModalAndRefresh(true);\n }\n };\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [deleteVersions, setDeleteVersions] = useState(false);\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n const decodedSelectedObject = decodeURLString(selectedObject);\n const recursive = decodedSelectedObject.endsWith(\"/\");\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/objects?path=${selectedObject}${\n selectedVersion !== \"\"\n ? `&version_id=${selectedVersion}`\n : `&recursive=${recursive}&all_versions=${deleteVersions}`\n }${bypassGovernance ? \"&bypass=true\" : \"\"}`,\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete:
\n {decodeURLString(selectedObject)}{\" \"}\n {selectedVersion !== \"\" ? (\n \n
\n
\n Version ID:\n
\n {selectedVersion}\n
\n ) : (\n \"\"\n )}\n ?
\n
\n {isVersionedMode(versioningInfo?.status) &&\n selectedVersion === \"\" && (\n \n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\n />\n \n )}\n {canBypass && (deleteVersions || selectedVersion !== \"\") && (\n \n \n {\n setBypassGovernance(!bypassGovernance);\n }}\n description=\"\"\n />\n \n \n )}\n {deleteVersions && (\n \n \n This will remove the object as well as all of its versions,{\" \"}\n
\n This action is irreversible.\n \n
\n Are you sure you want to continue?\n
\n )}\n
\n }\n />\n );\n};\n\nexport default DeleteObject;\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 get from \"lodash/get\";\nimport { Box, Button, FormLayout, Grid, Switch } from \"mds\";\nimport { BucketObject, ObjectLegalHoldStatus } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\n\ninterface ISetRetentionProps {\n open: boolean;\n closeModalAndRefresh: (reload: boolean) => void;\n objectName: string;\n bucketName: string;\n actualInfo: BucketObject;\n}\n\nconst SetLegalHoldModal = ({\n open,\n closeModalAndRefresh,\n objectName,\n bucketName,\n actualInfo,\n}: ISetRetentionProps) => {\n const dispatch = useAppDispatch();\n const [legalHoldEnabled, setLegalHoldEnabled] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const versionId = actualInfo.version_id;\n\n useEffect(() => {\n const status = get(actualInfo, \"legal_hold_status\", \"OFF\");\n setLegalHoldEnabled(status === \"ON\");\n }, [actualInfo]);\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setIsSaving(true);\n\n api.buckets\n .putObjectLegalHold(\n bucketName,\n {\n prefix: encodeURLString(objectName),\n version_id: versionId || \"\",\n },\n {\n status: legalHoldEnabled\n ? ObjectLegalHoldStatus.Enabled\n : ObjectLegalHoldStatus.Disabled,\n },\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const resetForm = () => {\n setLegalHoldEnabled(false);\n };\n\n return (\n {\n resetForm();\n closeModalAndRefresh(false);\n }}\n >\n ) => {\n onSubmit(e);\n }}\n >\n \n \n Object: {bucketName}\n \n ) => {\n setLegalHoldEnabled(!legalHoldEnabled);\n }}\n label={\"Legal Hold Status\"}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n tooltip={\n \"To enable this feature you need to enable versioning on the bucket before creation\"\n }\n />\n \n \n \n \n \n \n \n );\n};\n\nexport default SetLegalHoldModal;\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, useState } from \"react\";\nimport get from \"lodash/get\";\nimport styled from \"styled-components\";\nimport {\n AddNewTagIcon,\n Button,\n DisabledIcon,\n EditTagIcon,\n InputBox,\n SectionTitle,\n Box,\n Grid,\n Tag,\n FormLayout,\n} from \"mds\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { encodeURLString } from \"common/utils\";\nimport { useSelector } from \"react-redux\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../../common/SecureComponent\";\nimport {\n selDistSet,\n setModalErrorSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\ninterface ITagModal {\n modalOpen: boolean;\n bucketName: string;\n actualInfo: BucketObject;\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst DeleteTag = styled.b(({ theme }) => ({\n color: get(theme, \"signalColors.danger\", \"#C83B51\"),\n marginLeft: 5,\n}));\n\nconst AddTagModal = ({\n modalOpen,\n onCloseAndUpdate,\n bucketName,\n actualInfo,\n}: ITagModal) => {\n const dispatch = useAppDispatch();\n const distributedSetup = useSelector(selDistSet);\n const [newKey, setNewKey] = useState(\"\");\n const [newLabel, setNewLabel] = useState(\"\");\n const [isSending, setIsSending] = useState(false);\n const [deleteEnabled, setDeleteEnabled] = useState(false);\n const [deleteKey, setDeleteKey] = useState(\"\");\n const [deleteLabel, setDeleteLabel] = useState(\"\");\n\n const selectedObject = encodeURLString(actualInfo.name || \"\");\n\n const currentTags = actualInfo.tags;\n const currTagKeys = Object.keys(currentTags || {});\n\n const allPathData = actualInfo.name?.split(\"/\");\n const currentItem = allPathData?.pop() || \"\";\n\n const resetForm = () => {\n setNewLabel(\"\");\n setNewKey(\"\");\n };\n\n const addTagProcess = () => {\n setIsSending(true);\n const newTag: any = {};\n\n newTag[newKey] = newLabel;\n const newTagList = { ...currentTags, ...newTag };\n\n const verID = distributedSetup ? actualInfo.version_id || \"\" : \"null\";\n\n api.buckets\n .putObjectTags(\n bucketName,\n { prefix: selectedObject, version_id: verID },\n { tags: newTagList },\n )\n .then(() => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSending(false);\n });\n };\n\n const deleteTagProcess = () => {\n const cleanObject: any = { ...currentTags };\n delete cleanObject[deleteKey];\n\n const verID = distributedSetup ? actualInfo.version_id || \"\" : \"null\";\n\n api.buckets\n .putObjectTags(\n bucketName,\n { prefix: selectedObject, version_id: verID },\n { tags: cleanObject },\n )\n .then(() => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSending(false);\n });\n };\n\n const onDeleteTag = (tagKey: string, tag: string) => {\n setDeleteKey(tagKey);\n setDeleteLabel(tag);\n setDeleteEnabled(true);\n };\n\n const cancelDelete = () => {\n setDeleteKey(\"\");\n setDeleteLabel(\"\");\n setDeleteEnabled(false);\n };\n\n const tagsFor = (plural: boolean) => (\n \n Tag{plural ? \"s\" : \"\"} for: {currentItem}\n \n );\n\n return (\n \n {\n onCloseAndUpdate(true);\n }}\n iconColor={deleteEnabled ? \"delete\" : \"default\"}\n titleIcon={deleteEnabled ? : }\n >\n {deleteEnabled ? (\n \n \n {tagsFor(false)}\n Are you sure you want to delete the tag{\" \"}\n \n {deleteKey} : {deleteLabel}\n {\" \"}\n ?\n \n \n \n \n \n \n ) : (\n \n \n \n {tagsFor(true)}\n \n Current Tags:\n
\n {currTagKeys.length === 0 ? (\n \n There are no tags for this object\n \n ) : (\n \n )}\n \n {currTagKeys.map((tagKey: string, index: number) => {\n const tag = get(currentTags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n {\n onDeleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n
\n \n \n \n \n } separator={false}>\n Add New Tag\n \n \n {\n setNewKey(e.target.value);\n }}\n />\n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n \n )}\n \n
\n );\n};\n\nexport default AddTagModal;\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, { useState } from \"react\";\nimport {\n Button,\n InspectMenuIcon,\n PasswordKeyIcon,\n Switch,\n Grid,\n Box,\n} from \"mds\";\nimport {\n decodeURLString,\n deleteCookie,\n encodeURLString,\n getCookieValue,\n performDownload,\n} from \"../../../../../../common/utils\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { modalStyleUtils } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport KeyRevealer from \"../../../../Tools/KeyRevealer\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\ninterface IInspectObjectProps {\n closeInspectModalAndRefresh: (refresh: boolean) => void;\n inspectOpen: boolean;\n inspectPath: string;\n volumeName: string;\n}\n\nconst InspectObject = ({\n closeInspectModalAndRefresh,\n inspectOpen,\n inspectPath,\n volumeName,\n}: IInspectObjectProps) => {\n const dispatch = useAppDispatch();\n const onClose = () => closeInspectModalAndRefresh(false);\n const [isEncrypt, setIsEncrypt] = useState(true);\n const [decryptionKey, setDecryptionKey] = useState(\"\");\n const [insFileName, setInsFileName] = useState(\"\");\n\n if (!inspectPath) {\n return null;\n }\n const makeRequest = async (url: string) => {\n return await fetch(url, { method: \"GET\" });\n };\n\n const performInspect = async () => {\n const file = encodeURLString(inspectPath + \"/xl.meta\");\n const volume = encodeURLString(volumeName);\n\n const urlOfInspectApi = `/api/v1/admin/inspect?volume=${volume}&file=${file}&encrypt=${isEncrypt}`;\n\n makeRequest(urlOfInspectApi)\n .then(async (res) => {\n if (!res.ok) {\n const resErr: any = await res.json();\n\n dispatch(\n setErrorSnackMessage({\n errorMessage: resErr.message,\n detailedError: resErr.code,\n }),\n );\n }\n const blob: Blob = await res.blob();\n\n //@ts-ignore\n const filename = res.headers.get(\"content-disposition\").split('\"')[1];\n const decryptKey = getCookieValue(filename) || \"\";\n\n performDownload(blob, filename);\n setInsFileName(filename);\n if (decryptKey === \"\") {\n onClose();\n return;\n }\n setDecryptionKey(decryptKey);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(err));\n });\n };\n\n const onCloseDecKeyModal = () => {\n deleteCookie(insFileName);\n onClose();\n setDecryptionKey(\"\");\n };\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n };\n\n return (\n \n {!decryptionKey && (\n }\n title={`Inspect Object`}\n onClose={onClose}\n >\n ) => {\n onSubmit(e);\n }}\n >\n Would you like to encrypt {decodeURLString(inspectPath)}?{\" \"}\n
\n {\n setIsEncrypt(!isEncrypt);\n }}\n description=\"\"\n />\n \n \n \n \n \n )}\n {decryptionKey ? (\n }\n >\n \n This will be displayed only once. It cannot be recovered.\n
\n Use secure medium to share this key.\n
\n \n \n \n \n ) : null}\n
\n );\n};\n\nexport default InspectObject;\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 { Button, EditIcon, FormLayout, Grid, InputBox, Switch } from \"mds\";\nimport { modalStyleUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { useAppDispatch } from \"../../../store\";\nimport { downloadObject } from \"./utils\";\nimport { BucketObject } from \"api/consoleApi\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\n\ninterface IRenameLongFilename {\n open: boolean;\n bucketName: string;\n internalPaths: string;\n currentItem: string;\n actualInfo: BucketObject;\n closeModal: () => void;\n}\n\nconst RenameLongFileName = ({\n open,\n closeModal,\n currentItem,\n internalPaths,\n actualInfo,\n bucketName,\n}: IRenameLongFilename) => {\n const dispatch = useAppDispatch();\n\n const [newFileName, setNewFileName] = useState(currentItem);\n const [acceptLongName, setAcceptLongName] = useState(false);\n\n const doDownload = (e: React.FormEvent) => {\n e.preventDefault();\n downloadObject(dispatch, bucketName, internalPaths, actualInfo);\n closeModal();\n };\n\n return (\n }\n >\n

\n The file you are trying to download has a long name.\n
\n This can cause issues on Windows Systems by trimming the file name after\n download.\n
\n
We recommend to rename the file download\n
\n ) => {\n doDownload(e);\n }}\n >\n \n ) => {\n setNewFileName(event.target.value);\n }}\n label=\"\"\n type={\"text\"}\n value={newFileName}\n error={\n newFileName.length > 200 && !acceptLongName\n ? \"Filename should be less than 200 characters long.\"\n : \"\"\n }\n />\n ) => {\n setAcceptLongName(event.target.checked);\n if (event.target.checked) {\n setNewFileName(currentItem);\n }\n }}\n label={\"Use Original Name\"}\n />\n \n 200 && !acceptLongName}\n label={\"Download File\"}\n />\n \n \n \n \n );\n};\n\nexport default RenameLongFileName;\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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport {\n ActionsList,\n Box,\n Button,\n DeleteIcon,\n DownloadIcon,\n Grid,\n InspectMenuIcon,\n LegalHoldIcon,\n Loader,\n MetadataIcon,\n ObjectInfoIcon,\n PreviewIcon,\n RetentionIcon,\n ShareIcon,\n SimpleHeader,\n TagsIcon,\n VersionsIcon,\n} from \"mds\";\nimport { api } from \"api\";\nimport { downloadObject } from \"../../../../ObjectBrowser/utils\";\nimport { BucketObject, BucketVersioningResponse } from \"api/consoleApi\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\nimport {\n decodeURLString,\n niceBytes,\n niceBytesInt,\n niceDaysInt,\n} from \"../../../../../../common/utils\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../../../common/SecureComponent/permissions\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../../../common/SecureComponent\";\nimport { selDistSet } from \"../../../../../../systemSlice\";\nimport {\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n setVersionsModeEnabled,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport { displayFileIconName } from \"./utils\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport ObjectMetaData from \"../ObjectDetails/ObjectMetaData\";\nimport ShareFile from \"../ObjectDetails/ShareFile\";\nimport SetRetention from \"../ObjectDetails/SetRetention\";\nimport DeleteObject from \"../ListObjects/DeleteObject\";\nimport SetLegalHoldModal from \"../ObjectDetails/SetLegalHoldModal\";\nimport TagsModal from \"../ObjectDetails/TagsModal\";\nimport InspectObject from \"./InspectObject\";\nimport RenameLongFileName from \"../../../../ObjectBrowser/RenameLongFilename\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\n\nconst emptyFile: BucketObject = {\n is_latest: true,\n last_modified: \"\",\n legal_hold_status: \"\",\n name: \"\",\n retention_mode: \"\",\n retention_until_date: \"\",\n size: 0,\n tags: {},\n version_id: undefined,\n};\n\ninterface IObjectDetailPanelProps {\n internalPaths: string;\n bucketName: string;\n versioningInfo: BucketVersioningResponse;\n locking: boolean | undefined;\n onClosePanel: (hardRefresh: boolean) => void;\n}\n\nconst ObjectDetailPanel = ({\n internalPaths,\n bucketName,\n versioningInfo,\n locking,\n onClosePanel,\n}: IObjectDetailPanelProps) => {\n const dispatch = useAppDispatch();\n\n const distributedSetup = useSelector(selDistSet);\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const selectedVersion = useSelector(\n (state: AppState) => state.objectBrowser.selectedVersion,\n );\n const loadingObjectInfo = useSelector(\n (state: AppState) => state.objectBrowser.loadingObjectInfo,\n );\n\n const [shareFileModalOpen, setShareFileModalOpen] = useState(false);\n const [retentionModalOpen, setRetentionModalOpen] = useState(false);\n const [tagModalOpen, setTagModalOpen] = useState(false);\n const [legalholdOpen, setLegalholdOpen] = useState(false);\n const [inspectModalOpen, setInspectModalOpen] = useState(false);\n const [actualInfo, setActualInfo] = useState(null);\n const [allInfoElements, setAllInfoElements] = useState([]);\n const [objectToShare, setObjectToShare] = useState(null);\n const [versions, setVersions] = useState([]);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [previewOpen, setPreviewOpen] = useState(false);\n const [totalVersionsSize, setTotalVersionsSize] = useState(0);\n const [longFileOpen, setLongFileOpen] = useState(false);\n const [metaData, setMetaData] = useState(null);\n const [loadMetadata, setLoadingMetadata] = useState(false);\n\n const internalPathsDecoded = decodeURLString(internalPaths) || \"\";\n const allPathData = internalPathsDecoded.split(\"/\");\n const currentItem = allPathData.pop() || \"\";\n\n // calculate object name to display\n let objectNameArray: string[] = [];\n if (actualInfo && actualInfo.name) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (distributedSetup && allInfoElements && allInfoElements.length >= 1) {\n let infoElement =\n allInfoElements.find((el: BucketObject) => el.is_latest) || emptyFile;\n\n if (selectedVersion !== \"\") {\n infoElement =\n allInfoElements.find(\n (el: BucketObject) => el.version_id === selectedVersion,\n ) || emptyFile;\n }\n\n if (!infoElement.is_delete_marker) {\n setLoadingMetadata(true);\n }\n\n setActualInfo(infoElement);\n }\n }, [selectedVersion, distributedSetup, allInfoElements]);\n\n useEffect(() => {\n if (loadingObjectInfo && internalPaths !== \"\") {\n api.buckets\n .listObjects(bucketName, {\n prefix: internalPaths,\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result: BucketObject[] = res.data.objects || [];\n if (distributedSetup) {\n setAllInfoElements(result);\n setVersions(result);\n\n const tVersionSize = result.reduce(\n (acc: number, currValue: BucketObject): number => {\n if (currValue?.size) {\n return acc + currValue.size;\n }\n return acc;\n },\n 0,\n );\n\n setTotalVersionsSize(tVersionSize);\n } else {\n const resInfo = result[0];\n\n setActualInfo(resInfo);\n setVersions([]);\n\n if (!resInfo.is_delete_marker) {\n setLoadingMetadata(true);\n }\n }\n\n dispatch(setLoadingObjectInfo(false));\n })\n .catch((err) => {\n console.error(\"Error loading object details\", err.error);\n dispatch(setLoadingObjectInfo(false));\n });\n }\n }, [\n loadingObjectInfo,\n bucketName,\n internalPaths,\n dispatch,\n distributedSetup,\n selectedVersion,\n ]);\n\n useEffect(() => {\n if (loadMetadata && internalPaths !== \"\") {\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: internalPaths,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n\n setMetaData(metadata);\n setLoadingMetadata(false);\n })\n .catch((err) => {\n console.error(\"Error Getting Metadata Status: \", err.detailedError);\n setLoadingMetadata(false);\n });\n }\n }, [bucketName, internalPaths, loadMetadata]);\n\n let tagKeys: string[] = [];\n\n if (actualInfo && actualInfo.tags) {\n tagKeys = Object.keys(actualInfo.tags);\n }\n\n const openRetentionModal = () => {\n setRetentionModalOpen(true);\n };\n\n const closeRetentionModal = (updateInfo: boolean) => {\n setRetentionModalOpen(false);\n if (updateInfo) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const shareObject = () => {\n setShareFileModalOpen(true);\n };\n\n const closeShareModal = () => {\n setObjectToShare(null);\n setShareFileModalOpen(false);\n };\n\n const closeFileOpen = () => {\n setLongFileOpen(false);\n };\n\n const closeDeleteModal = (closeAndReload: boolean) => {\n setDeleteOpen(false);\n\n if (closeAndReload && selectedVersion === \"\") {\n onClosePanel(true);\n } else {\n dispatch(setLoadingVersions(true));\n dispatch(setSelectedVersion(\"\"));\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeAddTagModal = (reloadObjectData: boolean) => {\n setTagModalOpen(false);\n if (reloadObjectData) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeInspectModal = (reloadObjectData: boolean) => {\n setInspectModalOpen(false);\n if (reloadObjectData) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeLegalholdModal = (reload: boolean) => {\n setLegalholdOpen(false);\n if (reload) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const loaderForContainer = (\n
\n \n
\n );\n\n if (!actualInfo) {\n if (loadingObjectInfo) {\n return loaderForContainer;\n }\n\n return null;\n }\n\n const objectName =\n objectNameArray.length > 0\n ? objectNameArray[objectNameArray.length - 1]\n : actualInfo.name;\n\n const objectResources = [\n bucketName,\n currentItem,\n [bucketName, actualInfo.name].join(\"/\"),\n ];\n const canSetLegalHold = hasPermission(bucketName, [\n IAM_SCOPES.S3_PUT_OBJECT_LEGAL_HOLD,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n const canSetTags = hasPermission(objectResources, [\n IAM_SCOPES.S3_PUT_OBJECT_TAGGING,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n\n const canChangeRetention = hasPermission(\n objectResources,\n [\n IAM_SCOPES.S3_GET_OBJECT_RETENTION,\n IAM_SCOPES.S3_PUT_OBJECT_RETENTION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n true,\n );\n const canInspect = hasPermission(objectResources, [\n IAM_SCOPES.ADMIN_INSPECT_DATA,\n ]);\n const canChangeVersioning = hasPermission(objectResources, [\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_OBJECT_VERSION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n const canGetObject = hasPermission(objectResources, [\n IAM_SCOPES.S3_GET_OBJECT,\n IAM_SCOPES.S3_GET_ACTIONS,\n ]);\n const canDelete = hasPermission(\n [bucketName, currentItem, [bucketName, actualInfo.name].join(\"/\")],\n [IAM_SCOPES.S3_DELETE_OBJECT],\n );\n\n let objectType: AllowedPreviews = previewObjectType(metaData, currentItem);\n\n const multiActionButtons = [\n {\n action: () => {\n downloadObject(dispatch, bucketName, internalPaths, actualInfo);\n },\n label: \"Download\",\n disabled: !!actualInfo.is_delete_marker || !canGetObject,\n icon: ,\n tooltip: canGetObject\n ? \"Download this Object\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"download this object\",\n ),\n },\n {\n action: () => {\n shareObject();\n },\n label: \"Share\",\n disabled: !!actualInfo.is_delete_marker || !canGetObject,\n icon: ,\n tooltip: canGetObject\n ? \"Share this File\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"share this object\",\n ),\n },\n {\n action: () => {\n setPreviewOpen(true);\n },\n label: \"Preview\",\n disabled:\n !!actualInfo.is_delete_marker ||\n (objectType === \"none\" && !canGetObject),\n icon: ,\n tooltip: canGetObject\n ? \"Preview this File\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"preview this object\",\n ),\n },\n {\n action: () => {\n setLegalholdOpen(true);\n },\n label: \"Legal Hold\",\n disabled:\n !locking ||\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !canSetLegalHold ||\n selectedVersion !== \"\",\n icon: ,\n tooltip: canSetLegalHold\n ? locking\n ? \"Change Legal Hold rules for this File\"\n : \"Object Locking must be enabled on this bucket in order to set Legal Hold\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT_LEGAL_HOLD, IAM_SCOPES.S3_PUT_ACTIONS],\n \"change legal hold settings for this object\",\n ),\n },\n {\n action: openRetentionModal,\n label: \"Retention\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !canChangeRetention ||\n selectedVersion !== \"\" ||\n !locking,\n icon: ,\n tooltip: canChangeRetention\n ? locking\n ? \"Change Retention rules for this File\"\n : \"Object Locking must be enabled on this bucket in order to set Retention Rules\"\n : permissionTooltipHelper(\n [\n IAM_SCOPES.S3_GET_OBJECT_RETENTION,\n IAM_SCOPES.S3_PUT_OBJECT_RETENTION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n \"change Retention Rules for this object\",\n ),\n },\n {\n action: () => {\n setTagModalOpen(true);\n },\n label: \"Tags\",\n disabled:\n !!actualInfo.is_delete_marker || selectedVersion !== \"\" || !canSetTags,\n icon: ,\n tooltip: canSetTags\n ? \"Change Tags for this File\"\n : permissionTooltipHelper(\n [\n IAM_SCOPES.S3_PUT_OBJECT_TAGGING,\n IAM_SCOPES.S3_GET_OBJECT_TAGGING,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n \"set Tags on this object\",\n ),\n },\n {\n action: () => {\n setInspectModalOpen(true);\n },\n label: \"Inspect\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n selectedVersion !== \"\" ||\n !canInspect,\n icon: ,\n tooltip: canInspect\n ? \"Inspect this file\"\n : permissionTooltipHelper(\n [IAM_SCOPES.ADMIN_INSPECT_DATA],\n \"inspect this file\",\n ),\n },\n {\n action: () => {\n dispatch(\n setVersionsModeEnabled({\n status: !versionsMode,\n objectName: objectName,\n }),\n );\n },\n label: versionsMode ? \"Hide Object Versions\" : \"Display Object Versions\",\n icon: ,\n disabled:\n !distributedSetup ||\n !(actualInfo.version_id && actualInfo.version_id !== \"null\") ||\n !canChangeVersioning,\n tooltip: canChangeVersioning\n ? actualInfo.version_id && actualInfo.version_id !== \"null\"\n ? \"Display Versions for this file\"\n : \"\"\n : permissionTooltipHelper(\n [\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_OBJECT_VERSION,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ],\n \"display all versions of this object\",\n ),\n },\n ];\n\n const calculateLastModifyTime = (lastModified: string) => {\n const currentTime = new Date();\n const modifiedTime = new Date(lastModified);\n\n const difTime = currentTime.getTime() - modifiedTime.getTime();\n\n const formatTime = niceDaysInt(difTime, \"ms\");\n\n return formatTime.trim() !== \"\" ? `${formatTime} ago` : \"Just now\";\n };\n\n return (\n \n {shareFileModalOpen && actualInfo && (\n \n )}\n {retentionModalOpen && actualInfo && (\n \n )}\n {deleteOpen && (\n \n )}\n {legalholdOpen && actualInfo && (\n \n )}\n {previewOpen && actualInfo && (\n {\n setPreviewOpen(false);\n }}\n />\n )}\n {tagModalOpen && actualInfo && (\n \n )}\n {inspectModalOpen && actualInfo && (\n \n )}\n {longFileOpen && actualInfo && (\n \n )}\n\n {loadingObjectInfo ? (\n {loaderForContainer}\n ) : (\n \n \n {displayFileIconName(objectName || \"\", true)}\n {objectName}\n \n }\n items={multiActionButtons}\n />\n \n \n \n }\n iconLocation={\"start\"}\n fullWidth\n variant={\"secondary\"}\n onClick={() => {\n setDeleteOpen(true);\n }}\n disabled={\n selectedVersion === \"\" && actualInfo.is_delete_marker\n }\n sx={{\n width: \"calc(100% - 44px)\",\n margin: \"8px 0\",\n }}\n label={`Delete${selectedVersion !== \"\" ? \" version\" : \"\"}`}\n />\n \n \n \n } label={\"Object Info\"} />\n \n Name:\n
\n
{objectName}
\n
\n {selectedVersion !== \"\" && (\n \n Version ID:\n
\n {selectedVersion}\n
\n )}\n \n Size:\n
\n {niceBytes(`${actualInfo.size || \"0\"}`)}\n
\n {actualInfo.version_id &&\n actualInfo.version_id !== \"null\" &&\n selectedVersion === \"\" && (\n \n Versions:\n
\n {versions.length} version{versions.length !== 1 ? \"s\" : \"\"},{\" \"}\n {niceBytesInt(totalVersionsSize)}\n
\n )}\n {selectedVersion === \"\" && (\n \n Last Modified:\n
\n {calculateLastModifyTime(actualInfo.last_modified || \"\")}\n
\n )}\n \n ETAG:\n
\n {actualInfo.etag || \"N/A\"}\n
\n \n Tags:\n
\n {tagKeys.length === 0\n ? \"N/A\"\n : tagKeys.map((tagKey, index) => {\n return (\n \n {tagKey}:{get(actualInfo, `tags.${tagKey}`, \"\")}\n {index < tagKeys.length - 1 ? \", \" : \"\"}\n \n );\n })}\n
\n \n \n \n Legal Hold:\n
\n {actualInfo.legal_hold_status ? \"On\" : \"Off\"}\n
\n \n
\n \n \n \n Retention Policy:\n
\n \n {actualInfo.version_id && actualInfo.version_id !== \"null\" ? (\n \n {actualInfo.retention_mode\n ? actualInfo.retention_mode.toLowerCase()\n : \"None\"}\n \n ) : (\n \n {actualInfo.retention_mode\n ? actualInfo.retention_mode.toLowerCase()\n : \"None\"}\n \n )}\n \n
\n \n
\n {!actualInfo.is_delete_marker && (\n \n } />\n \n {actualInfo && metaData ? (\n \n ) : null}\n \n \n )}\n \n )}\n
\n );\n};\n\nexport default ObjectDetailPanel;\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 { Box, RecoverIcon } from \"mds\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport { restoreLocalObjectList } from \"../../../../ObjectBrowser/objectBrowserSlice\";\n\ninterface IRestoreFileVersion {\n restoreOpen: boolean;\n bucketName: string;\n versionToRestore: BucketObject;\n objectPath: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst RestoreFileVersion = ({\n versionToRestore,\n bucketName,\n objectPath,\n restoreOpen,\n onCloseAndUpdate,\n}: IRestoreFileVersion) => {\n const dispatch = useAppDispatch();\n const [restoreLoading, setRestoreLoading] = useState(false);\n\n const restoreVersion = () => {\n setRestoreLoading(true);\n\n api.buckets\n .putObjectRestore(bucketName, {\n prefix: encodeURLString(objectPath),\n version_id: versionToRestore.version_id || \"\",\n })\n .then(() => {\n setRestoreLoading(false);\n onCloseAndUpdate(true);\n dispatch(\n restoreLocalObjectList({\n prefix: objectPath,\n objectInfo: versionToRestore,\n }),\n );\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setRestoreLoading(false);\n });\n };\n\n return (\n }\n onConfirm={restoreVersion}\n confirmButtonProps={{\n variant: \"secondary\",\n disabled: restoreLoading,\n }}\n onClose={() => {\n onCloseAndUpdate(false);\n }}\n confirmationContent={\n \n Are you sure you want to restore
\n {objectPath}
with Version ID:\n
\n {versionToRestore.version_id}?\n
\n }\n />\n );\n};\n\nexport default RestoreFileVersion;\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\ninterface ISpecificVersionPillProps {\n type: \"null\" | \"current\" | \"deleted\";\n}\n\nconst SpecificVersionPill = ({ type }: ISpecificVersionPillProps) => {\n let bgColor = \"#000\";\n let message = \"\";\n\n switch (type) {\n case \"null\":\n bgColor = \"#07193E\";\n message = \"NULL VERSION\";\n break;\n case \"deleted\":\n bgColor = \"#868686\";\n message = \"DELETED\";\n break;\n default:\n bgColor = \"#174551\";\n message = \"CURRENT VERSION\";\n }\n\n return (\n \n {message}\n \n );\n};\n\nexport default SpecificVersionPill;\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 { DateTime } from \"luxon\";\nimport styled from \"styled-components\";\nimport get from \"lodash/get\";\nimport { displayFileIconName } from \"../ListObjects/utils\";\nimport {\n DownloadIcon,\n PreviewIcon,\n RecoverIcon,\n ShareIcon,\n IconButton,\n Tooltip,\n Grid,\n Checkbox,\n} from \"mds\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport SpecificVersionPill from \"./SpecificVersionPill\";\nimport { BucketObject } from \"api/consoleApi\";\n\ninterface IFileVersionItem {\n fileName: string;\n versionInfo: BucketObject;\n index: number;\n isSelected?: boolean;\n checkable: boolean;\n isChecked: boolean;\n onCheck: (versionID: string) => void;\n onShare: (versionInfo: BucketObject) => void;\n onDownload: (versionInfo: BucketObject) => void;\n onRestore: (versionInfo: BucketObject) => void;\n onPreview: (versionInfo: BucketObject) => void;\n globalClick: (versionInfo: BucketObject) => void;\n key: any;\n style: any;\n}\n\nconst FileVersionStyled = styled.div(({ theme }) => {\n return {\n \"&:before\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n width: \"2px\",\n height: \"calc(100% + 2px)\",\n backgroundColor: get(theme, \"borderColor\", \"#F8F8F8\"),\n left: \"24px\",\n },\n \"& .mainFileVersionItem\": {\n borderBottom: `${get(theme, \"borderColor\", \"#F8F8F8\")} 1px solid`,\n padding: \"1rem 0\",\n margin: \"0 0.5rem 0 2.5rem\",\n cursor: \"pointer\",\n \"&.deleted\": {\n color: \"#868686\",\n },\n },\n \"& .intermediateLayer\": {\n margin: \"0 1.5rem 0 1.5rem\",\n \"&:hover, &.selected\": {\n backgroundColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n \"& > div\": {\n borderBottomColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n },\n },\n },\n \"& .versionContainer\": {\n fontSize: 16,\n fontWeight: \"bold\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg.min-icon\": {\n width: 18,\n height: 18,\n minWidth: 18,\n minHeight: 18,\n marginRight: 10,\n },\n },\n \"& .buttonContainer\": {\n textAlign: \"right\",\n \"& button\": {\n marginLeft: \"1.5rem\",\n },\n },\n \"& .versionID\": {\n fontSize: \"12px\",\n margin: \"2px 0\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n maxWidth: \"95%\",\n overflow: \"hidden\",\n },\n \"& .versionData\": {\n marginRight: \"10px\",\n fontSize: 12,\n color: \"#868686\",\n },\n \"@media (max-width: 600px)\": {\n \"& .buttonContainer\": {\n \"& button\": {\n marginLeft: \"5px\",\n },\n },\n },\n \"@media (max-width: 799px)\": {\n \"&:before\": {\n display: \"none\",\n },\n \"& .mainFileVersionItem\": {\n padding: \"5px 0px\",\n margin: 0,\n },\n \"& .intermediateLayer\": {\n margin: 0,\n \"&:hover, &.selected\": {\n backgroundColor: \"transparent\",\n \"& > div\": {\n borderBottomColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n },\n },\n },\n \"& .versionContainer\": {\n fontSize: 14,\n \"& svg.min-icon\": {\n display: \"none\",\n },\n },\n \"& .versionData\": {\n textOverflow: \"ellipsis\",\n maxWidth: \"95%\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n },\n \"& .collapsableInfo\": {\n display: \"flex\",\n flexDirection: \"column\",\n },\n \"& .versionItem\": {\n display: \"none\",\n },\n },\n };\n});\n\nconst FileVersionItem = ({\n fileName,\n versionInfo,\n isSelected,\n checkable,\n isChecked,\n onCheck,\n onShare,\n onDownload,\n onRestore,\n onPreview,\n globalClick,\n index,\n key,\n style,\n}: IFileVersionItem) => {\n const disableButtons = versionInfo.is_delete_marker;\n\n const versionItemButtons = [\n {\n icon: ,\n action: onPreview,\n tooltip: \"Preview\",\n },\n {\n icon: ,\n action: onDownload,\n tooltip: \"Download this version\",\n },\n {\n icon: ,\n action: onShare,\n tooltip: \"Share this version\",\n },\n {\n icon: ,\n action: onRestore,\n tooltip: \"Restore this version\",\n },\n ];\n\n let pill: \"deleted\" | \"current\" | \"null\" | null = null;\n\n if (versionInfo.is_delete_marker) {\n pill = \"deleted\";\n } else if (versionInfo.is_latest) {\n pill = \"current\";\n } else if (versionInfo.version_id === \"null\") {\n pill = \"null\";\n }\n\n let lastModified = DateTime.now();\n\n if (versionInfo.last_modified) {\n lastModified = DateTime.fromISO(versionInfo.last_modified);\n }\n\n return (\n \n {\n globalClick(versionInfo);\n }}\n key={key}\n style={style}\n >\n \n \n \n \n \n {checkable && (\n {\n e.stopPropagation();\n onCheck(versionInfo.version_id || \"\");\n }}\n value={versionInfo.version_id || \"\"}\n disabled={versionInfo.is_delete_marker}\n sx={{\n width: \"initial\",\n }}\n />\n )}\n {displayFileIconName(fileName, true)} v{index.toString()}\n \n {pill && }\n \n \n \n {versionItemButtons.map((button, index) => {\n return (\n \n {\n e.stopPropagation();\n if (!disableButtons) {\n button.action(versionInfo);\n } else {\n e.preventDefault();\n }\n }}\n sx={{\n backgroundColor: \"#F8F8F8\",\n borderRadius: \"100%\",\n width: \"28px\",\n height: \"28px\",\n padding: \"5px\",\n \"& .min-icon\": {\n width: \"14px\",\n height: \"14px\",\n },\n }}\n >\n {button.icon}\n \n \n );\n })}\n \n \n \n \n {versionInfo.version_id !== \"null\" ? versionInfo.version_id : \"-\"}\n \n \n \n Last modified:{\" \"}\n {lastModified.toFormat(\"ccc, LLL dd yyyy HH:mm:ss (ZZZZ)\")}\n \n \n Size: {niceBytes(`${versionInfo.size || \"0\"}`)}\n \n \n \n \n \n \n );\n};\n\nexport default FileVersionItem;\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\";\n\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport { ConfirmDeleteIcon, Switch, Grid, InputBox } from \"mds\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeleteNonCurrentProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n}\n\nconst DeleteNonCurrentVersions = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n}: IDeleteNonCurrentProps) => {\n const dispatch = useAppDispatch();\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [typeConfirm, setTypeConfirm] = useState(\"\");\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n useEffect(() => {\n if (deleteLoading) {\n api.buckets\n .deleteObject(selectedBucket, {\n path: selectedObject,\n non_current_versions: true,\n bypass: bypassGovernance,\n })\n .then(() => {\n closeDeleteModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setDeleteLoading(false);\n });\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n dispatch,\n selectedObject,\n selectedBucket,\n bypassGovernance,\n ]);\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={() => closeDeleteModalAndRefresh(false)}\n confirmButtonProps={{\n disabled: typeConfirm !== \"YES, PROCEED\" || deleteLoading,\n }}\n confirmationContent={\n \n Are you sure you want to delete all the non-current versions for:{\" \"}\n {decodeURLString(selectedObject)}?
\n {canBypass && (\n \n \n {\n setBypassGovernance(!bypassGovernance);\n }}\n description=\"\"\n />\n \n \n )}\n
\n To continue please type YES, PROCEED in the box.\n
\n
\n \n ) => {\n setTypeConfirm(event.target.value);\n }}\n label=\"\"\n value={typeConfirm}\n />\n \n
\n }\n />\n );\n};\n\nexport default DeleteNonCurrentVersions;\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 ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon, Switch } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeleteSelectedVersionsProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedVersions: string[];\n selectedObject: string;\n selectedBucket: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedVersions,\n selectedObject,\n}: IDeleteSelectedVersionsProps) => {\n const dispatch = useAppDispatch();\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n const onClose = () => closeDeleteModalAndRefresh(false);\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n useEffect(() => {\n if (deleteLoading) {\n const selectedObjectsRequest = selectedVersions.map((versionID) => {\n return {\n path: selectedObject,\n versionID: versionID,\n recursive: false,\n };\n });\n\n if (selectedObjectsRequest.length > 0) {\n api.buckets\n .deleteMultipleObjects(selectedBucket, selectedObjectsRequest, {\n all_versions: false,\n bypass: bypassGovernance,\n })\n .then(() => {\n setDeleteLoading(false);\n closeDeleteModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setDeleteLoading(false);\n });\n }\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n selectedBucket,\n selectedObject,\n selectedVersions,\n bypassGovernance,\n dispatch,\n ]);\n\n if (!selectedVersions) {\n return null;\n }\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete the selected {selectedVersions.length}{\" \"}\n versions for {selectedObject}?\n {canBypass && (\n \n \n {\n setBypassGovernance(!bypassGovernance);\n }}\n description=\"\"\n />\n \n \n )}\n \n }\n />\n );\n};\n\nexport default DeleteObject;\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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport {\n breakPoints,\n Button,\n DeleteIcon,\n DeleteNonCurrentIcon,\n Grid,\n ProgressBar,\n ScreenTitle,\n Select,\n SelectMultipleIcon,\n VersionsIcon,\n} from \"mds\";\nimport ShareFile from \"./ShareFile\";\n\nimport { decodeURLString, niceBytesInt } from \"../../../../../../common/utils\";\nimport RestoreFileVersion from \"./RestoreFileVersion\";\n\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport FileVersionItem from \"./FileVersionItem\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport DeleteNonCurrent from \"../ListObjects/DeleteNonCurrent\";\nimport BrowserBreadcrumbs from \"../../../../ObjectBrowser/BrowserBreadcrumbs\";\nimport DeleteSelectedVersions from \"./DeleteSelectedVersions\";\nimport {\n selDistSet,\n setErrorSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport {\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport { List, ListRowProps } from \"react-virtualized\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\nimport { downloadObject } from \"../../../../ObjectBrowser/utils\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IVersionsNavigatorProps {\n internalPaths: string;\n bucketName: string;\n}\n\nconst emptyFile: BucketObject = {\n is_latest: true,\n last_modified: \"\",\n legal_hold_status: \"\",\n name: \"\",\n retention_mode: \"\",\n retention_until_date: \"\",\n size: 0,\n tags: {},\n version_id: undefined,\n};\n\nconst VersionsNavigator = ({\n internalPaths,\n bucketName,\n}: IVersionsNavigatorProps) => {\n const dispatch = useAppDispatch();\n\n const searchVersions = useSelector(\n (state: AppState) => state.objectBrowser.searchVersions,\n );\n const loadingVersions = useSelector(\n (state: AppState) => state.objectBrowser.loadingVersions,\n );\n const selectedVersion = useSelector(\n (state: AppState) => state.objectBrowser.selectedVersion,\n );\n\n const distributedSetup = useSelector(selDistSet);\n const [shareFileModalOpen, setShareFileModalOpen] = useState(false);\n const [actualInfo, setActualInfo] = useState(null);\n const [objectToShare, setObjectToShare] = useState(null);\n const [versions, setVersions] = useState([]);\n const [restoreVersionOpen, setRestoreVersionOpen] = useState(false);\n const [restoreVersion, setRestoreVersion] = useState(\n null,\n );\n const [sortValue, setSortValue] = useState(\"date\");\n const [previewOpen, setPreviewOpen] = useState(false);\n const [deleteNonCurrentOpen, setDeleteNonCurrentOpen] =\n useState(false);\n const [selectEnabled, setSelectEnabled] = useState(false);\n const [selectedItems, setSelectedItems] = useState([]);\n const [delSelectedVOpen, setDelSelectedVOpen] = useState(false);\n\n // calculate object name to display\n let objectNameArray: string[] = [];\n if (actualInfo && actualInfo.name) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (!loadingVersions && !actualInfo) {\n dispatch(setLoadingVersions(true));\n }\n }, [loadingVersions, actualInfo, dispatch]);\n\n useEffect(() => {\n if (loadingVersions && internalPaths !== \"\") {\n api.buckets\n .listObjects(bucketName, {\n prefix: internalPaths,\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result = get(res.data, \"objects\", []);\n\n const decodedInternalPaths = decodeURLString(internalPaths);\n\n // Filter the results prefixes as API can return more files than expected.\n const filteredPrefixes = result.filter(\n (item: BucketObject) => item.name === decodedInternalPaths,\n );\n\n if (distributedSetup) {\n setActualInfo(\n filteredPrefixes.find((el: BucketObject) => el.is_latest) ||\n emptyFile,\n );\n setVersions(filteredPrefixes);\n } else {\n setActualInfo(filteredPrefixes[0]);\n setVersions([]);\n }\n\n dispatch(setLoadingVersions(false));\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n dispatch(setLoadingVersions(false));\n });\n }\n }, [loadingVersions, bucketName, internalPaths, dispatch, distributedSetup]);\n\n const shareObject = () => {\n setShareFileModalOpen(true);\n };\n\n const closeShareModal = () => {\n setObjectToShare(null);\n setShareFileModalOpen(false);\n setPreviewOpen(false);\n };\n\n const onShareItem = (item: BucketObject) => {\n setObjectToShare(item);\n shareObject();\n };\n\n const onPreviewItem = (item: BucketObject) => {\n setObjectToShare(item);\n setPreviewOpen(true);\n };\n\n const onRestoreItem = (item: BucketObject) => {\n setRestoreVersion(item);\n setRestoreVersionOpen(true);\n };\n\n const onDownloadItem = (item: BucketObject) => {\n downloadObject(dispatch, bucketName, internalPaths, item);\n };\n\n const onGlobalClick = (item: BucketObject) => {\n dispatch(setSelectedVersion(item.version_id || \"\"));\n };\n\n const filteredRecords = versions.filter((version) => {\n if (version.version_id) {\n return version.version_id.includes(searchVersions);\n }\n return false;\n });\n\n const closeRestoreModal = (reloadObjectData: boolean) => {\n setRestoreVersionOpen(false);\n setRestoreVersion(null);\n\n if (reloadObjectData) {\n dispatch(setLoadingVersions(true));\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeDeleteNonCurrent = (reloadAfterDelete: boolean) => {\n setDeleteNonCurrentOpen(false);\n\n if (reloadAfterDelete) {\n dispatch(setLoadingVersions(true));\n dispatch(setSelectedVersion(\"\"));\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeSelectedVersions = (reloadOnComplete: boolean) => {\n setDelSelectedVOpen(false);\n\n if (reloadOnComplete) {\n dispatch(setLoadingVersions(true));\n dispatch(setSelectedVersion(\"\"));\n dispatch(setLoadingObjectInfo(true));\n setSelectedItems([]);\n }\n };\n\n const totalSpace = versions.reduce((acc: number, currValue: BucketObject) => {\n if (currValue.size) {\n return acc + currValue.size;\n }\n return acc;\n }, 0);\n\n filteredRecords.sort((a, b) => {\n switch (sortValue) {\n case \"size\":\n if (a.size && b.size) {\n if (a.size < b.size) {\n return -1;\n }\n if (a.size > b.size) {\n return 1;\n }\n return 0;\n }\n return 0;\n default:\n const dateA = new Date(a.last_modified || \"\").getTime();\n const dateB = new Date(b.last_modified || \"\").getTime();\n\n if (dateA < dateB) {\n return 1;\n }\n if (dateA > dateB) {\n return -1;\n }\n return 0;\n }\n });\n\n const onCheckVersion = (selectedVersion: string) => {\n if (selectedItems.includes(selectedVersion)) {\n const filteredItems = selectedItems.filter(\n (element) => element !== selectedVersion,\n );\n\n setSelectedItems(filteredItems);\n\n return;\n }\n\n const cloneState = [...selectedItems];\n cloneState.push(selectedVersion);\n\n setSelectedItems(cloneState);\n };\n\n const rowRenderer = ({\n key, // Unique key within array of rows\n index, // Index of row within collection\n isScrolling, // The List is currently being scrolled\n isVisible, // This row is visible within the List (eg it is not an overscanned row)\n style, // Style object to be applied to row (to position it)\n }: ListRowProps) => {\n const versOrd = versions.length - index;\n return (\n \n );\n };\n\n return (\n \n {shareFileModalOpen && actualInfo && (\n \n )}\n {restoreVersionOpen && actualInfo && restoreVersion && (\n \n )}\n {previewOpen && actualInfo && (\n {\n setPreviewOpen(false);\n }}\n />\n )}\n {deleteNonCurrentOpen && (\n \n )}\n {delSelectedVOpen && (\n \n )}\n \n {!actualInfo && (\n \n \n \n )}\n\n {actualInfo && (\n \n \n \n \n \n \n \n \n }\n title={`${\n objectNameArray.length > 0\n ? objectNameArray[objectNameArray.length - 1]\n : actualInfo.name\n } Versions`}\n subTitle={\n \n \n \n {versions.length} Version\n {versions.length === 1 ? \"\" : \"s\"}   \n \n \n \n {niceBytesInt(totalSpace)}\n \n \n }\n actions={\n \n \n {\n setSelectEnabled(!selectEnabled);\n }}\n icon={}\n variant={selectEnabled ? \"callAction\" : \"regular\"}\n style={{ marginRight: 8 }}\n />\n \n {selectEnabled && (\n \n {\n setDelSelectedVOpen(true);\n }}\n icon={}\n variant={\"secondary\"}\n style={{ marginRight: 8 }}\n disabled={selectedItems.length === 0}\n />\n \n )}\n \n {\n setDeleteNonCurrentOpen(true);\n }}\n icon={}\n variant={\"secondary\"}\n style={{ marginRight: 15 }}\n disabled={versions.length <= 1}\n />\n \n {\n setSortValue(newValue);\n }}\n noLabelMinWidth\n />\n \n }\n bottomBorder={false}\n />\n \n \n {actualInfo.version_id && actualInfo.version_id !== \"null\" && (\n // @ts-ignore\n \n )}\n \n \n )}\n \n \n );\n};\n\nexport default VersionsNavigator;\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 { DateTime } from \"luxon\";\nimport { BucketObjectItem } from \"./types\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { displayFileIconName } from \"./utils\";\n\n// Functions\n\nexport const displayParsedDate = (object: BucketObjectItem) => {\n if (object.name.endsWith(\"/\")) {\n return \"\";\n }\n\n const currTime = DateTime.now();\n const objectTime = DateTime.fromISO(object.last_modified);\n\n const isToday =\n currTime.hasSame(objectTime, \"day\") &&\n currTime.hasSame(objectTime, \"month\") &&\n currTime.hasSame(objectTime, \"year\");\n\n if (isToday) {\n return `Today, ${objectTime.toFormat(\"HH:mm\")}`;\n }\n\n return objectTime.toFormat(\"ccc, LLL dd yyyy HH:mm (ZZZZ)\");\n};\n\nexport const displayNiceBytes = (object: BucketObjectItem) => {\n if (object.name.endsWith(\"/\") || !object.size) {\n return \"-\";\n }\n return niceBytes(String(object.size));\n};\n\nexport const displayDeleteFlag = (state: boolean) => {\n return state ? \"Yes\" : \"No\";\n};\n\n// Table Props\n\nexport const listModeColumns = [\n {\n label: \"Name\",\n elementKey: \"name\",\n renderFunction: displayFileIconName,\n enableSort: true,\n },\n {\n label: \"Last Modified\",\n elementKey: \"last_modified\",\n renderFunction: displayParsedDate,\n renderFullObject: true,\n enableSort: true,\n },\n {\n label: \"Size\",\n elementKey: \"size\",\n renderFunction: displayNiceBytes,\n renderFullObject: true,\n width: 100,\n enableSort: true,\n },\n];\n\nexport const rewindModeColumns = [\n {\n label: \"Name\",\n elementKey: \"name\",\n renderFunction: displayFileIconName,\n enableSort: true,\n },\n {\n label: \"Object Date\",\n elementKey: \"last_modified\",\n renderFunction: displayParsedDate,\n renderFullObject: true,\n enableSort: true,\n },\n {\n label: \"Size\",\n elementKey: \"size\",\n renderFunction: displayNiceBytes,\n renderFullObject: true,\n width: 100,\n enableSort: true,\n },\n {\n label: \"Deleted\",\n elementKey: \"delete_flag\",\n renderFunction: displayDeleteFlag,\n width: 60,\n },\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 React, { useState } from \"react\";\nimport { listModeColumns, rewindModeColumns } from \"./ListObjectsHelpers\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { selFeatures } from \"../../../../consoleSlice\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport {\n setLoadingVersions,\n setObjectDetailsView,\n setReloadObjectsList,\n setSelectedObjects,\n setSelectedObjectView,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport get from \"lodash/get\";\nimport { sortListObjects } from \"../utils\";\nimport { BucketObjectItem } from \"./types\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { downloadObject } from \"../../../../ObjectBrowser/utils\";\nimport { DataTable, ItemActions } from \"mds\";\nimport { BucketObject } from \"api/consoleApi\";\n\nconst ListObjectsTable = () => {\n const dispatch = useAppDispatch();\n const params = useParams();\n const navigate = useNavigate();\n\n const [sortDirection, setSortDirection] = useState<\n \"ASC\" | \"DESC\" | undefined\n >(\"ASC\");\n const [currentSortField, setCurrentSortField] = useState(\"name\");\n\n const bucketName = params.bucketName || \"\";\n\n const detailsOpen = useSelector(\n (state: AppState) => state.objectBrowser.objectDetailsOpen,\n );\n\n const requestInProgress = useSelector(\n (state: AppState) => state.objectBrowser.requestInProgress,\n );\n\n const features = useSelector(selFeatures);\n const obOnly = !!features?.includes(\"object-browser-only\");\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const records = useSelector((state: AppState) => state.objectBrowser.records);\n const searchObjects = useSelector(\n (state: AppState) => state.objectBrowser.searchObjects,\n );\n const selectedObjects = useSelector(\n (state: AppState) => state.objectBrowser.selectedObjects,\n );\n const connectionError = useSelector(\n (state: AppState) => state.objectBrowser.connectionError,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const displayListObjects = hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n IAM_SCOPES.S3_ALL_LIST_BUCKET,\n ]);\n\n const filteredRecords = records.filter((b: BucketObjectItem) => {\n if (searchObjects === \"\") {\n return true;\n } else {\n const objectName = b.name.toLowerCase();\n if (objectName.indexOf(searchObjects.toLowerCase()) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n const plSelect = filteredRecords;\n const sortASC = plSelect.sort(sortListObjects(currentSortField));\n\n let payload: BucketObjectItem[] = [];\n\n if (sortDirection === \"ASC\") {\n payload = sortASC;\n } else {\n payload = sortASC.reverse();\n }\n\n const openPath = (object: BucketObject) => {\n const idElement = object.name || \"\";\n const newPath = `/browser/${bucketName}${\n idElement ? `/${encodeURLString(idElement)}` : ``\n }`;\n\n // for anonymous start download\n if (anonymousMode && !object.name?.endsWith(\"/\")) {\n downloadObject(\n dispatch,\n bucketName,\n `${encodeURLString(idElement)}`,\n object,\n );\n return;\n }\n dispatch(setSelectedObjects([]));\n\n navigate(newPath);\n\n if (!anonymousMode) {\n dispatch(setObjectDetailsView(true));\n dispatch(setLoadingVersions(true));\n }\n dispatch(\n setSelectedObjectView(\n `${idElement ? `${encodeURLString(idElement)}` : ``}`,\n ),\n );\n };\n const tableActions: ItemActions[] = [\n {\n type: \"view\",\n tooltip: \"View\",\n onClick: openPath,\n sendOnlyId: false,\n },\n ];\n\n const sortChange = (sortData: any) => {\n const newSortDirection = get(sortData, \"sortDirection\", \"DESC\");\n setCurrentSortField(sortData.sortBy);\n setSortDirection(newSortDirection);\n dispatch(setReloadObjectsList(true));\n };\n\n const selectAllItems = () => {\n dispatch(setSelectedObjectView(null));\n\n if (selectedObjects.length === payload.length) {\n dispatch(setSelectedObjects([]));\n return;\n }\n\n const elements = payload.map((item) => item.name);\n dispatch(setSelectedObjects(elements));\n };\n\n const selectListObjects = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...selectedObjects]; // We clone the selectedBuckets array\n\n if (checked) {\n // If the user has checked this field we need to push this to selectedBucketsList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n dispatch(setSelectedObjects(elements));\n dispatch(setSelectedObjectView(null));\n\n return elements;\n };\n\n let errorMessage =\n !displayListObjects && !anonymousMode\n ? permissionTooltipHelper(\n [IAM_SCOPES.S3_LIST_BUCKET, IAM_SCOPES.S3_ALL_LIST_BUCKET],\n \"view Objects in this bucket\",\n )\n : `This location is empty${\n !rewindEnabled ? \", please try uploading a new file\" : \"\"\n }`;\n\n if (connectionError) {\n errorMessage =\n \"Objects List unavailable. Please review your WebSockets configuration and try again\";\n }\n\n let customPaperHeight = \"calc(100vh - 290px)\";\n\n if (obOnly) {\n customPaperHeight = \"calc(100vh - 315px)\";\n }\n\n return (\n {\n if (payload[index]?.delete_flag) {\n return \"deleted\";\n }\n\n return \"\";\n }}\n sx={{\n minHeight: detailsOpen ? \"100%\" : \"initial\",\n }}\n noBackground\n />\n );\n};\nexport default ListObjectsTable;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 { setSearchObjects } from \"./objectBrowserSlice\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\n\nconst FilterObjectsSB = () => {\n const dispatch = useAppDispatch();\n\n const searchObjects = useSelector(\n (state: AppState) => state.objectBrowser.searchObjects,\n );\n return (\n {\n dispatch(setSearchObjects(value));\n }}\n value={searchObjects}\n />\n );\n};\nexport default FilterObjectsSB;\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, {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport get from \"lodash/get\";\nimport {\n AccessRuleIcon,\n ActionsList,\n Box,\n BucketsIcon,\n Button,\n Checkbox,\n DeleteIcon,\n DownloadIcon,\n Grid,\n HistoryIcon,\n PageLayout,\n PreviewIcon,\n RefreshIcon,\n ScreenTitle,\n ShareIcon,\n Badge,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { BucketQuota } from \"api/consoleApi\";\nimport { useSelector } from \"react-redux\";\nimport { useLocation, useNavigate, useParams } from \"react-router-dom\";\nimport { useDropzone } from \"react-dropzone\";\nimport { DateTime } from \"luxon\";\nimport {\n decodeURLString,\n encodeURLString,\n niceBytesInt,\n} from \"../../../../../../common/utils\";\nimport BrowserBreadcrumbs from \"../../../../ObjectBrowser/BrowserBreadcrumbs\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../../../common/SecureComponent\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../systemSlice\";\nimport { isVersionedMode } from \"../../../../../../utils/validationFunctions\";\nimport {\n extractFileExtn,\n getPolicyAllowedFileExtensions,\n getSessionGrantsWildCard,\n} from \"../../UploadPermissionUtils\";\nimport {\n makeid,\n removeTrace,\n storeCallForObjectWithID,\n storeFormDataWithID,\n} from \"../../../../ObjectBrowser/transferManager\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n openList,\n resetMessages,\n resetRewind,\n setAnonymousAccessOpen,\n setDownloadRenameModal,\n setLoadingVersions,\n setNewObject,\n setObjectDetailsView,\n setPreviewOpen,\n setReloadObjectsList,\n setRetentionConfig,\n setSelectedObjects,\n setSelectedObjectView,\n setSelectedPreview,\n setShareFileModalOpen,\n setShowDeletedObjects,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport {\n selBucketDetailsInfo,\n selBucketDetailsLoading,\n setBucketDetailsLoad,\n setBucketInfo,\n} from \"../../../BucketDetails/bucketDetailsSlice\";\nimport {\n downloadSelected,\n openAnonymousAccess,\n openPreview,\n openShare,\n} from \"../../../../ObjectBrowser/objectBrowserThunks\";\nimport withSuspense from \"../../../../Common/Components/withSuspense\";\nimport UploadFilesButton from \"../../UploadFilesButton\";\nimport DetailsListPanel from \"./DetailsListPanel\";\nimport ObjectDetailPanel from \"./ObjectDetailPanel\";\nimport VersionsNavigator from \"../ObjectDetails/VersionsNavigator\";\nimport RenameLongFileName from \"../../../../ObjectBrowser/RenameLongFilename\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\nimport ListObjectsTable from \"./ListObjectsTable\";\nimport FilterObjectsSB from \"../../../../ObjectBrowser/FilterObjectsSB\";\nimport AddAccessRule from \"../../../BucketDetails/AddAccessRule\";\n\nconst DeleteMultipleObjects = withSuspense(\n React.lazy(() => import(\"./DeleteMultipleObjects\")),\n);\nconst ShareFile = withSuspense(\n React.lazy(() => import(\"../ObjectDetails/ShareFile\")),\n);\nconst RewindEnable = withSuspense(React.lazy(() => import(\"./RewindEnable\")));\nconst PreviewFileModal = withSuspense(\n React.lazy(() => import(\"../Preview/PreviewFileModal\")),\n);\n\nconst baseDnDStyle = {\n borderWidth: 2,\n borderRadius: 2,\n borderColor: \"transparent\",\n outline: \"none\",\n};\n\nconst activeDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"transparent\",\n borderColor: \"#2196f3\",\n};\n\nconst acceptDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"transparent\",\n borderColor: \"#00e676\",\n};\n\nconst ListObjects = () => {\n const dispatch = useAppDispatch();\n const params = useParams();\n const navigate = useNavigate();\n const location = useLocation();\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const bucketToRewind = useSelector(\n (state: AppState) => state.objectBrowser.rewind.bucketToRewind,\n );\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const showDeleted = useSelector(\n (state: AppState) => state.objectBrowser.showDeleted,\n );\n const detailsOpen = useSelector(\n (state: AppState) => state.objectBrowser.objectDetailsOpen,\n );\n const selectedInternalPaths = useSelector(\n (state: AppState) => state.objectBrowser.selectedInternalPaths,\n );\n const requestInProgress = useSelector(\n (state: AppState) => state.objectBrowser.requestInProgress,\n );\n const simplePath = useSelector(\n (state: AppState) => state.objectBrowser.simplePath,\n );\n const versioningConfig = useSelector(\n (state: AppState) => state.objectBrowser.versionInfo,\n );\n const lockingEnabled = useSelector(\n (state: AppState) => state.objectBrowser.lockingEnabled,\n );\n const downloadRenameModal = useSelector(\n (state: AppState) => state.objectBrowser.downloadRenameModal,\n );\n const selectedPreview = useSelector(\n (state: AppState) => state.objectBrowser.selectedPreview,\n );\n const shareFileModalOpen = useSelector(\n (state: AppState) => state.objectBrowser.shareFileModalOpen,\n );\n const previewOpen = useSelector(\n (state: AppState) => state.objectBrowser.previewOpen,\n );\n const selectedBucket = useSelector(\n (state: AppState) => state.objectBrowser.selectedBucket,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n const anonymousAccessOpen = useSelector(\n (state: AppState) => state.objectBrowser.anonymousAccessOpen,\n );\n\n const loadingBucket = useSelector(selBucketDetailsLoading);\n const bucketInfo = useSelector(selBucketDetailsInfo);\n\n const [deleteMultipleOpen, setDeleteMultipleOpen] = useState(false);\n const [rewindSelect, setRewindSelect] = useState(false);\n const [iniLoad, setIniLoad] = useState(false);\n const [canShareFile, setCanShareFile] = useState(false);\n const [canPreviewFile, setCanPreviewFile] = useState(false);\n const [quota, setQuota] = useState(null);\n const [metaData, setMetaData] = useState(null);\n const [isMetaDataLoaded, setIsMetaDataLoaded] = useState(false);\n\n const isVersioningApplied = isVersionedMode(versioningConfig.status);\n\n const bucketName = params.bucketName || \"\";\n const pathSegment = location.pathname.split(`/browser/${bucketName}/`);\n const internalPaths = pathSegment.length === 2 ? pathSegment[1] : \"\";\n\n const pageTitle = decodeURLString(internalPaths);\n const currentPath = pageTitle.split(\"/\").filter((i: string) => i !== \"\");\n\n let uploadPath = [bucketName];\n if (currentPath.length > 0) {\n uploadPath = uploadPath.concat(currentPath);\n }\n\n const fileUpload = useRef(null);\n const folderUpload = useRef(null);\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const pathAsResourceInPolicy = uploadPath.join(\"/\");\n const allowedFileExtensions = getPolicyAllowedFileExtensions(\n sessionGrants,\n pathAsResourceInPolicy,\n putObjectPermScopes,\n );\n\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n pathAsResourceInPolicy,\n putObjectPermScopes,\n );\n\n const canDownload = hasPermission(\n [pathAsResourceInPolicy, ...sessionGrantWildCards],\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n );\n const canDelete = hasPermission(\n [pathAsResourceInPolicy, ...sessionGrantWildCards],\n [IAM_SCOPES.S3_DELETE_OBJECT],\n );\n const canUpload =\n hasPermission(\n [pathAsResourceInPolicy, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n const canSetAnonymousAccess = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n IAM_SCOPES.S3_PUT_BUCKET_POLICY,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n\n const selectedObjects = useSelector(\n (state: AppState) => state.objectBrowser.selectedObjects,\n );\n\n const fetchMetadata = useCallback(() => {\n const objectName = selectedObjects[0];\n\n if (!isMetaDataLoaded) {\n const encodedPath = encodeURLString(objectName);\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: encodedPath,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n setIsMetaDataLoaded(true);\n setMetaData(metadata);\n })\n .catch((err) => {\n console.error(\n \"Error Getting Metadata Status: \",\n err,\n err?.detailedError,\n );\n setIsMetaDataLoaded(true);\n });\n }\n }, [bucketName, selectedObjects, isMetaDataLoaded]);\n\n useEffect(() => {\n if (bucketName && selectedObjects.length === 1) {\n fetchMetadata();\n }\n }, [bucketName, selectedObjects, fetchMetadata]);\n\n useEffect(() => {\n if (rewindEnabled) {\n if (bucketToRewind !== bucketName) {\n dispatch(resetRewind());\n return;\n }\n }\n }, [rewindEnabled, bucketToRewind, bucketName, dispatch]);\n\n useEffect(() => {\n if (folderUpload.current !== null) {\n folderUpload.current.setAttribute(\"directory\", \"\");\n folderUpload.current.setAttribute(\"webkitdirectory\", \"\");\n }\n }, [folderUpload]);\n\n useEffect(() => {\n if (selectedObjects.length === 1) {\n const objectName = selectedObjects[0];\n let objectType: AllowedPreviews = previewObjectType(metaData, objectName);\n\n if (objectType !== \"none\" && canDownload) {\n setCanPreviewFile(true);\n } else {\n setCanPreviewFile(false);\n }\n\n if (objectName.endsWith(\"/\") || canDownload) {\n setCanShareFile(true);\n } else {\n setCanShareFile(false);\n }\n } else {\n setCanShareFile(false);\n setCanPreviewFile(false);\n }\n }, [selectedObjects, canDownload, metaData]);\n\n useEffect(() => {\n if (!quota && !anonymousMode) {\n api.buckets\n .getBucketQuota(bucketName)\n .then((res) => {\n let quotaVals = null;\n\n if (res.data.quota) {\n quotaVals = res.data;\n }\n\n setQuota(quotaVals);\n })\n .catch((err) => {\n console.error(\n \"Error Getting Quota Status: \",\n err.error.detailedMessage,\n );\n setQuota(null);\n });\n }\n }, [quota, bucketName, anonymousMode]);\n\n useEffect(() => {\n if (selectedObjects.length > 0) {\n dispatch(setObjectDetailsView(true));\n return;\n }\n\n if (\n selectedObjects.length === 0 &&\n selectedInternalPaths === null &&\n !requestInProgress\n ) {\n dispatch(setObjectDetailsView(false));\n }\n }, [selectedObjects, selectedInternalPaths, dispatch, requestInProgress]);\n\n useEffect(() => {\n if (!iniLoad) {\n dispatch(setBucketDetailsLoad(true));\n setIniLoad(true);\n }\n }, [iniLoad, dispatch, setIniLoad]);\n\n // bucket info\n useEffect(() => {\n if ((requestInProgress || loadingBucket) && !anonymousMode) {\n api.buckets\n .bucketInfo(bucketName)\n .then((res) => {\n dispatch(setBucketDetailsLoad(false));\n dispatch(setBucketInfo(res.data));\n })\n .catch((err) => {\n dispatch(setBucketDetailsLoad(false));\n dispatch(setErrorSnackMessage(errorToHandler(err)));\n });\n }\n }, [bucketName, loadingBucket, dispatch, anonymousMode, requestInProgress]);\n\n // Load retention Config\n\n useEffect(() => {\n if (selectedBucket !== \"\") {\n api.buckets\n .getBucketRetentionConfig(selectedBucket)\n .then((res) => {\n dispatch(setRetentionConfig(res.data));\n })\n .catch(() => {\n dispatch(setRetentionConfig(null));\n });\n }\n }, [selectedBucket, dispatch]);\n\n const closeDeleteMultipleModalAndRefresh = (refresh: boolean) => {\n setDeleteMultipleOpen(false);\n\n if (refresh) {\n dispatch(setSnackBarMessage(`Objects deleted successfully.`));\n dispatch(setSelectedObjects([]));\n dispatch(setReloadObjectsList(true));\n }\n };\n\n const handleUploadButton = (e: any) => {\n if (\n e === null ||\n e === undefined ||\n e.target.files === null ||\n e.target.files === undefined\n ) {\n return;\n }\n e.preventDefault();\n var newFiles: File[] = [];\n\n for (let i = 0; i < e.target.files.length; i++) {\n newFiles.push(e.target.files[i]);\n }\n uploadObject(newFiles, \"\");\n\n e.target.value = \"\";\n };\n\n const uploadObject = useCallback(\n (files: File[], folderPath: string): void => {\n let pathPrefix = \"\";\n if (simplePath) {\n pathPrefix = simplePath.endsWith(\"/\") ? simplePath : simplePath + \"/\";\n }\n\n const upload = (\n files: File[],\n bucketName: string,\n path: string,\n folderPath: string,\n ) => {\n let uploadPromise = (file: File) => {\n return new Promise((resolve, reject) => {\n let uploadUrl = `api/v1/buckets/${bucketName}/objects/upload`;\n const fileName = file.name;\n\n const blobFile = new Blob([file], { type: file.type });\n\n let encodedPath = \"\";\n\n const filePath = get(file, \"path\", \"\");\n const fileWebkitRelativePath = get(file, \"webkitRelativePath\", \"\");\n\n let relativeFolderPath = folderPath;\n const ID = makeid(8);\n\n // File was uploaded via drag & drop\n if (filePath !== \"\") {\n relativeFolderPath = filePath;\n } else if (fileWebkitRelativePath !== \"\") {\n // File was uploaded using upload button\n relativeFolderPath = fileWebkitRelativePath;\n }\n\n if (path !== \"\" || relativeFolderPath !== \"\") {\n const finalFolderPath = relativeFolderPath\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\");\n\n const pathClean = path.endsWith(\"/\") ? path.slice(0, -1) : path;\n\n encodedPath = encodeURLString(\n `${pathClean}${\n !pathClean.endsWith(\"/\") &&\n finalFolderPath !== \"\" &&\n !finalFolderPath.startsWith(\"/\")\n ? \"/\"\n : \"\"\n }${finalFolderPath}${\n !finalFolderPath.endsWith(\"/\") ||\n (finalFolderPath.trim() === \"\" && !path.endsWith(\"/\"))\n ? \"/\"\n : \"\"\n }`,\n );\n }\n\n if (encodedPath !== \"\") {\n uploadUrl = `${uploadUrl}?prefix=${encodedPath}`;\n }\n\n const identity = encodeURLString(\n `${bucketName}-${encodedPath}-${new Date().getTime()}-${Math.random()}`,\n );\n\n let xhr = new XMLHttpRequest();\n xhr.open(\"POST\", uploadUrl, true);\n if (anonymousMode) {\n xhr.setRequestHeader(\"X-Anonymous\", \"1\");\n }\n // xhr.setRequestHeader(\"X-Anonymous\", \"1\");\n\n const areMultipleFiles = files.length > 1;\n let errorMessage = `An error occurred while uploading the file${\n areMultipleFiles ? \"s\" : \"\"\n }.`;\n\n const errorMessages: any = {\n 413: \"Error - File size too large\",\n };\n\n xhr.withCredentials = false;\n xhr.onload = function () {\n // resolve promise only when HTTP code is ok\n if (xhr.status >= 200 && xhr.status < 300) {\n dispatch(completeObject(identity));\n resolve({ status: xhr.status });\n\n removeTrace(ID);\n } else {\n // reject promise if there was a server error\n if (errorMessages[xhr.status]) {\n errorMessage = errorMessages[xhr.status];\n } else if (xhr.response) {\n try {\n const err = JSON.parse(xhr.response);\n errorMessage = err.detailedMessage;\n } catch (e) {\n errorMessage = \"something went wrong\";\n }\n }\n\n dispatch(\n failObject({\n instanceID: identity,\n msg: errorMessage,\n }),\n );\n reject({ status: xhr.status, message: errorMessage });\n\n removeTrace(ID);\n }\n };\n\n xhr.upload.addEventListener(\"error\", () => {\n reject(errorMessage);\n dispatch(\n failObject({\n instanceID: identity,\n msg: \"A network error occurred.\",\n }),\n );\n return;\n });\n\n xhr.upload.addEventListener(\"progress\", (event) => {\n const progress = Math.floor((event.loaded * 100) / event.total);\n\n dispatch(\n updateProgress({\n instanceID: identity,\n progress: progress,\n }),\n );\n });\n\n xhr.onerror = () => {\n reject(errorMessage);\n dispatch(\n failObject({\n instanceID: identity,\n msg: \"A network error occurred.\",\n }),\n );\n return;\n };\n xhr.onloadend = () => {\n if (files.length === 0) {\n dispatch(setReloadObjectsList(true));\n }\n };\n xhr.onabort = () => {\n dispatch(cancelObjectInList(identity));\n };\n\n const formData = new FormData();\n if (file.size !== undefined) {\n formData.append(file.size.toString(), blobFile, fileName);\n storeCallForObjectWithID(ID, xhr);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identity,\n percentage: 0,\n prefix: `${decodeURLString(encodedPath)}${fileName}`,\n type: \"upload\",\n waitingForFile: false,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\n }),\n );\n storeFormDataWithID(ID, formData);\n }\n });\n };\n\n const uploadFilePromises: any = [];\n // open object manager\n dispatch(openList());\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n uploadFilePromises.push(uploadPromise(file));\n }\n Promise.allSettled(uploadFilePromises).then((results: Array) => {\n const errors = results.filter(\n (result) => result.status === \"rejected\",\n );\n if (errors.length > 0) {\n const totalFiles = uploadFilePromises.length;\n const successUploadedFiles =\n uploadFilePromises.length - errors.length;\n const err: ErrorResponseHandler = {\n errorMessage: \"There were some errors during file upload\",\n detailedError: `Uploaded files ${successUploadedFiles}/${totalFiles}`,\n };\n dispatch(setErrorSnackMessage(err));\n }\n // We force objects list reload after all promises were handled\n dispatch(setReloadObjectsList(true));\n });\n };\n\n upload(files, bucketName, pathPrefix, folderPath);\n },\n [bucketName, dispatch, simplePath, anonymousMode],\n );\n\n const onDrop = useCallback(\n (acceptedFiles: any[]) => {\n if (acceptedFiles && acceptedFiles.length > 0 && canUpload) {\n let newFolderPath: string = acceptedFiles[0].path;\n //Should we filter by allowed file extensions if any?.\n let allowedFiles = acceptedFiles;\n\n if (allowedFileExtensions.length > 0) {\n allowedFiles = acceptedFiles.filter((file) => {\n const fileExtn = extractFileExtn(file.name);\n return allowedFileExtensions.includes(fileExtn);\n });\n }\n\n if (allowedFiles.length) {\n uploadObject(allowedFiles, newFolderPath);\n console.log(\n `${allowedFiles.length} Allowed Files Processed out of ${acceptedFiles.length}.`,\n pathAsResourceInPolicy,\n ...sessionGrantWildCards,\n );\n\n if (allowedFiles.length !== acceptedFiles.length) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"Upload is restricted.\",\n detailedError: permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT, IAM_SCOPES.S3_PUT_ACTIONS],\n \"upload objects to this location\",\n ),\n }),\n );\n }\n } else {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"Could not process drag and drop.\",\n detailedError: permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT, IAM_SCOPES.S3_PUT_ACTIONS],\n \"upload objects to this location\",\n ),\n }),\n );\n\n console.error(\n \"Could not process drag and drop . upload may be restricted.\",\n pathAsResourceInPolicy,\n ...sessionGrantWildCards,\n );\n }\n }\n if (!canUpload) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"Upload not allowed\",\n detailedError: permissionTooltipHelper(\n [IAM_SCOPES.S3_PUT_OBJECT, IAM_SCOPES.S3_PUT_ACTIONS],\n \"upload objects to this location\",\n ),\n }),\n );\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [uploadObject],\n );\n\n const { getRootProps, getInputProps, isDragActive, isDragAccept } =\n useDropzone({\n noClick: true,\n onDrop,\n });\n\n const dndStyles = useMemo(\n () => ({\n ...baseDnDStyle,\n ...(isDragActive ? activeDnDStyle : {}),\n ...(isDragAccept ? acceptDnDStyle : {}),\n }),\n [isDragActive, isDragAccept],\n );\n\n const closeShareModal = () => {\n dispatch(setShareFileModalOpen(false));\n dispatch(setSelectedPreview(null));\n };\n\n const rewindCloseModal = () => {\n setRewindSelect(false);\n };\n\n const closePreviewWindow = () => {\n dispatch(setPreviewOpen(false));\n dispatch(setSelectedPreview(null));\n };\n\n const onClosePanel = (forceRefresh: boolean) => {\n dispatch(setSelectedObjectView(null));\n dispatch(setVersionsModeEnabled({ status: false }));\n if (detailsOpen && selectedInternalPaths !== null) {\n // We change URL to be the contained folder\n\n const decodedPath = decodeURLString(internalPaths);\n const splitURLS = decodedPath.split(\"/\");\n\n // We remove the last section of the URL as it should be a file\n splitURLS.pop();\n\n let URLItem = \"\";\n\n if (splitURLS && splitURLS.length > 0) {\n URLItem = `${splitURLS.join(\"/\")}/`;\n }\n\n navigate(`/browser/${bucketName}/${encodeURLString(URLItem)}`);\n }\n\n dispatch(setObjectDetailsView(false));\n\n if (forceRefresh) {\n dispatch(setReloadObjectsList(true));\n }\n };\n\n const setDeletedAction = () => {\n dispatch(resetMessages());\n dispatch(setShowDeletedObjects(!showDeleted));\n onClosePanel(true);\n };\n\n const closeRenameModal = () => {\n dispatch(setDownloadRenameModal(null));\n };\n\n const closeAddAccessRule = () => {\n dispatch(setAnonymousAccessOpen(false));\n };\n\n let createdTime = DateTime.now();\n\n if (bucketInfo?.creation_date) {\n createdTime = DateTime.fromISO(bucketInfo.creation_date);\n }\n\n const downloadToolTip =\n selectedObjects?.length <= 1\n ? \"Download Selected\"\n : ` Download selected objects as Zip. Any Deleted objects in the selection would be skipped from download.`;\n\n const multiActionButtons = [\n {\n action: () => {\n dispatch(downloadSelected(bucketName));\n },\n label: \"Download\",\n disabled: !canDownload || selectedObjects?.length === 0,\n icon: ,\n tooltip: canDownload\n ? downloadToolTip\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_GET_OBJECT, IAM_SCOPES.S3_GET_ACTIONS],\n \"download objects from this bucket\",\n ),\n },\n {\n action: () => {\n dispatch(openShare());\n },\n label: \"Share\",\n disabled: selectedObjects.length !== 1 || !canShareFile,\n icon: ,\n tooltip: canShareFile ? \"Share Selected File\" : \"Sharing unavailable\",\n },\n {\n action: () => {\n dispatch(openPreview());\n },\n label: \"Preview\",\n disabled: selectedObjects.length !== 1 || !canPreviewFile,\n icon: ,\n tooltip: canPreviewFile ? \"Preview Selected File\" : \"Preview unavailable\",\n },\n {\n action: () => {\n dispatch(openAnonymousAccess());\n },\n label: \"Anonymous Access\",\n disabled:\n selectedObjects.length !== 1 ||\n !selectedObjects[0].endsWith(\"/\") ||\n !canSetAnonymousAccess,\n icon: ,\n tooltip:\n selectedObjects.length === 1 && selectedObjects[0].endsWith(\"/\")\n ? \"Set Anonymous Access to this Folder\"\n : \"Anonymous Access unavailable\",\n },\n {\n action: () => {\n setDeleteMultipleOpen(true);\n },\n label: \"Delete\",\n icon: ,\n disabled: !canDelete || selectedObjects.length === 0,\n tooltip: canDelete\n ? \"Delete Selected Files\"\n : permissionTooltipHelper(\n [IAM_SCOPES.S3_DELETE_OBJECT],\n \"delete objects in this bucket\",\n ),\n },\n ];\n\n return (\n \n {shareFileModalOpen && selectedPreview && (\n \n )}\n {deleteMultipleOpen && (\n \n )}\n {rewindSelect && (\n \n )}\n {previewOpen && (\n \n )}\n {!!downloadRenameModal && (\n \n )}\n {anonymousAccessOpen && (\n \n )}\n\n \n {anonymousMode && (\n
\n \n
\n )}\n \n \n \n \n }\n title={bucketName}\n subTitle={\n !anonymousMode ? (\n \n \n Created on: \n \n {bucketInfo?.creation_date\n ? createdTime.toFormat(\n \"ccc, LLL dd yyyy HH:mm:ss (ZZZZ)\",\n )\n : \"\"}\n \n \n \n Access:  \n {bucketInfo?.access || \"\"}\n \n {bucketInfo && (\n \n \n {bucketInfo.size && (\n {niceBytesInt(bucketInfo.size)}\n )}\n {bucketInfo.size && quota && (\n \n {\" \"}\n / {niceBytesInt(quota.quota || 0)}\n \n )}\n {bucketInfo.size && bucketInfo.objects ? \" - \" : \"\"}\n {bucketInfo.objects && (\n \n {bucketInfo.objects} Object\n {bucketInfo.objects && bucketInfo.objects !== 1\n ? \"s\"\n : \"\"}\n \n )}\n \n \n )}\n \n ) : null\n }\n actions={\n \n {!anonymousMode && (\n \n \n \n \n }\n variant={\"regular\"}\n onClick={() => {\n setRewindSelect(true);\n }}\n disabled={\n !isVersioningApplied ||\n !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_OBJECT,\n IAM_SCOPES.S3_GET_ACTIONS,\n ])\n }\n />\n \n )}\n \n }\n variant={\"regular\"}\n onClick={() => {\n if (versionsMode) {\n dispatch(setLoadingVersions(true));\n } else {\n dispatch(resetMessages());\n dispatch(setReloadObjectsList(true));\n }\n }}\n disabled={\n anonymousMode\n ? false\n : !hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n IAM_SCOPES.S3_ALL_LIST_BUCKET,\n ]) || rewindEnabled\n }\n />\n \n \n \n {\n if (fileUpload && fileUpload.current) {\n fileUpload.current.click();\n }\n closeMenu();\n }}\n uploadFolderFunction={(closeMenu) => {\n if (folderUpload && folderUpload.current) {\n folderUpload.current.click();\n }\n closeMenu();\n }}\n />\n \n }\n bottomBorder={false}\n />\n \n \n \n \n {versionsMode ? (\n \n {selectedInternalPaths !== null && (\n \n )}\n \n ) : (\n \n \n {!anonymousMode && (\n \n \n )\n }\n hidePathButton={false}\n />\n \n )}\n \n \n \n )}\n {!anonymousMode && (\n \n {\n onClosePanel(false);\n }}\n className={`${versionsMode ? \"hideListOnSmall\" : \"\"}`}\n >\n {selectedObjects.length > 0 && (\n \n )}\n {selectedInternalPaths !== null && (\n \n )}\n \n \n )}\n \n \n
\n
\n );\n};\n\nexport default ListObjects;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more 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 } from \"react\";\nimport {\n IAM_PAGES,\n IAM_PERMISSIONS,\n IAM_ROLES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport { BackLink, Button, SettingsIcon, Grid } from \"mds\";\nimport AutoColorIcon from \"../Common/Components/AutoColorIcon\";\nimport { useSelector } from \"react-redux\";\nimport { selFeatures } from \"../consoleSlice\";\nimport hasPermission from \"../../../common/SecureComponent/accessControl\";\nimport { useNavigate } from \"react-router-dom\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setSearchVersions } from \"./objectBrowserSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport FilterObjectsSB from \"./FilterObjectsSB\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport ObjectManagerButton from \"../Common/ObjectManager/ObjectManagerButton\";\nimport HelpMenu from \"../HelpMenu\";\nimport { setHelpName } from \"../../../systemSlice\";\n\ninterface IOBHeader {\n bucketName: string;\n}\n\nconst OBHeader = ({ bucketName }: IOBHeader) => {\n const dispatch = useAppDispatch();\n const features = useSelector(selFeatures);\n\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const versionedFile = useSelector(\n (state: AppState) => state.objectBrowser.versionedFile,\n );\n const searchVersions = useSelector(\n (state: AppState) => state.objectBrowser.searchVersions,\n );\n\n const obOnly = !!features?.includes(\"object-browser-only\");\n\n const navigate = useNavigate();\n\n const configureBucketAllowed = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n IAM_SCOPES.S3_PUT_BUCKET_POLICY,\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,\n IAM_SCOPES.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION,\n IAM_SCOPES.S3_DELETE_BUCKET,\n IAM_SCOPES.S3_GET_BUCKET_NOTIFICATIONS,\n IAM_SCOPES.S3_PUT_BUCKET_NOTIFICATIONS,\n IAM_SCOPES.S3_GET_REPLICATION_CONFIGURATION,\n IAM_SCOPES.S3_PUT_REPLICATION_CONFIGURATION,\n IAM_SCOPES.S3_GET_LIFECYCLE_CONFIGURATION,\n IAM_SCOPES.S3_PUT_LIFECYCLE_CONFIGURATION,\n IAM_SCOPES.ADMIN_GET_BUCKET_QUOTA,\n IAM_SCOPES.ADMIN_SET_BUCKET_QUOTA,\n IAM_SCOPES.S3_PUT_BUCKET_TAGGING,\n IAM_SCOPES.S3_GET_BUCKET_TAGGING,\n IAM_SCOPES.S3_LIST_BUCKET_VERSIONS,\n IAM_SCOPES.S3_GET_BUCKET_POLICY_STATUS,\n IAM_SCOPES.S3_DELETE_BUCKET_POLICY,\n IAM_SCOPES.S3_GET_ACTIONS,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ]);\n\n const searchBar = (\n \n {!versionsMode ? (\n \n \n \n ) : (\n \n {\n dispatch(setSearchVersions(value));\n }}\n value={searchVersions}\n />\n \n )}\n \n );\n\n useEffect(() => {\n dispatch(setHelpName(\"object_browser\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {!obOnly ? (\n {\n navigate(IAM_PAGES.OBJECT_BROWSER_VIEW);\n }}\n />\n }\n actions={\n \n \n \n navigate(`/buckets/${bucketName}/admin`)}\n icon={\n \n }\n style={{\n padding: \"0 10px\",\n }}\n />\n \n \n \n \n }\n middleComponent={searchBar}\n />\n ) : (\n \n \n \n \n \n {searchBar}\n \n \n \n )}\n \n );\n};\n\nexport default OBHeader;\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 { useLocation, useParams } from \"react-router-dom\";\nimport { api } from \"api\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport { decodeURLString, encodeURLString } from \"../../../../common/utils\";\nimport {\n resetMessages,\n setIsVersioned,\n setLoadingLocking,\n setLoadingObjectInfo,\n setLoadingVersioning,\n setLoadingVersions,\n setLockingEnabled,\n setObjectDetailsView,\n setRequestInProgress,\n setSelectedObjectView,\n setVersionsModeEnabled,\n} from \"../../ObjectBrowser/objectBrowserSlice\";\nimport ListObjects from \"../ListBuckets/Objects/ListObjects/ListObjects\";\nimport hasPermission from \"../../../../common/SecureComponent/accessControl\";\nimport OBHeader from \"../../ObjectBrowser/OBHeader\";\n\nconst BrowserHandler = () => {\n const dispatch = useAppDispatch();\n const params = useParams();\n const location = useLocation();\n\n const loadingVersioning = useSelector(\n (state: AppState) => state.objectBrowser.loadingVersioning,\n );\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const rewindDate = useSelector(\n (state: AppState) => state.objectBrowser.rewind.dateToRewind,\n );\n const showDeleted = useSelector(\n (state: AppState) => state.objectBrowser.showDeleted,\n );\n const requestInProgress = useSelector(\n (state: AppState) => state.objectBrowser.requestInProgress,\n );\n const loadingLocking = useSelector(\n (state: AppState) => state.objectBrowser.loadingLocking,\n );\n const reloadObjectsList = useSelector(\n (state: AppState) => state.objectBrowser.reloadObjectsList,\n );\n const simplePath = useSelector(\n (state: AppState) => state.objectBrowser.simplePath,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n const selectedBucket = useSelector(\n (state: AppState) => state.objectBrowser.selectedBucket,\n );\n const records = useSelector((state: AppState) => state.objectBrowser.records);\n\n const bucketName = params.bucketName || \"\";\n const pathSegment = location.pathname.split(`/browser/${bucketName}/`);\n const internalPaths = pathSegment.length === 2 ? pathSegment[1] : \"\";\n\n const initWSRequest = useCallback(\n (path: string) => {\n let currDate = new Date();\n\n let date = currDate.toISOString();\n\n if (rewindDate !== null && rewindEnabled) {\n date = rewindDate;\n }\n\n const payloadData = {\n bucketName,\n path,\n rewindMode: rewindEnabled || showDeleted,\n date: date,\n };\n\n dispatch({ type: \"socket/OBRequest\", payload: payloadData });\n },\n [bucketName, showDeleted, rewindDate, rewindEnabled, dispatch],\n );\n\n // Common path load\n const pathLoad = useCallback(\n (forceLoad: boolean = false) => {\n const decodedInternalPaths = decodeURLString(internalPaths);\n\n // We exit Versions mode in case of path change\n dispatch(setVersionsModeEnabled({ status: false }));\n\n let searchPath = decodedInternalPaths;\n\n if (!decodedInternalPaths.endsWith(\"/\") && decodedInternalPaths !== \"\") {\n searchPath = `${decodedInternalPaths\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\")}/`;\n }\n\n if (searchPath === \"/\") {\n searchPath = \"\";\n }\n\n // If the path is different of the actual path or reload objects list is requested, then we initialize a new request to load a new record set.\n if (\n searchPath !== simplePath ||\n bucketName !== selectedBucket ||\n forceLoad\n ) {\n dispatch(setRequestInProgress(true));\n initWSRequest(searchPath);\n }\n },\n [\n internalPaths,\n dispatch,\n simplePath,\n selectedBucket,\n bucketName,\n initWSRequest,\n ],\n );\n\n useEffect(() => {\n return () => {\n dispatch({ type: \"socket/OBCancelLast\" });\n };\n }, [dispatch]);\n\n // Object Details handler\n useEffect(() => {\n const decodedIPaths = decodeURLString(internalPaths);\n\n dispatch(setLoadingVersioning(true));\n\n if (decodedIPaths.endsWith(\"/\") || decodedIPaths === \"\") {\n dispatch(setObjectDetailsView(false));\n dispatch(setSelectedObjectView(null));\n dispatch(setLoadingLocking(true));\n } else {\n dispatch(setLoadingObjectInfo(true));\n dispatch(setObjectDetailsView(true));\n dispatch(setLoadingVersions(true));\n dispatch(\n setSelectedObjectView(\n `${decodedIPaths ? `${encodeURLString(decodedIPaths)}` : ``}`,\n ),\n );\n }\n }, [bucketName, internalPaths, rewindDate, rewindEnabled, dispatch]);\n\n // Navigation Listing Request\n useEffect(() => {\n pathLoad(false);\n }, [pathLoad]);\n\n // Reload Handler\n useEffect(() => {\n if (reloadObjectsList && records.length === 0 && !requestInProgress) {\n pathLoad(true);\n }\n }, [reloadObjectsList, records, requestInProgress, pathLoad]);\n\n const displayListObjects =\n hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n IAM_SCOPES.S3_ALL_LIST_BUCKET,\n ]) || anonymousMode;\n\n useEffect(() => {\n if (loadingVersioning && !anonymousMode) {\n if (displayListObjects) {\n api.buckets\n .getBucketVersioning(bucketName)\n .then((res) => {\n dispatch(setIsVersioned(res.data));\n dispatch(setLoadingVersioning(false));\n })\n .catch((err) => {\n console.error(\n \"Error Getting Object Versioning Status: \",\n err.error.detailedMessage,\n );\n dispatch(setLoadingVersioning(false));\n });\n } else {\n dispatch(setLoadingVersioning(false));\n dispatch(resetMessages());\n }\n }\n }, [\n bucketName,\n loadingVersioning,\n dispatch,\n displayListObjects,\n anonymousMode,\n ]);\n\n useEffect(() => {\n if (loadingLocking) {\n if (displayListObjects) {\n api.buckets\n .getBucketObjectLockingStatus(bucketName)\n .then((res) => {\n dispatch(setLockingEnabled(res.data.object_locking_enabled));\n dispatch(setLoadingLocking(false));\n })\n .catch((err) => {\n console.error(\n \"Error Getting Object Locking Status: \",\n err.error.detailedMessage,\n );\n dispatch(setLoadingLocking(false));\n });\n } else {\n dispatch(resetMessages());\n dispatch(setLoadingLocking(false));\n }\n }\n }, [bucketName, loadingLocking, dispatch, displayListObjects]);\n\n return (\n \n {!anonymousMode && }\n \n \n );\n};\n\nexport default BrowserHandler;\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 { DateTime } from \"luxon\";\nimport { Box, InputBox, InputLabel, LinkIcon } from \"mds\";\n\ninterface IDaysSelector {\n id: string;\n initialDate: Date;\n maxDays?: number;\n label: string;\n entity: string;\n onChange: (newDate: string, isValid: boolean) => void;\n}\n\nconst calculateNewTime = (\n initialDate: Date,\n days: number,\n hours: number,\n minutes: number,\n) => {\n return DateTime.fromJSDate(initialDate).plus({\n hours: hours + days * 24,\n minutes,\n }); // Lump days into hours to avoid daylight savings causing issues\n};\n\nconst DaysSelector = ({\n id,\n initialDate,\n label,\n maxDays,\n entity,\n onChange,\n}: IDaysSelector) => {\n const [selectedDays, setSelectedDays] = useState(7);\n const [selectedHours, setSelectedHours] = useState(0);\n const [selectedMinutes, setSelectedMinutes] = useState(0);\n const [validDate, setValidDate] = useState(true);\n const [dateSelected, setDateSelected] = useState(DateTime.now());\n\n useEffect(() => {\n if (\n !isNaN(selectedHours) &&\n !isNaN(selectedDays) &&\n !isNaN(selectedMinutes)\n ) {\n setDateSelected(\n calculateNewTime(\n initialDate,\n selectedDays,\n selectedHours,\n selectedMinutes,\n ),\n );\n }\n }, [initialDate, selectedDays, selectedHours, selectedMinutes]);\n\n useEffect(() => {\n if (validDate) {\n const formattedDate = dateSelected.toFormat(\"yyyy-MM-dd HH:mm:ss\");\n onChange(formattedDate.split(\" \").join(\"T\"), true);\n } else {\n onChange(\"0000-00-00\", false);\n }\n }, [dateSelected, onChange, validDate]);\n\n // Basic validation for inputs\n useEffect(() => {\n let valid = true;\n if (\n selectedDays < 0 ||\n (maxDays && selectedDays > maxDays) ||\n isNaN(selectedDays)\n ) {\n valid = false;\n }\n\n if (selectedHours < 0 || selectedHours > 23 || isNaN(selectedHours)) {\n valid = false;\n }\n\n if (selectedMinutes < 0 || selectedMinutes > 59 || isNaN(selectedMinutes)) {\n valid = false;\n }\n\n if (\n maxDays &&\n selectedDays === maxDays &&\n (selectedHours !== 0 || selectedMinutes !== 0)\n ) {\n valid = false;\n }\n\n if (selectedDays <= 0 && selectedHours <= 0 && selectedMinutes <= 0) {\n valid = false;\n }\n\n setValidDate(valid);\n }, [\n dateSelected,\n maxDays,\n onChange,\n selectedDays,\n selectedHours,\n selectedMinutes,\n ]);\n\n const extraStyles = {\n \"& .textBoxContainer\": {\n minWidth: 0,\n },\n \"& input\": {\n textAlign: \"center\" as const,\n paddingRight: 10,\n paddingLeft: 10,\n width: 40,\n },\n };\n\n return (\n \n \n {label}\n \n label\": {\n fontWeight: 400,\n marginLeft: 15,\n marginRight: 25,\n },\n },\n }}\n >\n \n {\n setSelectedDays(parseInt(e.target.value));\n }}\n value={selectedDays.toString()}\n sx={extraStyles}\n noLabelMinWidth\n />\n \n \n {\n setSelectedHours(parseInt(e.target.value));\n }}\n value={selectedHours.toString()}\n sx={extraStyles}\n noLabelMinWidth\n />\n \n \n {\n setSelectedMinutes(parseInt(e.target.value));\n }}\n value={selectedMinutes.toString()}\n sx={extraStyles}\n noLabelMinWidth\n />\n \n \n .min-icon\": {\n color: \"#5E5E5E\",\n width: 15,\n height: 15,\n marginRight: 10,\n },\n },\n \"& .validTill\": {\n fontWeight: \"bold\",\n marginLeft: 15,\n },\n \"& .invalidDurationText\": {\n marginTop: 15,\n display: \"flex\",\n color: \"red\",\n fontSize: 11,\n },\n }}\n >\n {validDate ? (\n
\n \n
{entity} will be available until:
{\" \"}\n
\n {dateSelected.toFormat(\"MM/dd/yyyy HH:mm:ss ZZZZ\")}\n
\n
\n ) : (\n
\n Please select a valid duration.\n
\n )}\n \n \n );\n};\n\nexport default DaysSelector;\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 { Button, CopyIcon, ReadBox, ShareIcon, Grid, ProgressBar } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport DaysSelector from \"../../../../Common/FormComponents/DaysSelector/DaysSelector\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport {\n selDistSet,\n setModalErrorSnackMessage,\n setModalSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IShareFileProps {\n open: boolean;\n bucketName: string;\n dataObject: BucketObject;\n closeModalAndRefresh: () => void;\n}\n\nconst ShareFile = ({\n open,\n closeModalAndRefresh,\n bucketName,\n dataObject,\n}: IShareFileProps) => {\n const dispatch = useAppDispatch();\n const distributedSetup = useSelector(selDistSet);\n const [shareURL, setShareURL] = useState(\"\");\n const [isLoadingVersion, setIsLoadingVersion] = useState(true);\n const [isLoadingFile, setIsLoadingFile] = useState(false);\n const [selectedDate, setSelectedDate] = useState(\"\");\n const [dateValid, setDateValid] = useState(true);\n const [versionID, setVersionID] = useState(\"null\");\n\n const initialDate = new Date();\n\n const dateChanged = (newDate: string, isValid: boolean) => {\n setDateValid(isValid);\n if (isValid) {\n setSelectedDate(newDate);\n return;\n }\n setSelectedDate(\"\");\n setShareURL(\"\");\n };\n\n useEffect(() => {\n // In case version is undefined, we get the latest version of the object\n if (dataObject.version_id === undefined) {\n // In case it is not distributed setup, then we default to \"null\";\n if (distributedSetup) {\n api.buckets\n .listObjects(bucketName, {\n prefix: encodeURLString(dataObject.name || \"\"),\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result: BucketObject[] = res.data.objects || [];\n\n const latestVersion: BucketObject | undefined = result.find(\n (elem: BucketObject) => elem.is_latest,\n );\n\n if (latestVersion) {\n setVersionID(`${latestVersion.version_id}`);\n return;\n }\n\n // Version couldn't be retrieved, we default\n setVersionID(\"null\");\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n\n setIsLoadingVersion(false);\n return;\n }\n setVersionID(\"null\");\n setIsLoadingVersion(false);\n return;\n }\n setVersionID(dataObject.version_id || \"null\");\n setIsLoadingVersion(false);\n }, [bucketName, dataObject, distributedSetup, dispatch]);\n\n useEffect(() => {\n if (dateValid && !isLoadingVersion) {\n setIsLoadingFile(true);\n setShareURL(\"\");\n\n const slDate = new Date(`${selectedDate}`);\n const currDate = new Date();\n\n const diffDate = Math.ceil(\n (slDate.getTime() - currDate.getTime()) / 1000,\n );\n\n if (diffDate > 0) {\n api.buckets\n .shareObject(bucketName, {\n prefix: encodeURLString(dataObject.name || \"\"),\n version_id: versionID,\n expires: selectedDate !== \"\" ? `${diffDate}s` : \"\",\n })\n .then((res) => {\n setShareURL(res.data);\n setIsLoadingFile(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setShareURL(\"\");\n setIsLoadingFile(false);\n });\n }\n }\n }, [\n dataObject,\n selectedDate,\n bucketName,\n dateValid,\n setShareURL,\n dispatch,\n distributedSetup,\n isLoadingVersion,\n versionID,\n ]);\n\n return (\n \n }\n modalOpen={open}\n onClose={() => {\n closeModalAndRefresh();\n }}\n >\n {isLoadingVersion && (\n \n \n \n )}\n {!isLoadingVersion && (\n \n \n This is a temporary URL with integrated access credentials for\n sharing objects valid for up to 7 days.\n
\n
\n The temporary URL expires after the configured time limit.\n \n
\n \n \n \n \n \n {\n dispatch(\n setModalSnackMessage(\"Share URL Copied to clipboard\"),\n );\n }}\n disabled={shareURL === \"\" || isLoadingFile}\n style={{\n width: \"28px\",\n height: \"28px\",\n padding: \"0px\",\n }}\n icon={}\n />\n \n }\n >\n {shareURL}\n \n \n
\n )}\n \n
\n );\n};\n\nexport default ShareFile;\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 { ProgressBar, Grid, Box, InformativeMessage } from \"mds\";\nimport get from \"lodash/get\";\nimport { BucketObjectItem } from \"../ListObjects/types\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { api } from \"../../../../../../api\";\n\ninterface IPreviewFileProps {\n bucketName: string;\n object: BucketObjectItem | null;\n isFullscreen?: boolean;\n}\n\nconst PreviewFile = ({\n bucketName,\n object,\n isFullscreen = false,\n}: IPreviewFileProps) => {\n const [loading, setLoading] = useState(true);\n\n const [metaData, setMetaData] = useState(null);\n const [isMetaDataLoaded, setIsMetaDataLoaded] = useState(false);\n\n const objectName = object?.name || \"\";\n\n const fetchMetadata = useCallback(() => {\n if (!isMetaDataLoaded) {\n const encodedPath = encodeURLString(objectName);\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: encodedPath,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n setIsMetaDataLoaded(true);\n setMetaData(metadata);\n })\n .catch((err) => {\n console.error(\n \"Error Getting Metadata Status: \",\n err,\n err?.detailedError,\n );\n setIsMetaDataLoaded(true);\n });\n }\n }, [bucketName, objectName, isMetaDataLoaded]);\n\n useEffect(() => {\n if (bucketName && objectName) {\n fetchMetadata();\n }\n }, [bucketName, objectName, fetchMetadata]);\n\n let path = \"\";\n\n if (object) {\n const encodedPath = encodeURLString(object.name);\n let basename = document.baseURI.replace(window.location.origin, \"\");\n path = `${window.location.origin}${basename}api/v1/buckets/${bucketName}/objects/download?preview=true&prefix=${encodedPath}`;\n if (object.version_id) {\n path = path.concat(`&version_id=${object.version_id}`);\n }\n }\n\n let objectType: AllowedPreviews = previewObjectType(metaData, objectName);\n\n const iframeLoaded = () => {\n setLoading(false);\n };\n\n return (\n \n {objectType !== \"none\" && loading && (\n \n \n \n )}\n {isMetaDataLoaded ? (\n \n {objectType === \"video\" && (\n \n \n \n )}\n {objectType === \"audio\" && (\n \n \n \n )}\n {objectType === \"image\" && (\n \n )}\n {objectType === \"none\" && (\n
\n \n
\n )}\n {objectType !== \"none\" &&\n objectType !== \"video\" &&\n objectType !== \"audio\" &&\n objectType !== \"image\" && (\n
\n \n File couldn't be loaded. Please try Download instead\n \n
\n )}\n \n ) : null}\n
\n );\n};\nexport default PreviewFile;\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 ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport PreviewFileContent from \"./PreviewFileContent\";\nimport { BucketObjectItem } from \"../ListObjects/types\";\nimport { ObjectPreviewIcon } from \"mds\";\n\ninterface IPreviewFileProps {\n open: boolean;\n bucketName: string;\n object: BucketObjectItem | null;\n onClosePreview: () => void;\n}\n\nconst PreviewFileModal = ({\n open,\n bucketName,\n object,\n onClosePreview,\n}: IPreviewFileProps) => {\n return (\n \n }\n >\n \n \n \n );\n};\n\nexport default PreviewFileModal;\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, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

(\n WrappedComponent: ComponentType

,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\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, { useState } from \"react\";\nimport { Button, CopyIcon, InputBox, Box, breakPoints } from \"mds\";\n\nconst KeyRevealer = ({ value }: { value: string }) => {\n const [shown, setShown] = useState(false);\n\n return (\n \n {}}\n value={value}\n overlayIcon={}\n readOnly={true}\n overlayAction={() => navigator.clipboard.writeText(value)}\n />\n\n setShown(!shown)}\n label={\"Show/Hide\"}\n />\n \n );\n};\n\nexport default KeyRevealer;\n"],"names":["_ref","modalOpen","onClose","bucket","prefilledRoute","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","prefix","setPrefix","_useState3","_useState4","selectedAccess","setSelectedAccess","useEffect","_jsx","ModalWrapper","title","titleIcon","AddAccessRuleIcon","children","_jsxs","FormLayout","withBorders","containerPadding","InputBox","value","label","id","name","placeholder","onChange","e","target","tooltip","Select","options","disabled","helpTip","Fragment","helpTipPlacement","Grid","item","xs","sx","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","trim","api","setAccessRuleWithBucket","access","then","res","setSnackBarMessage","catch","setErrorSnackMessage","errorToHandler","error","extractFileExtn","resourceStr","match","getSessionGrantsWildCard","sessionGrants","uploadPath","scopes","arguments","length","undefined","grantsWithExtension","Object","keys","reduce","acc","grantKey","includes","filter","sessionGrantKey","hasScope","some","actionKey","find","scopeKey","wildCardMatch","indexOf","scopeActionKey","substring","isUploadPathMatching","concat","CreatePathModal","withSuspense","React","BreadcrumbsMain","styled","div","display","_defineProperty","paddingRight","alignItems","breakPoints","lg","margin","bucketName","internalPaths","hidePathButton","additionalOptions","navigate","useNavigate","rewindEnabled","useSelector","state","objectBrowser","rewind","versionsMode","versionedFile","anonymousMode","system","createFolderOpen","setCreateFolderOpen","putObjectPermScopes","IAM_SCOPES","S3_PUT_OBJECT","S3_PUT_ACTIONS","console","session","permissions","paths","splitPaths","split","path","lastBreadcrumbsIndex","pathToCheckPerms","sessionGrantWildCards","canCreatePath","hasPermission","_toConsumableArray","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeURLString","className","style","cursor","whiteSpace","safeDecodeURIComponent","Link","to","setVersionsModeEnabled","status","objectName","toString","versionsItem","listBreadcrumbs","folderName","Breadcrumbs","goBackFunction","prevPath","CopyToClipboard","text","icon","CopyIcon","width","height","fill","marginTop","color","border","marginRight","Box","Tooltip","permissionTooltipHelper","NewPathIcon","marginBottom","justifyContent","fontSize","fontWeight","flexDirection","flexWrap","isVersionedMode","downloadSelected","createAsyncThunk","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","getState","downloadObject","itemsToDownload","filterFunction","fileName","multiObjList","wrap","_context","prev","next","rejectWithValue","object","identityDownload","Date","getTime","Math","random","ID","makeid","downloadCall","download","version_id","size","progress","updateProgress","instanceID","completeObject","msg","failObject","cancelObjectInList","storeCallForObjectWithID","setNewObject","done","percentage","waitingForFile","failed","cancelled","errorMessage","selectedObjects","currValue","records","getClientOS","toLowerCase","setDownloadRenameModal","abrupt","DateTime","now","toFormat","dwList","bi","isDeleted","delete_flag","push","log","downloadSelectedAsZip","stop","_x","_x2","apply","openPreview","_ref4","_callee2","_","_ref3","fileObject","findFunction","_context2","setSelectedPreview","setPreviewOpen","_x3","_x4","openShare","_ref6","_callee3","_ref5","_context3","setShareFileModalOpen","_x5","_x6","openAnonymousAccess","_ref8","_callee4","_ref7","_context4","endsWith","setAnonymousAccessOpen","_x7","_x8","_ref$forceDisable","forceDisable","uploadFileFunction","uploadFolderFunction","_ref$overrideStyles","overrideStyles","anchorEl","setAnchorEl","uploadOptionsOpen","uploadOptionsSetOpen","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","TooltipWrapper","event","currentTarget","UploadIcon","DropdownSelector","UploadFolderIcon","selectedOption","onSelect","nValue","hideTriggerAction","open","anchorOrigin","useAnchorWidth","closePanel","_ref$className","borderColor","borderWidth","borderStyle","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","transitionDuration","overflowX","overflowY","position","opacity","marginLeft","minWidth","borderLeftWidth","ClosePanelIcon","right","top","padding","backgroundColor","_object$name","isWinOs","setLongFileOpen","strings","minHeight","overflow","textOverflow","replaceUnicodeChar","extensionToIcon","FileVideoIcon","extensions","FileMusicIcon","FilePdfIcon","FilePptIcon","FileXlsIcon","FileLockIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileTxtIcon","FileZipIcon","FileBookIcon","FileImageIcon","displayFileIconName","element","returnOnlyIcon","elementString","FileNonType","FolderBrowserIcon","lowercaseElement","_i","_extensionToIcon","_step","etc","_iterator","_createForOfIteratorHelper","s","n","ext","err","f","FileMissingIcon","splitItem","IconWithLabel","metaData","metaKeys","renderItem","Array","isArray","itemRendererFn","maxHeight","months","days","from","num","currentYear","getFullYear","years","numYear","forwardRef","ref","_ref$disableOptions","disableOptions","_ref$tooltip","onDateChange","borderBottom","_ref$value","useImperativeHandle","resetDate","month","setMonth","day","setDay","_useState5","_useState6","year","setYear","valueSplit","parseInt","_validDate","currentDate","parse","isNaN","parsedMonth","parsedDay","monthForString","dayForString","parsedDate","toISOString","dateString","validDate","_validDate2","isValid","isDateDisabled","monthForDropDown","daysForDrop","yearsForDrop","gap","InputLabel","htmlFor","placement","HelpIcon","newValue","closeModalAndRefresh","objectInfo","retentionConfig","statusEnabled","setStatusEnabled","setType","date","setDate","_useState7","_useState8","isDateValid","setIsDateValid","_useState9","_useState10","isSaving","setIsSaving","_useState11","_useState12","alreadyConfigured","setAlreadyConfigured","retention_mode","mode","ObjectRetentionMode","Governance","retention_until_date","valueDate","getMonth","getDate","dateElement","useRef","resetForm","current","showSwitcher","noValidate","autoComplete","onSubmit","preventDefault","Switch","checked","indicatorLabels","RadioGroup","currentValue","selectorOptions","Compliance","DateSelector","selectedObject","versionId","expireDate","buckets","putObjectRetention","expires","setModalErrorSnackMessage","addRetention","deleteObjectRetention","disableRetention","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","versioningInfo","_ref$selectedVersion","selectedVersion","_useApi","useApi","detailedError","_useApi2","deleteLoading","invokeDeleteApi","deleteVersions","setDeleteVersions","bypassGovernance","setBypassGovernance","canBypass","S3_BYPASS_GOVERNANCE_RETENTION","ConfirmDialog","confirmText","isOpen","ConfirmDeleteIcon","isLoading","onConfirm","recursive","decodeURLString","confirmationContent","description","actualInfo","legalHoldEnabled","setLegalHoldEnabled","get","putObjectLegalHold","ObjectLegalHoldStatus","Enabled","Disabled","DeleteTag","b","theme","_actualInfo$name","onCloseAndUpdate","distributedSetup","selDistSet","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","deleteEnabled","setDeleteEnabled","deleteKey","setDeleteKey","deleteLabel","setDeleteLabel","currentTags","tags","currTagKeys","allPathData","currentItem","pop","tagsFor","plural","iconColor","DisabledIcon","EditTagIcon","container","cleanObject","_objectSpread","verID","putObjectTags","SecureComponent","S3_GET_OBJECT_TAGGING","S3_GET_ACTIONS","resource","flexFlow","tagKey","tag","S3_DELETE_OBJECT_TAGGING","errorProps","deleteIcon","onDelete","Tag","onDeleteTag","S3_PUT_OBJECT_TAGGING","SectionTitle","AddNewTagIcon","separator","newTag","newTagList","closeInspectModalAndRefresh","inspectOpen","inspectPath","volumeName","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","makeRequest","url","fetch","method","sent","performInspect","file","volume","urlOfInspectApi","resErr","blob","filename","decryptKey","ok","json","message","code","headers","getCookieValue","performDownload","InspectMenuIcon","deleteCookie","PasswordKeyIcon","KeyRevealer","closeModal","newFileName","setNewFileName","acceptLongName","setAcceptLongName","EditIcon","doDownload","emptyFile","is_latest","last_modified","legal_hold_status","locking","onClosePanel","loadingObjectInfo","shareFileModalOpen","retentionModalOpen","setRetentionModalOpen","tagModalOpen","setTagModalOpen","legalholdOpen","setLegalholdOpen","inspectModalOpen","setInspectModalOpen","setActualInfo","_useState13","_useState14","allInfoElements","setAllInfoElements","_useState15","_useState16","objectToShare","setObjectToShare","_useState17","_useState18","versions","setVersions","_useState19","_useState20","setDeleteOpen","_useState21","_useState22","previewOpen","_useState23","_useState24","totalVersionsSize","setTotalVersionsSize","_useState25","_useState26","longFileOpen","_useState27","_useState28","setMetaData","_useState29","_useState30","loadMetadata","setLoadingMetadata","objectNameArray","infoElement","el","is_delete_marker","listObjects","with_versions","result","data","objects","tVersionSize","resInfo","setLoadingObjectInfo","getObjectMetadata","metadata","tagKeys","loaderForContainer","textAlign","Loader","objectResources","canSetLegalHold","S3_PUT_OBJECT_LEGAL_HOLD","canSetTags","canChangeRetention","S3_GET_OBJECT_RETENTION","S3_PUT_OBJECT_RETENTION","canInspect","ADMIN_INSPECT_DATA","canChangeVersioning","S3_GET_BUCKET_VERSIONING","S3_PUT_BUCKET_VERSIONING","S3_GET_OBJECT_VERSION","canGetObject","S3_GET_OBJECT","canDelete","S3_DELETE_OBJECT","objectType","previewObjectType","multiActionButtons","action","DownloadIcon","ShareIcon","PreviewIcon","LegalHoldIcon","RetentionIcon","TagsIcon","VersionsIcon","ShareFile","dataObject","SetRetention","updateInfo","DeleteObject","closeAndReload","setLoadingVersions","setSelectedVersion","SetLegalHoldModal","reload","PreviewFileModal","content_type","onClosePreview","TagsModal","reloadObjectData","InspectObject","RenameLongFileName","textTransform","ActionsList","items","DeleteIcon","iconLocation","fullWidth","SimpleHeader","ObjectInfoIcon","overflowWrap","niceBytes","niceBytesInt","lastModified","currentTime","modifiedTime","difTime","formatTime","niceDaysInt","calculateLastModifyTime","etag","S3_GET_OBJECT_LEGAL_HOLD","MetadataIcon","ObjectMetaData","versionToRestore","objectPath","restoreOpen","restoreLoading","setRestoreLoading","RecoverIcon","putObjectRestore","restoreLocalObjectList","confirmButtonProps","bgColor","FileVersionStyled","content","left","borderBottomColor","maxWidth","versionInfo","isSelected","checkable","isChecked","onCheck","onShare","onDownload","onRestore","onPreview","globalClick","key","disableButtons","versionItemButtons","pill","fromISO","md","Checkbox","stopPropagation","SpecificVersionPill","button","IconButton","setDeleteLoading","typeConfirm","setTypeConfirm","deleteObject","non_current_versions","bypass","selectedVersions","selectedObjectsRequest","versionID","deleteMultipleObjects","all_versions","searchVersions","loadingVersions","restoreVersionOpen","setRestoreVersionOpen","restoreVersion","setRestoreVersion","sortValue","setSortValue","deleteNonCurrentOpen","setDeleteNonCurrentOpen","selectEnabled","setSelectEnabled","selectedItems","setSelectedItems","delSelectedVOpen","setDelSelectedVOpen","decodedInternalPaths","filteredPrefixes","onShareItem","onPreviewItem","onRestoreItem","onDownloadItem","onGlobalClick","filteredRecords","version","totalSpace","sort","a","dateA","dateB","onCheckVersion","filteredItems","cloneState","RestoreFileVersion","DeleteNonCurrent","reloadAfterDelete","DeleteSelectedVersions","reloadOnComplete","ProgressBar","BrowserBreadcrumbs","ScreenTitle","subTitle","actions","SelectMultipleIcon","DeleteNonCurrentIcon","noLabelMinWidth","bottomBorder","flexGrow","List","containerStyle","rowCount","rowHeight","rowRenderer","isScrolling","isVisible","versOrd","FileVersionItem","displayParsedDate","currTime","objectTime","hasSame","displayNiceBytes","String","listModeColumns","elementKey","renderFunction","enableSort","renderFullObject","rewindModeColumns","params","useParams","sortDirection","setSortDirection","currentSortField","setCurrentSortField","detailsOpen","objectDetailsOpen","requestInProgress","features","selFeatures","obOnly","searchObjects","connectionError","displayListObjects","S3_LIST_BUCKET","S3_ALL_LIST_BUCKET","sortASC","sortListObjects","payload","reverse","tableActions","idElement","newPath","setSelectedObjects","setObjectDetailsView","setSelectedObjectView","sendOnlyId","customPaperHeight","DataTable","itemActions","columns","entityName","idField","targetD","elements","customEmptyMessage","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","sortBy","setReloadObjectsList","onSelectAll","rowStyle","_payload$index","noBackground","SearchBox","setSearchObjects","DeleteMultipleObjects","RewindEnable","baseDnDStyle","outline","activeDnDStyle","acceptDnDStyle","_downloadRenameModal$","location","useLocation","bucketToRewind","showDeleted","selectedInternalPaths","simplePath","versioningConfig","lockingEnabled","downloadRenameModal","selectedPreview","anonymousAccessOpen","loadingBucket","selBucketDetailsLoading","bucketInfo","selBucketDetailsInfo","deleteMultipleOpen","setDeleteMultipleOpen","rewindSelect","setRewindSelect","iniLoad","setIniLoad","canShareFile","setCanShareFile","canPreviewFile","setCanPreviewFile","quota","setQuota","isMetaDataLoaded","setIsMetaDataLoaded","isVersioningApplied","pathSegment","pathname","pageTitle","currentPath","i","fileUpload","folderUpload","pathAsResourceInPolicy","allowedFileExtensions","cv","extension","Set","getPolicyAllowedFileExtensions","canDownload","canUpload","canSetAnonymousAccess","S3_GET_BUCKET_POLICY","S3_PUT_BUCKET_POLICY","fetchMetadata","useCallback","encodedPath","resetRewind","setAttribute","getBucketQuota","quotaVals","detailedMessage","setBucketDetailsLoad","setBucketInfo","getBucketRetentionConfig","setRetentionConfig","handleUploadButton","files","newFiles","uploadObject","folderPath","pathPrefix","uploadPromise","Promise","resolve","reject","uploadUrl","blobFile","Blob","filePath","fileWebkitRelativePath","relativeFolderPath","finalFolderPath","pathClean","startsWith","identity","xhr","XMLHttpRequest","setRequestHeader","areMultipleFiles","errorMessages","withCredentials","onload","removeTrace","response","JSON","upload","addEventListener","floor","loaded","total","onerror","onloadend","onabort","formData","FormData","append","storeFormDataWithID","uploadFilePromises","openList","allSettled","results","errors","totalFiles","successUploadedFiles","onDrop","acceptedFiles","_console","_console2","newFolderPath","allowedFiles","fileExtn","_useDropzone","useDropzone","noClick","getRootProps","getInputProps","isDragActive","isDragAccept","dndStyles","useMemo","forceRefresh","splitURLS","URLItem","createdTime","creation_date","downloadToolTip","AccessRuleIcon","refresh","versioning","AddAccessRule","PageLayout","paddingBottom","FilterObjectsSB","BucketsIcon","Badge","dotOnly","invisible","HistoryIcon","RefreshIcon","resetMessages","multiple","accept","UploadFilesButton","closeMenu","click","borderTop","VersionsNavigator","setShowDeletedObjects","ListObjectsTable","DetailsListPanel","ObjectDetailPanel","configureBucketAllowed","S3_GET_BUCKET_ENCRYPTION_CONFIGURATION","S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION","S3_DELETE_BUCKET","S3_GET_BUCKET_NOTIFICATIONS","S3_PUT_BUCKET_NOTIFICATIONS","S3_GET_REPLICATION_CONFIGURATION","S3_PUT_REPLICATION_CONFIGURATION","S3_GET_LIFECYCLE_CONFIGURATION","S3_PUT_LIFECYCLE_CONFIGURATION","ADMIN_GET_BUCKET_QUOTA","ADMIN_SET_BUCKET_QUOTA","S3_PUT_BUCKET_TAGGING","S3_GET_BUCKET_TAGGING","S3_LIST_BUCKET_VERSIONS","S3_GET_BUCKET_POLICY_STATUS","S3_DELETE_BUCKET_POLICY","searchBar","setSearchVersions","setHelpName","AutoColorIcon","ObjectManagerButton","PageHeaderWrapper","BackLink","IAM_PAGES","OBJECT_BROWSER_VIEW","IAM_PERMISSIONS","IAM_ROLES","BUCKET_ADMIN","SettingsIcon","HelpMenu","middleComponent","loadingVersioning","rewindDate","dateToRewind","loadingLocking","reloadObjectsList","initWSRequest","rewindMode","pathLoad","forceLoad","searchPath","setRequestInProgress","decodedIPaths","setLoadingVersioning","setLoadingLocking","getBucketVersioning","setIsVersioned","getBucketObjectLockingStatus","setLockingEnabled","object_locking_enabled","OBHeader","ListObjects","initialDate","maxDays","entity","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","setValidDate","dateSelected","setDateSelected","hours","minutes","fromJSDate","plus","calculateNewTime","formattedDate","valid","extraStyles","paddingLeft","min","max","LinkIcon","shareURL","setShareURL","isLoadingVersion","setIsLoadingVersion","isLoadingFile","setIsLoadingFile","selectedDate","setSelectedDate","dateValid","setDateValid","setVersionID","latestVersion","elem","slDate","currDate","diffDate","ceil","shareObject","DaysSelector","newDate","ReadBox","actionButton","setModalSnackMessage","_ref$isFullscreen","isFullscreen","loading","setLoading","basename","document","baseURI","replace","window","origin","iframeLoaded","flex","autoPlay","controls","muted","playsInline","onPlay","src","alt","onLoad","InformativeMessage","allowTransparency","wideLimit","ObjectPreviewIcon","PreviewFileContent","WrappedComponent","fallback","props","Suspense","shown","setShown","sm","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2631.e93b9518.chunk.js b/portal-ui/build/static/js/2631.e93b9518.chunk.js deleted file mode 100644 index 0e13709a0..000000000 --- a/portal-ui/build/static/js/2631.e93b9518.chunk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 2631.e93b9518.chunk.js.LICENSE.txt */ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2631],{36612:function(e,t,n){n.d(t,{Z:function(){return l}});var r=n(29439),o=n(43144),i=n(15671),a=n(99779),s={dayOfMonth:"d",fullDate:"DD",fullDateWithWeekday:"DDDD",fullDateTime:"ff",fullDateTime12h:"DD, hh:mm a",fullDateTime24h:"DD, T",fullTime:"t",fullTime12h:"hh:mm a",fullTime24h:"HH:mm",hours12h:"hh",hours24h:"HH",keyboardDate:"D",keyboardDateTime:"D t",keyboardDateTime12h:"D hh:mm a",keyboardDateTime24h:"D T",minutes:"mm",seconds:"ss",month:"LLLL",monthAndDate:"MMMM d",monthAndYear:"LLLL yyyy",monthShort:"MMM",weekday:"cccc",weekdayShort:"ccc",normalDate:"d MMMM",normalDateWithWeekday:"EEE, MMM d",shortDate:"MMM d",year:"yyyy"},l=(0,o.Z)((function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=n.locale,l=n.formats;(0,i.Z)(this,e),this.lib="luxon",this.date=function(e){return"undefined"===typeof e?a.ou.local():null===e?null:"string"===typeof e?a.ou.fromJSDate(new Date(e),{locale:t.locale}):a.ou.isDateTime(e)?e:a.ou.fromJSDate(e,{locale:t.locale})},this.toJsDate=function(e){return e.toJSDate()},this.parseISO=function(e){return a.ou.fromISO(e)},this.toISO=function(e){return e.toISO({format:"extended"})},this.parse=function(e,n){return""===e?null:a.ou.fromFormat(e,n,{locale:t.locale})},this.is12HourCycleInCurrentLocale=function(){var e,n;return"undefined"===typeof Intl||"undefined"===typeof Intl.DateTimeFormat||Boolean(null===(n=null===(e=new Intl.DateTimeFormat(t.locale,{hour:"numeric"}))||void 0===e?void 0:e.resolvedOptions())||void 0===n?void 0:n.hour12)},this.getFormatHelperText=function(e){return""},this.getCurrentLocaleCode=function(){return t.locale||a.Zr.defaultLocale},this.addSeconds=function(e,t){return e.plus({seconds:t})},this.addMinutes=function(e,t){return e.plus({minutes:t})},this.addHours=function(e,t){return e.plus({hours:t})},this.addDays=function(e,t){return e.plus({days:t})},this.addWeeks=function(e,t){return e.plus({weeks:t})},this.addMonths=function(e,t){return e.plus({months:t})},this.addYears=function(e,t){return e.plus({years:t})},this.isValid=function(e){var n,r;return a.ou.isDateTime(e)?e.isValid:null!==e&&(null!==(r=null===(n=t.date(e))||void 0===n?void 0:n.isValid)&&void 0!==r&&r)},this.isEqual=function(e,n){var r,o;return null===e&&null===n||null!==e&&null!==n&&(!!t.date(n)&&(null!==(o=null===(r=t.date(e))||void 0===r?void 0:r.equals(t.date(n)))&&void 0!==o&&o))},this.isSameDay=function(e,t){return e.hasSame(t,"day")},this.isSameMonth=function(e,t){return e.hasSame(t,"month")},this.isSameYear=function(e,t){return e.hasSame(t,"year")},this.isSameHour=function(e,t){return e.hasSame(t,"hour")},this.isAfter=function(e,t){return e>t},this.isBefore=function(e,t){return e0},this.isBeforeMonth=function(e,t){return e.diff(t.startOf("month"),"months").toObject().months<0},this.isAfterMonth=function(e,t){return e.diff(t.startOf("month"),"months").toObject().months>0},this.isBeforeYear=function(e,t){return e.diff(t.startOf("year"),"years").toObject().years<0},this.isAfterYear=function(e,t){return e.diff(t.endOf("year"),"years").toObject().years>0},this.getDiff=function(e,t,n){return"string"===typeof t&&(t=a.ou.fromJSDate(new Date(t))),t.isValid?n?Math.floor(e.diff(t).as(n)):e.diff(t).as("millisecond"):0},this.startOfDay=function(e){return e.startOf("day")},this.endOfDay=function(e){return e.endOf("day")},this.format=function(e,n){return t.formatByString(e,t.formats[n])},this.formatByString=function(e,n){return e.setLocale(t.locale).toFormat(n)},this.formatNumber=function(e){return e},this.getHours=function(e){return e.get("hour")},this.setHours=function(e,t){return e.set({hour:t})},this.getMinutes=function(e){return e.get("minute")},this.setMinutes=function(e,t){return e.set({minute:t})},this.getSeconds=function(e){return e.get("second")},this.setSeconds=function(e,t){return e.set({second:t})},this.getMonth=function(e){return e.get("month")-1},this.getDaysInMonth=function(e){return e.daysInMonth},this.setMonth=function(e,t){return e.set({month:t+1})},this.getYear=function(e){return e.get("year")},this.setYear=function(e,t){return e.set({year:t})},this.getDate=function(e){return e.get("day")},this.setDate=function(e,t){return e.set({day:t})},this.mergeDateAndTime=function(e,t){return e.set({second:t.second,hour:t.hour,minute:t.minute})},this.startOfYear=function(e){return e.startOf("year")},this.endOfYear=function(e){return e.endOf("year")},this.startOfMonth=function(e){return e.startOf("month")},this.endOfMonth=function(e){return e.endOf("month")},this.startOfWeek=function(e){return e.startOf("week")},this.endOfWeek=function(e){return e.endOf("week")},this.getNextMonth=function(e){return e.plus({months:1})},this.getPreviousMonth=function(e){return e.minus({months:1})},this.getMonthArray=function(e){for(var n=[e.startOf("year")];n.length<12;){var r=n[n.length-1];n.push(t.getNextMonth(r))}return n},this.getWeekdays=function(){return a.kI.weekdaysFormat("short",{locale:t.locale})},this.getWeekArray=function(e){var t=e.endOf("month").endOf("week").diff(e.startOf("month").startOf("week"),"days").toObject().days,n=[];return new Array(Math.round(t)).fill(0).map((function(e,t){return t})).map((function(t){return e.startOf("month").startOf("week").plus({days:t})})).forEach((function(e,t){0===t||t%7===0&&t>6?n.push([e]):n[n.length-1].push(e)})),n},this.getYearRange=function(e,t){for(var n=e.startOf("year"),r=t.endOf("year"),o=n,i=[];o0){var r,o,i=Boolean((null==(r=M.current)?void 0:r.shiftKey)&&"Tab"===(null==(o=M.current)?void 0:o.key)),a=n[0],s=n[n.length-1];"string"!==typeof a&&"string"!==typeof s&&(i?s.focus():a.focus())}else t.focus()}}}else y.current=!1};e.addEventListener("focusin",n),e.addEventListener("keydown",t,!0);var r=setInterval((function(){e.activeElement&&"BODY"===e.activeElement.tagName&&n()}),50);return function(){clearInterval(r),e.removeEventListener("focusin",n),e.removeEventListener("keydown",t,!0)}}}),[s,d,f,b,g,v]);var R=function(e){null===w.current&&(w.current=e.relatedTarget),C.current=!0};return(0,a.jsxs)(r.Fragment,{children:[(0,a.jsx)("div",{tabIndex:g?0:-1,onFocus:R,ref:x,"data-testid":"sentinelStart"}),r.cloneElement(t,{ref:P,onFocus:function(e){null===w.current&&(w.current=e.relatedTarget),C.current=!0,S.current=e.target;var n=t.props.onFocus;n&&n(e)}}),(0,a.jsx)("div",{tabIndex:g?0:-1,onFocus:R,ref:Z,"data-testid":"sentinelEnd"})]})}},96174:function(e,t,n){n.d(t,{h:function(){return c}});var r=n(29439),o=n(72791),i=n(54164),a=n(6117),s=n(62876),l=n(62971),u=n(80184);var c=o.forwardRef((function(e,t){var n=e.children,c=e.container,d=e.disablePortal,p=void 0!==d&&d,f=o.useState(null),h=(0,r.Z)(f,2),v=h[0],m=h[1],b=(0,a.Z)(o.isValidElement(n)?n.ref:null,t);if((0,s.Z)((function(){p||m(function(e){return"function"===typeof e?e():e}(c)||document.body)}),[c,p]),(0,s.Z)((function(){if(v&&!p)return(0,l.Z)(t,v),function(){(0,l.Z)(t,null)}}),[t,v,p]),p){if(o.isValidElement(n)){var g={ref:b};return o.cloneElement(n,g)}return(0,u.jsx)(o.Fragment,{children:n})}return(0,u.jsx)(o.Fragment,{children:v?i.createPortal(n,v):v})}))},22086:function(e,t,n){function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(void 0===e)return{};var n={};return Object.keys(e).filter((function(n){return n.match(/^on[A-Z]/)&&"function"===typeof e[n]&&!t.includes(n)})).forEach((function(t){n[t]=e[t]})),n}n.d(t,{_:function(){return r}})},20627:function(e,t,n){function r(e){return"string"===typeof e}n.d(t,{X:function(){return r}})},69543:function(e,t,n){n.d(t,{y:function(){return d}});var r=n(87462),o=n(63366),i=n(6117),a=n(20627);var s=n(63733),l=n(22086);function u(e){if(void 0===e)return{};var t={};return Object.keys(e).filter((function(t){return!(t.match(/^on[A-Z]/)&&"function"===typeof e[t])})).forEach((function(n){t[n]=e[n]})),t}var c=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function d(e){var t,n=e.elementType,d=e.externalSlotProps,p=e.ownerState,f=e.skipResolvingSlotProps,h=void 0!==f&&f,v=(0,o.Z)(e,c),m=h?{}:function(e,t,n){return"function"===typeof e?e(t,n):e}(d,p),b=function(e){var t=e.getSlotProps,n=e.additionalProps,o=e.externalSlotProps,i=e.externalForwardedProps,a=e.className;if(!t){var c=(0,s.Z)(null==i?void 0:i.className,null==o?void 0:o.className,a,null==n?void 0:n.className),d=(0,r.Z)({},null==n?void 0:n.style,null==i?void 0:i.style,null==o?void 0:o.style),p=(0,r.Z)({},n,i,o);return c.length>0&&(p.className=c),Object.keys(d).length>0&&(p.style=d),{props:p,internalRef:void 0}}var f=(0,l._)((0,r.Z)({},i,o)),h=u(o),v=u(i),m=t(f),b=(0,s.Z)(null==m?void 0:m.className,null==n?void 0:n.className,a,null==i?void 0:i.className,null==o?void 0:o.className),g=(0,r.Z)({},null==m?void 0:m.style,null==n?void 0:n.style,null==i?void 0:i.style,null==o?void 0:o.style),y=(0,r.Z)({},m,n,v,h);return b.length>0&&(y.className=b),Object.keys(g).length>0&&(y.style=g),{props:y,internalRef:m.ref}}((0,r.Z)({},v,{externalSlotProps:m})),g=b.props,y=b.internalRef,x=(0,i.Z)(y,null==m?void 0:m.ref,null==(t=e.additionalProps)?void 0:t.ref),Z=function(e,t,n){return void 0===e||(0,a.X)(e)?t:(0,r.Z)({},t,{ownerState:(0,r.Z)({},t.ownerState,n)})}(n,(0,r.Z)({},g,{ref:x}),p);return Z}},27197:function(e,t,n){var r=n(64836);t.Z=void 0;var o=r(n(45649)),i=n(80184),a=(0,o.default)([(0,i.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"},"0"),(0,i.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"Schedule");t.Z=a},45649:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(54421)},52739:function(e,t,n){n.d(t,{Z:function(){return b}});var r=n(63366),o=n(87462),i=n(72791),a=n(63733),s=n(94419),l=n(40724),u=n(93736),c=n(60627),d=n(75878),p=n(21217);function f(e){return(0,p.Z)("MuiBackdrop",e)}(0,d.Z)("MuiBackdrop",["root","invisible"]);var h=n(80184),v=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],m=(0,l.ZP)("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.invisible&&t.invisible]}})((function(e){var t=e.ownerState;return(0,o.Z)({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},t.invisible&&{backgroundColor:"transparent"})})),b=i.forwardRef((function(e,t){var n,i,l,d=(0,u.Z)({props:e,name:"MuiBackdrop"}),p=d.children,b=d.className,g=d.component,y=void 0===g?"div":g,x=d.components,Z=void 0===x?{}:x,w=d.componentsProps,S=void 0===w?{}:w,C=d.invisible,k=void 0!==C&&C,P=d.open,M=d.slotProps,R=void 0===M?{}:M,E=d.slots,T=void 0===E?{}:E,D=d.TransitionComponent,O=void 0===D?c.Z:D,j=d.transitionDuration,N=(0,r.Z)(d,v),I=(0,o.Z)({},d,{component:y,invisible:k}),A=function(e){var t=e.classes,n={root:["root",e.invisible&&"invisible"]};return(0,s.Z)(n,f,t)}(I),F=null!=(n=R.root)?n:S.root;return(0,h.jsx)(O,(0,o.Z)({in:P,timeout:j},N,{children:(0,h.jsx)(m,(0,o.Z)({"aria-hidden":!0},F,{as:null!=(i=null!=(l=T.root)?l:Z.Root)?i:y,className:(0,a.Z)(A.root,b,null==F?void 0:F.className),ownerState:(0,o.Z)({},I,null==F?void 0:F.ownerState),classes:A,ref:t,children:p}))}))}))},60627:function(e,t,n){var r=n(87462),o=n(63366),i=n(72791),a=n(18875),s=n(13967),l=n(4999),u=n(42071),c=n(80184),d=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],p={entering:{opacity:1},entered:{opacity:1}},f=i.forwardRef((function(e,t){var n=(0,s.Z)(),f={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},h=e.addEndListener,v=e.appear,m=void 0===v||v,b=e.children,g=e.easing,y=e.in,x=e.onEnter,Z=e.onEntered,w=e.onEntering,S=e.onExit,C=e.onExited,k=e.onExiting,P=e.style,M=e.timeout,R=void 0===M?f:M,E=e.TransitionComponent,T=void 0===E?a.ZP:E,D=(0,o.Z)(e,d),O=i.useRef(null),j=(0,u.Z)(O,b.ref,t),N=function(e){return function(t){if(e){var n=O.current;void 0===t?e(n):e(n,t)}}},I=N(w),A=N((function(e,t){(0,l.n)(e);var r=(0,l.C)({style:P,timeout:R,easing:g},{mode:"enter"});e.style.webkitTransition=n.transitions.create("opacity",r),e.style.transition=n.transitions.create("opacity",r),x&&x(e,t)})),F=N(Z),B=N(k),L=N((function(e){var t=(0,l.C)({style:P,timeout:R,easing:g},{mode:"exit"});e.style.webkitTransition=n.transitions.create("opacity",t),e.style.transition=n.transitions.create("opacity",t),S&&S(e)})),z=N(C);return(0,c.jsx)(T,(0,r.Z)({appear:m,in:y,nodeRef:O,onEnter:A,onEntered:F,onEntering:I,onExit:L,onExited:z,onExiting:B,addEndListener:function(e){h&&h(O.current,e)},timeout:R},D,{children:function(e,t){return i.cloneElement(b,(0,r.Z)({style:(0,r.Z)({opacity:0,visibility:"exited"!==e||y?void 0:"hidden"},p[e],P,b.props.style),ref:j},t))}}))}));t.Z=f},93840:function(e,t,n){var r=n(72791).createContext(void 0);t.Z=r},52930:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(72791),o=n(93840);function i(){return r.useContext(o.Z)}},13208:function(e,t,n){var r=n(87462),o=n(63366),i=n(72791),a=n(18875),s=n(13967),l=n(4999),u=n(42071),c=n(80184),d=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function p(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var f={entering:{opacity:1,transform:p(1)},entered:{opacity:1,transform:"none"}},h="undefined"!==typeof navigator&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),v=i.forwardRef((function(e,t){var n=e.addEndListener,v=e.appear,m=void 0===v||v,b=e.children,g=e.easing,y=e.in,x=e.onEnter,Z=e.onEntered,w=e.onEntering,S=e.onExit,C=e.onExited,k=e.onExiting,P=e.style,M=e.timeout,R=void 0===M?"auto":M,E=e.TransitionComponent,T=void 0===E?a.ZP:E,D=(0,o.Z)(e,d),O=i.useRef(),j=i.useRef(),N=(0,s.Z)(),I=i.useRef(null),A=(0,u.Z)(I,b.ref,t),F=function(e){return function(t){if(e){var n=I.current;void 0===t?e(n):e(n,t)}}},B=F(w),L=F((function(e,t){(0,l.n)(e);var n,r=(0,l.C)({style:P,timeout:R,easing:g},{mode:"enter"}),o=r.duration,i=r.delay,a=r.easing;"auto"===R?(n=N.transitions.getAutoHeightDuration(e.clientHeight),j.current=n):n=o,e.style.transition=[N.transitions.create("opacity",{duration:n,delay:i}),N.transitions.create("transform",{duration:h?n:.666*n,delay:i,easing:a})].join(","),x&&x(e,t)})),z=F(Z),W=F(k),V=F((function(e){var t,n=(0,l.C)({style:P,timeout:R,easing:g},{mode:"exit"}),r=n.duration,o=n.delay,i=n.easing;"auto"===R?(t=N.transitions.getAutoHeightDuration(e.clientHeight),j.current=t):t=r,e.style.transition=[N.transitions.create("opacity",{duration:t,delay:o}),N.transitions.create("transform",{duration:h?t:.666*t,delay:h?o:o||.333*t,easing:i})].join(","),e.style.opacity=0,e.style.transform=p(.75),S&&S(e)})),H=F(C);return i.useEffect((function(){return function(){clearTimeout(O.current)}}),[]),(0,c.jsx)(T,(0,r.Z)({appear:m,in:y,nodeRef:I,onEnter:L,onEntered:z,onEntering:B,onExit:V,onExited:H,onExiting:W,addEndListener:function(e){"auto"===R&&(O.current=setTimeout(e,j.current||0)),n&&n(I.current,e)},timeout:"auto"===R?null:R},D,{children:function(e,t){return i.cloneElement(b,(0,r.Z)({style:(0,r.Z)({opacity:0,transform:p(.75),visibility:"exited"!==e||y?void 0:"hidden"},f[e],P,b.props.style),ref:A},t))}}))}));v.muiSupportAuto=!0,t.Z=v},63466:function(e,t,n){n.d(t,{Z:function(){return S}});var r=n(4942),o=n(63366),i=n(87462),a=n(72791),s=n(63733),l=n(94419),u=n(14036),c=n(20890),d=n(93840),p=n(52930),f=n(40724),h=n(75878),v=n(21217);function m(e){return(0,v.Z)("MuiInputAdornment",e)}var b,g=(0,h.Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),y=n(93736),x=n(80184),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],w=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,u.Z)(n.position))],!0===n.disablePointerEvents&&t.disablePointerEvents,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active},"filled"===n.variant&&(0,r.Z)({},"&.".concat(g.positionStart,"&:not(.").concat(g.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),S=a.forwardRef((function(e,t){var n=(0,y.Z)({props:e,name:"MuiInputAdornment"}),r=n.children,f=n.className,h=n.component,v=void 0===h?"div":h,g=n.disablePointerEvents,S=void 0!==g&&g,C=n.disableTypography,k=void 0!==C&&C,P=n.position,M=n.variant,R=(0,o.Z)(n,Z),E=(0,p.Z)()||{},T=M;M&&E.variant,E&&!T&&(T=E.variant);var D=(0,i.Z)({},n,{hiddenLabel:E.hiddenLabel,size:E.size,disablePointerEvents:S,position:P,variant:T}),O=function(e){var t=e.classes,n=e.disablePointerEvents,r=e.hiddenLabel,o=e.position,i=e.size,a=e.variant,s={root:["root",n&&"disablePointerEvents",o&&"position".concat((0,u.Z)(o)),a,r&&"hiddenLabel",i&&"size".concat((0,u.Z)(i))]};return(0,l.Z)(s,m,t)}(D);return(0,x.jsx)(d.Z.Provider,{value:null,children:(0,x.jsx)(w,(0,i.Z)({as:v,ownerState:D,className:(0,s.Z)(O.root,f),ref:t},R,{children:"string"!==typeof r||k?(0,x.jsxs)(a.Fragment,{children:["start"===P?b||(b=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,r]}):(0,x.jsx)(c.Z,{color:"text.secondary",children:r})}))})}))},88447:function(e,t,n){n.d(t,{Z:function(){return z}});var r=n(63366),o=n(87462),i=n(72791),a=n(63733),s=n(69543),l=n(29439),u=n(6117),c=n(84913),d=n(97054),p=n(78949),f=n(22086),h=n(15671),v=n(43144),m=n(93433),b=n(65202),g=n(57137);function y(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function x(e){return parseInt((0,b.Z)(e).getComputedStyle(e).paddingRight,10)||0}function Z(e,t,n,r,o){var i=[t,n].concat((0,m.Z)(r));[].forEach.call(e.children,(function(e){var t=-1===i.indexOf(e),n=!function(e){var t=-1!==["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName),n="INPUT"===e.tagName&&"hidden"===e.getAttribute("type");return t||n}(e);t&&n&&y(e,o)}))}function w(e,t){var n=-1;return e.some((function(e,r){return!!t(e)&&(n=r,!0)})),n}function S(e,t){var n=[],r=e.container;if(!t.disableScrollLock){if(function(e){var t=(0,c.Z)(e);return t.body===e?(0,b.Z)(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}(r)){var o=(0,g.Z)((0,c.Z)(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight="".concat(x(r)+o,"px");var i=(0,c.Z)(r).querySelectorAll(".mui-fixed");[].forEach.call(i,(function(e){n.push({value:e.style.paddingRight,property:"padding-right",el:e}),e.style.paddingRight="".concat(x(e)+o,"px")}))}var a;if(r.parentNode instanceof DocumentFragment)a=(0,c.Z)(r).body;else{var s=r.parentElement,l=(0,b.Z)(r);a="HTML"===(null==s?void 0:s.nodeName)&&"scroll"===l.getComputedStyle(s).overflowY?s:r}n.push({value:a.style.overflow,property:"overflow",el:a},{value:a.style.overflowX,property:"overflow-x",el:a},{value:a.style.overflowY,property:"overflow-y",el:a}),a.style.overflow="hidden"}return function(){n.forEach((function(e){var t=e.value,n=e.el,r=e.property;t?n.style.setProperty(r,t):n.style.removeProperty(r)}))}}var C=function(){function e(){(0,h.Z)(this,e),this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}return(0,v.Z)(e,[{key:"add",value:function(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&y(e.modalRef,!1);var r=function(e){var t=[];return[].forEach.call(e.children,(function(e){"true"===e.getAttribute("aria-hidden")&&t.push(e)})),t}(t);Z(t,e.mount,e.modalRef,r,!0);var o=w(this.containers,(function(e){return e.container===t}));return-1!==o?(this.containers[o].modals.push(e),n):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:r}),n)}},{key:"mount",value:function(e,t){var n=w(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),r=this.containers[n];r.restore||(r.restore=S(r,t))}},{key:"remove",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.modals.indexOf(e);if(-1===n)return n;var r=w(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),o=this.containers[r];if(o.modals.splice(o.modals.indexOf(e),1),this.modals.splice(n,1),0===o.modals.length)o.restore&&o.restore(),e.modalRef&&y(e.modalRef,t),Z(o.container,e.mount,e.modalRef,o.hiddenSiblings,!1),this.containers.splice(r,1);else{var i=o.modals[o.modals.length-1];i.modalRef&&y(i.modalRef,!1)}return n}},{key:"isTopModal",value:function(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}]),e}();var k=new C;function P(e){var t=e.container,n=e.disableEscapeKeyDown,r=void 0!==n&&n,a=e.disableScrollLock,s=void 0!==a&&a,h=e.manager,v=void 0===h?k:h,m=e.closeAfterTransition,b=void 0!==m&&m,g=e.onTransitionEnter,x=e.onTransitionExited,Z=e.children,w=e.onClose,S=e.open,C=e.rootRef,P=i.useRef({}),M=i.useRef(null),R=i.useRef(null),E=(0,u.Z)(R,C),T=i.useState(!S),D=(0,l.Z)(T,2),O=D[0],j=D[1],N=function(e){return!!e&&e.props.hasOwnProperty("in")}(Z),I=!0;"false"!==e["aria-hidden"]&&!1!==e["aria-hidden"]||(I=!1);var A=function(){return P.current.modalRef=R.current,P.current.mount=M.current,P.current},F=function(){v.mount(A(),{disableScrollLock:s}),R.current&&(R.current.scrollTop=0)},B=(0,d.Z)((function(){var e=function(e){return"function"===typeof e?e():e}(t)||(0,c.Z)(M.current).body;v.add(A(),e),R.current&&F()})),L=i.useCallback((function(){return v.isTopModal(A())}),[v]),z=(0,d.Z)((function(e){M.current=e,e&&(S&&L()?F():R.current&&y(R.current,I))})),W=i.useCallback((function(){v.remove(A(),I)}),[I,v]);i.useEffect((function(){return function(){W()}}),[W]),i.useEffect((function(){S?B():N&&b||W()}),[S,W,N,b,B]);var V=function(e){return function(t){var n;null==(n=e.onKeyDown)||n.call(e,t),"Escape"===t.key&&L()&&(r||(t.stopPropagation(),w&&w(t,"escapeKeyDown")))}},H=function(e){return function(t){var n;null==(n=e.onClick)||n.call(e,t),t.target===t.currentTarget&&w&&w(t,"backdropClick")}};return{getRootProps:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=(0,f._)(e);delete n.onTransitionEnter,delete n.onTransitionExited;var r=(0,o.Z)({},n,t);return(0,o.Z)({role:"presentation"},r,{onKeyDown:V(r),ref:E})},getBackdropProps:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,o.Z)({"aria-hidden":!0},e,{onClick:H(e),open:S})},getTransitionProps:function(){return{onEnter:(0,p.Z)((function(){j(!1),g&&g()}),null==Z?void 0:Z.props.onEnter),onExited:(0,p.Z)((function(){j(!0),x&&x(),b&&W()}),null==Z?void 0:Z.props.onExited)}},rootRef:E,portalRef:z,isTopModal:L,exited:O,hasTransition:N}}var M=n(94419),R=n(32080),E=n(96174),T=n(40724),D=n(93736),O=n(52739),j=n(75878),N=n(21217);function I(e){return(0,N.Z)("MuiModal",e)}(0,j.Z)("MuiModal",["root","hidden","backdrop"]);var A=n(80184),F=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","onTransitionEnter","onTransitionExited","open","slotProps","slots","theme"],B=(0,T.ZP)("div",{name:"MuiModal",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.open&&n.exited&&t.hidden]}})((function(e){var t=e.theme,n=e.ownerState;return(0,o.Z)({position:"fixed",zIndex:(t.vars||t).zIndex.modal,right:0,bottom:0,top:0,left:0},!n.open&&n.exited&&{visibility:"hidden"})})),L=(0,T.ZP)(O.Z,{name:"MuiModal",slot:"Backdrop",overridesResolver:function(e,t){return t.backdrop}})({zIndex:-1}),z=i.forwardRef((function(e,t){var n,l,u,c,d,p,f=(0,D.Z)({name:"MuiModal",props:e}),h=f.BackdropComponent,v=void 0===h?L:h,m=f.BackdropProps,b=f.className,g=f.closeAfterTransition,y=void 0!==g&&g,x=f.children,Z=f.container,w=f.component,S=f.components,C=void 0===S?{}:S,k=f.componentsProps,T=void 0===k?{}:k,O=f.disableAutoFocus,j=void 0!==O&&O,N=f.disableEnforceFocus,z=void 0!==N&&N,W=f.disableEscapeKeyDown,V=void 0!==W&&W,H=f.disablePortal,q=void 0!==H&&H,K=f.disableRestoreFocus,_=void 0!==K&&K,Y=f.disableScrollLock,U=void 0!==Y&&Y,X=f.hideBackdrop,G=void 0!==X&&X,$=f.keepMounted,J=void 0!==$&&$,Q=f.onBackdropClick,ee=f.open,te=f.slotProps,ne=f.slots,re=(0,r.Z)(f,F),oe=(0,o.Z)({},f,{closeAfterTransition:y,disableAutoFocus:j,disableEnforceFocus:z,disableEscapeKeyDown:V,disablePortal:q,disableRestoreFocus:_,disableScrollLock:U,hideBackdrop:G,keepMounted:J}),ie=P((0,o.Z)({},oe,{rootRef:t})),ae=ie.getRootProps,se=ie.getBackdropProps,le=ie.getTransitionProps,ue=ie.portalRef,ce=ie.isTopModal,de=ie.exited,pe=ie.hasTransition,fe=(0,o.Z)({},oe,{exited:de}),he=function(e){var t=e.open,n=e.exited,r=e.classes,o={root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]};return(0,M.Z)(o,I,r)}(fe),ve={};if(void 0===x.props.tabIndex&&(ve.tabIndex="-1"),pe){var me=le(),be=me.onEnter,ge=me.onExited;ve.onEnter=be,ve.onExited=ge}var ye=null!=(n=null!=(l=null==ne?void 0:ne.root)?l:C.Root)?n:B,xe=null!=(u=null!=(c=null==ne?void 0:ne.backdrop)?c:C.Backdrop)?u:v,Ze=null!=(d=null==te?void 0:te.root)?d:T.root,we=null!=(p=null==te?void 0:te.backdrop)?p:T.backdrop,Se=(0,s.y)({elementType:ye,externalSlotProps:Ze,externalForwardedProps:re,getSlotProps:ae,additionalProps:{ref:t,as:w},ownerState:fe,className:(0,a.Z)(b,null==Ze?void 0:Ze.className,null==he?void 0:he.root,!fe.open&&fe.exited&&(null==he?void 0:he.hidden))}),Ce=(0,s.y)({elementType:xe,externalSlotProps:we,additionalProps:m,getSlotProps:function(e){return se((0,o.Z)({},e,{onClick:function(t){Q&&Q(t),null!=e&&e.onClick&&e.onClick(t)}}))},className:(0,a.Z)(null==we?void 0:we.className,null==m?void 0:m.className,null==he?void 0:he.backdrop),ownerState:fe});return J||ee||pe&&!de?(0,A.jsx)(E.h,{ref:ue,container:Z,disablePortal:q,children:(0,A.jsxs)(ye,(0,o.Z)({},Se,{children:[!G&&v?(0,A.jsx)(xe,(0,o.Z)({},Ce)):null,(0,A.jsx)(R.i,{disableEnforceFocus:z,disableAutoFocus:j,disableRestoreFocus:_,isEnabled:ce,open:ee,children:i.cloneElement(x,ve)})]}))}):null}))},35527:function(e,t,n){n.d(t,{Z:function(){return g}});var r=n(63366),o=n(87462),i=n(72791),a=n(63733),s=n(94419),l=n(12065),u=n(40724),c=function(e){return((e<1?5.11916*Math.pow(e,2):4.5*Math.log(e+1)+2)/100).toFixed(2)},d=n(93736),p=n(75878),f=n(21217);function h(e){return(0,f.Z)("MuiPaper",e)}(0,p.Z)("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);var v=n(80184),m=["className","component","elevation","square","variant"],b=(0,u.ZP)("div",{name:"MuiPaper",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],!n.square&&t.rounded,"elevation"===n.variant&&t["elevation".concat(n.elevation)]]}})((function(e){var t,n=e.theme,r=e.ownerState;return(0,o.Z)({backgroundColor:(n.vars||n).palette.background.paper,color:(n.vars||n).palette.text.primary,transition:n.transitions.create("box-shadow")},!r.square&&{borderRadius:n.shape.borderRadius},"outlined"===r.variant&&{border:"1px solid ".concat((n.vars||n).palette.divider)},"elevation"===r.variant&&(0,o.Z)({boxShadow:(n.vars||n).shadows[r.elevation]},!n.vars&&"dark"===n.palette.mode&&{backgroundImage:"linear-gradient(".concat((0,l.Fq)("#fff",c(r.elevation)),", ").concat((0,l.Fq)("#fff",c(r.elevation)),")")},n.vars&&{backgroundImage:null==(t=n.vars.overlays)?void 0:t[r.elevation]}))})),g=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiPaper"}),i=n.className,l=n.component,u=void 0===l?"div":l,c=n.elevation,p=void 0===c?1:c,f=n.square,g=void 0!==f&&f,y=n.variant,x=void 0===y?"elevation":y,Z=(0,r.Z)(n,m),w=(0,o.Z)({},n,{component:u,elevation:p,square:g,variant:x}),S=function(e){var t=e.square,n=e.elevation,r=e.variant,o=e.classes,i={root:["root",r,!t&&"rounded","elevation"===r&&"elevation".concat(n)]};return(0,s.Z)(i,h,o)}(w);return(0,v.jsx)(b,(0,o.Z)({as:u,ownerState:w,className:(0,a.Z)(S.root,i),ref:t},Z))}))},14464:function(e,t,n){n.d(t,{Z:function(){return fn}});var r=n(87462),o=n(63366),i=n(72791),a=n(63733),s=n(94419),l=n(18252),u=n(40724),c=n(93736),d=n(4942),p=n(93433),f=n(82466),h=n(29439),v=n(46189),m=n(54164),b=n(6117),g=n(65202),y=n(62876),x=n(82254),Z=n(80184),w=["onChange","maxRows","minRows","style","value"];function S(e){return parseInt(e,10)||0}var C={visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"};function k(e){return void 0===e||null===e||0===Object.keys(e).length||0===e.outerHeightStyle&&!e.overflow}var P=i.forwardRef((function(e,t){var n=e.onChange,a=e.maxRows,s=e.minRows,l=void 0===s?1:s,u=e.style,c=e.value,d=(0,o.Z)(e,w),p=i.useRef(null!=c).current,f=i.useRef(null),v=(0,b.Z)(t,f),P=i.useRef(null),M=i.useRef(0),R=i.useState({outerHeightStyle:0}),E=(0,h.Z)(R,2),T=E[0],D=E[1],O=i.useCallback((function(){var t=f.current,n=(0,g.Z)(t).getComputedStyle(t);if("0px"===n.width)return{outerHeightStyle:0};var r=P.current;r.style.width=n.width,r.value=t.value||e.placeholder||"x","\n"===r.value.slice(-1)&&(r.value+=" ");var o=n.boxSizing,i=S(n.paddingBottom)+S(n.paddingTop),s=S(n.borderBottomWidth)+S(n.borderTopWidth),u=r.scrollHeight;r.value="x";var c=r.scrollHeight,d=u;return l&&(d=Math.max(Number(l)*c,d)),a&&(d=Math.min(Number(a)*c,d)),{outerHeightStyle:(d=Math.max(d,c))+("border-box"===o?i+s:0),overflow:Math.abs(d-u)<=1}}),[a,l,e.placeholder]),j=function(e,t){var n=t.outerHeightStyle,r=t.overflow;return M.current<20&&(n>0&&Math.abs((e.outerHeightStyle||0)-n)>1||e.overflow!==r)?(M.current+=1,{overflow:r,outerHeightStyle:n}):e},N=i.useCallback((function(){var e=O();k(e)||D((function(t){return j(t,e)}))}),[O]);(0,y.Z)((function(){var e,t,n=function(){M.current=0,function(){var e=O();k(e)||m.flushSync((function(){D((function(t){return j(t,e)}))}))}()},r=(0,x.Z)(n),o=f.current,i=(0,g.Z)(o);return i.addEventListener("resize",r),"undefined"!==typeof ResizeObserver&&(t=new ResizeObserver(n)).observe(o),function(){r.clear(),cancelAnimationFrame(e),i.removeEventListener("resize",r),t&&t.disconnect()}}),[O]),(0,y.Z)((function(){N()})),i.useEffect((function(){M.current=0}),[c]);return(0,Z.jsxs)(i.Fragment,{children:[(0,Z.jsx)("textarea",(0,r.Z)({value:c,onChange:function(e){M.current=0,p||N(),n&&n(e)},ref:v,rows:l,style:(0,r.Z)({height:T.outerHeightStyle,overflow:T.overflow?"hidden":void 0},u)},d)),(0,Z.jsx)("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:P,tabIndex:-1,style:(0,r.Z)({},C,u,{paddingTop:0,paddingBottom:0})})]})})),M=n(20627);function R(e){var t=e.props,n=e.states,r=e.muiFormControl;return n.reduce((function(e,n){return e[n]=t[n],r&&"undefined"===typeof t[n]&&(e[n]=r[n]),e}),{})}var E=n(93840),T=n(52930),D=n(14036),O=n(42071),j=n(40162),N=n(52554);function I(e){var t=e.styles,n=e.defaultTheme,r=void 0===n?{}:n,o="function"===typeof t?function(e){return t(void 0===(n=e)||null===n||0===Object.keys(n).length?r:e);var n}:t;return(0,Z.jsx)(N.xB,{styles:o})}var A=n(30418);var F=function(e){var t=e.styles,n=e.themeId,r=e.defaultTheme,o=void 0===r?{}:r,i=(0,A.Z)(o),a="function"===typeof t?t(n&&i[n]||i):t;return(0,Z.jsx)(I,{styles:a})},B=n(36482),L=n(988);var z=function(e){return(0,Z.jsx)(F,(0,r.Z)({},e,{defaultTheme:B.Z,themeId:L.Z}))};function W(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function V(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&(W(e.value)&&""!==e.value||t&&W(e.defaultValue)&&""!==e.defaultValue)}var H=n(75878),q=n(21217);function K(e){return(0,q.Z)("MuiInputBase",e)}var _=(0,H.Z)("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),Y=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],U=function(e,t){var n=e.ownerState;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,"small"===n.size&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t["color".concat((0,D.Z)(n.color))],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},X=function(e,t){var n=e.ownerState;return[t.input,"small"===n.size&&t.inputSizeSmall,n.multiline&&t.inputMultiline,"search"===n.type&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},G=(0,u.ZP)("div",{name:"MuiInputBase",slot:"Root",overridesResolver:U})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({},t.typography.body1,(0,d.Z)({color:(t.vars||t).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center"},"&.".concat(_.disabled),{color:(t.vars||t).palette.text.disabled,cursor:"default"}),n.multiline&&(0,r.Z)({padding:"4px 0 5px"},"small"===n.size&&{paddingTop:1}),n.fullWidth&&{width:"100%"})})),$=(0,u.ZP)("input",{name:"MuiInputBase",slot:"Input",overridesResolver:X})((function(e){var t,n=e.theme,o=e.ownerState,i="light"===n.palette.mode,a=(0,r.Z)({color:"currentColor"},n.vars?{opacity:n.vars.opacity.inputPlaceholder}:{opacity:i?.42:.5},{transition:n.transitions.create("opacity",{duration:n.transitions.duration.shorter})}),s={opacity:"0 !important"},l=n.vars?{opacity:n.vars.opacity.inputPlaceholder}:{opacity:i?.42:.5};return(0,r.Z)((t={font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":a,"&::-moz-placeholder":a,"&:-ms-input-placeholder":a,"&::-ms-input-placeholder":a,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"}},(0,d.Z)(t,"label[data-shrink=false] + .".concat(_.formControl," &"),{"&::-webkit-input-placeholder":s,"&::-moz-placeholder":s,"&:-ms-input-placeholder":s,"&::-ms-input-placeholder":s,"&:focus::-webkit-input-placeholder":l,"&:focus::-moz-placeholder":l,"&:focus:-ms-input-placeholder":l,"&:focus::-ms-input-placeholder":l}),(0,d.Z)(t,"&.".concat(_.disabled),{opacity:1,WebkitTextFillColor:(n.vars||n).palette.text.disabled}),(0,d.Z)(t,"&:-webkit-autofill",{animationDuration:"5000s",animationName:"mui-auto-fill"}),t),"small"===o.size&&{paddingTop:1},o.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},"search"===o.type&&{MozAppearance:"textfield"})})),J=(0,Z.jsx)(z,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),Q=i.forwardRef((function(e,t){var n,l=(0,c.Z)({props:e,name:"MuiInputBase"}),u=l["aria-describedby"],d=l.autoComplete,p=l.autoFocus,f=l.className,m=l.components,b=void 0===m?{}:m,g=l.componentsProps,y=void 0===g?{}:g,x=l.defaultValue,w=l.disabled,S=l.disableInjectingGlobalStyles,C=l.endAdornment,k=l.fullWidth,N=void 0!==k&&k,I=l.id,A=l.inputComponent,F=void 0===A?"input":A,B=l.inputProps,L=void 0===B?{}:B,z=l.inputRef,W=l.maxRows,H=l.minRows,q=l.multiline,_=void 0!==q&&q,U=l.name,X=l.onBlur,Q=l.onChange,ee=l.onClick,te=l.onFocus,ne=l.onKeyDown,re=l.onKeyUp,oe=l.placeholder,ie=l.readOnly,ae=l.renderSuffix,se=l.rows,le=l.slotProps,ue=void 0===le?{}:le,ce=l.slots,de=void 0===ce?{}:ce,pe=l.startAdornment,fe=l.type,he=void 0===fe?"text":fe,ve=l.value,me=(0,o.Z)(l,Y),be=null!=L.value?L.value:ve,ge=i.useRef(null!=be).current,ye=i.useRef(),xe=i.useCallback((function(e){0}),[]),Ze=(0,O.Z)(ye,z,L.ref,xe),we=i.useState(!1),Se=(0,h.Z)(we,2),Ce=Se[0],ke=Se[1],Pe=(0,T.Z)();var Me=R({props:l,muiFormControl:Pe,states:["color","disabled","error","hiddenLabel","size","required","filled"]});Me.focused=Pe?Pe.focused:Ce,i.useEffect((function(){!Pe&&w&&Ce&&(ke(!1),X&&X())}),[Pe,w,Ce,X]);var Re=Pe&&Pe.onFilled,Ee=Pe&&Pe.onEmpty,Te=i.useCallback((function(e){V(e)?Re&&Re():Ee&&Ee()}),[Re,Ee]);(0,j.Z)((function(){ge&&Te({value:be})}),[be,Te,ge]);i.useEffect((function(){Te(ye.current)}),[]);var De=F,Oe=L;_&&"input"===De&&(Oe=se?(0,r.Z)({type:void 0,minRows:se,maxRows:se},Oe):(0,r.Z)({type:void 0,maxRows:W,minRows:H},Oe),De=P);i.useEffect((function(){Pe&&Pe.setAdornedStart(Boolean(pe))}),[Pe,pe]);var je=(0,r.Z)({},l,{color:Me.color||"primary",disabled:Me.disabled,endAdornment:C,error:Me.error,focused:Me.focused,formControl:Pe,fullWidth:N,hiddenLabel:Me.hiddenLabel,multiline:_,size:Me.size,startAdornment:pe,type:he}),Ne=function(e){var t=e.classes,n=e.color,r=e.disabled,o=e.error,i=e.endAdornment,a=e.focused,l=e.formControl,u=e.fullWidth,c=e.hiddenLabel,d=e.multiline,p=e.readOnly,f=e.size,h=e.startAdornment,v=e.type,m={root:["root","color".concat((0,D.Z)(n)),r&&"disabled",o&&"error",u&&"fullWidth",a&&"focused",l&&"formControl",f&&"medium"!==f&&"size".concat((0,D.Z)(f)),d&&"multiline",h&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",p&&"readOnly"],input:["input",r&&"disabled","search"===v&&"inputTypeSearch",d&&"inputMultiline","small"===f&&"inputSizeSmall",c&&"inputHiddenLabel",h&&"inputAdornedStart",i&&"inputAdornedEnd",p&&"readOnly"]};return(0,s.Z)(m,K,t)}(je),Ie=de.root||b.Root||G,Ae=ue.root||y.root||{},Fe=de.input||b.Input||$;return Oe=(0,r.Z)({},Oe,null!=(n=ue.input)?n:y.input),(0,Z.jsxs)(i.Fragment,{children:[!S&&J,(0,Z.jsxs)(Ie,(0,r.Z)({},Ae,!(0,M.X)(Ie)&&{ownerState:(0,r.Z)({},je,Ae.ownerState)},{ref:t,onClick:function(e){ye.current&&e.currentTarget===e.target&&ye.current.focus(),ee&&ee(e)}},me,{className:(0,a.Z)(Ne.root,Ae.className,f,ie&&"MuiInputBase-readOnly"),children:[pe,(0,Z.jsx)(E.Z.Provider,{value:null,children:(0,Z.jsx)(Fe,(0,r.Z)({ownerState:je,"aria-invalid":Me.error,"aria-describedby":u,autoComplete:d,autoFocus:p,defaultValue:x,disabled:Me.disabled,id:I,onAnimationStart:function(e){Te("mui-auto-fill-cancel"===e.animationName?ye.current:{value:"x"})},name:U,placeholder:oe,readOnly:ie,required:Me.required,rows:se,value:be,onKeyDown:ne,onKeyUp:re,type:he},Oe,!(0,M.X)(Fe)&&{as:De,ownerState:(0,r.Z)({},je,Oe.ownerState)},{ref:Ze,className:(0,a.Z)(Ne.input,Oe.className,ie&&"MuiInputBase-readOnly"),onBlur:function(e){X&&X(e),L.onBlur&&L.onBlur(e),Pe&&Pe.onBlur?Pe.onBlur(e):ke(!1)},onChange:function(e){if(!ge){var t=e.target||ye.current;if(null==t)throw new Error((0,v.Z)(1));Te({value:t.value})}for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},t.notched&&{maxWidth:"100%",transition:n.transitions.create("max-width",{duration:100,easing:n.transitions.easing.easeOut,delay:50})}))}));function ye(e){return(0,q.Z)("MuiOutlinedInput",e)}var xe=(0,r.Z)({},_,(0,H.Z)("MuiOutlinedInput",["root","notchedOutline","input"])),Ze=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],we=(0,u.ZP)(G,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiOutlinedInput",slot:"Root",overridesResolver:U})((function(e){var t,n=e.theme,o=e.ownerState,i="light"===n.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return(0,r.Z)((t={position:"relative",borderRadius:(n.vars||n).shape.borderRadius},(0,d.Z)(t,"&:hover .".concat(xe.notchedOutline),{borderColor:(n.vars||n).palette.text.primary}),(0,d.Z)(t,"@media (hover: none)",(0,d.Z)({},"&:hover .".concat(xe.notchedOutline),{borderColor:n.vars?"rgba(".concat(n.vars.palette.common.onBackgroundChannel," / 0.23)"):i})),(0,d.Z)(t,"&.".concat(xe.focused," .").concat(xe.notchedOutline),{borderColor:(n.vars||n).palette[o.color].main,borderWidth:2}),(0,d.Z)(t,"&.".concat(xe.error," .").concat(xe.notchedOutline),{borderColor:(n.vars||n).palette.error.main}),(0,d.Z)(t,"&.".concat(xe.disabled," .").concat(xe.notchedOutline),{borderColor:(n.vars||n).palette.action.disabled}),t),o.startAdornment&&{paddingLeft:14},o.endAdornment&&{paddingRight:14},o.multiline&&(0,r.Z)({padding:"16.5px 14px"},"small"===o.size&&{padding:"8.5px 14px"}))})),Se=(0,u.ZP)((function(e){var t=e.className,n=e.label,i=e.notched,a=(0,o.Z)(e,me),s=null!=n&&""!==n,l=(0,r.Z)({},e,{notched:i,withLabel:s});return(0,Z.jsx)(be,(0,r.Z)({"aria-hidden":!0,className:t,ownerState:l},a,{children:(0,Z.jsx)(ge,{ownerState:l,children:s?(0,Z.jsx)("span",{children:n}):he||(he=(0,Z.jsx)("span",{className:"notranslate",children:"\u200b"}))})}))}),{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:function(e,t){return t.notchedOutline}})((function(e){var t=e.theme,n="light"===t.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:t.vars?"rgba(".concat(t.vars.palette.common.onBackgroundChannel," / 0.23)"):n}})),Ce=(0,u.ZP)($,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:X})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({padding:"16.5px 14px"},!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:"light"===t.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===t.palette.mode?null:"#fff",caretColor:"light"===t.palette.mode?null:"#fff",borderRadius:"inherit"}},t.vars&&(0,d.Z)({"&:-webkit-autofill":{borderRadius:"inherit"}},t.getColorSchemeSelector("dark"),{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}),"small"===n.size&&{padding:"8.5px 14px"},n.multiline&&{padding:0},n.startAdornment&&{paddingLeft:0},n.endAdornment&&{paddingRight:0})})),ke=i.forwardRef((function(e,t){var n,a,l,u,d,p=(0,c.Z)({props:e,name:"MuiOutlinedInput"}),f=p.components,h=void 0===f?{}:f,v=p.fullWidth,m=void 0!==v&&v,b=p.inputComponent,g=void 0===b?"input":b,y=p.label,x=p.multiline,w=void 0!==x&&x,S=p.notched,C=p.slots,k=void 0===C?{}:C,P=p.type,M=void 0===P?"text":P,E=(0,o.Z)(p,Ze),D=function(e){var t=e.classes,n=(0,s.Z)({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},ye,t);return(0,r.Z)({},t,n)}(p),O=(0,T.Z)(),j=R({props:p,muiFormControl:O,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),N=(0,r.Z)({},p,{color:j.color||"primary",disabled:j.disabled,error:j.error,focused:j.focused,formControl:O,fullWidth:m,hiddenLabel:j.hiddenLabel,multiline:w,size:j.size,type:M}),I=null!=(n=null!=(a=k.root)?a:h.Root)?n:we,A=null!=(l=null!=(u=k.input)?u:h.Input)?l:Ce;return(0,Z.jsx)(ee,(0,r.Z)({slots:{root:I,input:A},renderSuffix:function(e){return(0,Z.jsx)(Se,{ownerState:N,className:D.notchedOutline,label:null!=y&&""!==y&&j.required?d||(d=(0,Z.jsxs)(i.Fragment,{children:[y,"\u2009","*"]})):y,notched:"undefined"!==typeof S?S:Boolean(e.startAdornment||e.filled||e.focused)})},fullWidth:m,inputComponent:g,multiline:w,ref:t,type:M},E,{classes:(0,r.Z)({},D,{notchedOutline:null})}))}));ke.muiName="Input";var Pe=ke;function Me(e){return(0,q.Z)("MuiFormLabel",e)}var Re=(0,H.Z)("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),Ee=["children","className","color","component","disabled","error","filled","focused","required"],Te=(0,u.ZP)("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return(0,r.Z)({},t.root,"secondary"===n.color&&t.colorSecondary,n.filled&&t.filled)}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)({color:(n.vars||n).palette.text.secondary},n.typography.body1,(t={lineHeight:"1.4375em",padding:0,position:"relative"},(0,d.Z)(t,"&.".concat(Re.focused),{color:(n.vars||n).palette[o.color].main}),(0,d.Z)(t,"&.".concat(Re.disabled),{color:(n.vars||n).palette.text.disabled}),(0,d.Z)(t,"&.".concat(Re.error),{color:(n.vars||n).palette.error.main}),t))})),De=(0,u.ZP)("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:function(e,t){return t.asterisk}})((function(e){var t=e.theme;return(0,d.Z)({},"&.".concat(Re.error),{color:(t.vars||t).palette.error.main})})),Oe=i.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiFormLabel"}),i=n.children,l=n.className,u=n.component,d=void 0===u?"label":u,p=(0,o.Z)(n,Ee),f=R({props:n,muiFormControl:(0,T.Z)(),states:["color","required","focused","disabled","error","filled"]}),h=(0,r.Z)({},n,{color:f.color||"primary",component:d,disabled:f.disabled,error:f.error,filled:f.filled,focused:f.focused,required:f.required}),v=function(e){var t=e.classes,n=e.color,r=e.focused,o=e.disabled,i=e.error,a=e.filled,l=e.required,u={root:["root","color".concat((0,D.Z)(n)),o&&"disabled",i&&"error",a&&"filled",r&&"focused",l&&"required"],asterisk:["asterisk",i&&"error"]};return(0,s.Z)(u,Me,t)}(h);return(0,Z.jsxs)(Te,(0,r.Z)({as:d,ownerState:h,className:(0,a.Z)(v.root,l),ref:t},p,{children:[i,f.required&&(0,Z.jsxs)(De,{ownerState:h,"aria-hidden":!0,className:v.asterisk,children:["\u2009","*"]})]}))}));function je(e){return(0,q.Z)("MuiInputLabel",e)}(0,H.Z)("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);var Ne=["disableAnimation","margin","shrink","variant","className"],Ie=(0,u.ZP)(Oe,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiInputLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[(0,d.Z)({},"& .".concat(Re.asterisk),t.asterisk),t.root,n.formControl&&t.formControl,"small"===n.size&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},n.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},"small"===n.size&&{transform:"translate(0, 17px) scale(1)"},n.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!n.disableAnimation&&{transition:t.transitions.create(["color","transform","max-width"],{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut})},"filled"===n.variant&&(0,r.Z)({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(12px, 13px) scale(1)"},n.shrink&&(0,r.Z)({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},"small"===n.size&&{transform:"translate(12px, 4px) scale(0.75)"})),"outlined"===n.variant&&(0,r.Z)({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(14px, 9px) scale(1)"},n.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))})),Ae=i.forwardRef((function(e,t){var n=(0,c.Z)({name:"MuiInputLabel",props:e}),i=n.disableAnimation,l=void 0!==i&&i,u=n.shrink,d=n.className,p=(0,o.Z)(n,Ne),f=(0,T.Z)(),h=u;"undefined"===typeof h&&f&&(h=f.filled||f.focused||f.adornedStart);var v=R({props:n,muiFormControl:f,states:["size","variant","required"]}),m=(0,r.Z)({},n,{disableAnimation:l,formControl:f,shrink:h,size:v.size,variant:v.variant,required:v.required}),b=function(e){var t=e.classes,n=e.formControl,o=e.size,i=e.shrink,a=e.disableAnimation,l=e.variant,u=e.required,c={root:["root",n&&"formControl",!a&&"animated",i&&"shrink",o&&"normal"!==o&&"size".concat((0,D.Z)(o)),l],asterisk:[u&&"asterisk"]},d=(0,s.Z)(c,je,t);return(0,r.Z)({},t,d)}(m);return(0,Z.jsx)(Ie,(0,r.Z)({"data-shrink":h,ownerState:m,ref:t,className:(0,a.Z)(b.root,d)},p,{classes:b}))})),Fe=n(19103);function Be(e){return(0,q.Z)("MuiFormControl",e)}(0,H.Z)("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);var Le=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],ze=(0,u.ZP)("div",{name:"MuiFormControl",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return(0,r.Z)({},t.root,t["margin".concat((0,D.Z)(n.margin))],n.fullWidth&&t.fullWidth)}})((function(e){var t=e.ownerState;return(0,r.Z)({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},"normal"===t.margin&&{marginTop:16,marginBottom:8},"dense"===t.margin&&{marginTop:8,marginBottom:4},t.fullWidth&&{width:"100%"})})),We=i.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiFormControl"}),l=n.children,u=n.className,d=n.color,p=void 0===d?"primary":d,f=n.component,v=void 0===f?"div":f,m=n.disabled,b=void 0!==m&&m,g=n.error,y=void 0!==g&&g,x=n.focused,w=n.fullWidth,S=void 0!==w&&w,C=n.hiddenLabel,k=void 0!==C&&C,P=n.margin,M=void 0===P?"none":P,R=n.required,T=void 0!==R&&R,O=n.size,j=void 0===O?"medium":O,N=n.variant,I=void 0===N?"outlined":N,A=(0,o.Z)(n,Le),F=(0,r.Z)({},n,{color:p,component:v,disabled:b,error:y,fullWidth:S,hiddenLabel:k,margin:M,required:T,size:j,variant:I}),B=function(e){var t=e.classes,n=e.margin,r=e.fullWidth,o={root:["root","none"!==n&&"margin".concat((0,D.Z)(n)),r&&"fullWidth"]};return(0,s.Z)(o,Be,t)}(F),L=i.useState((function(){var e=!1;return l&&i.Children.forEach(l,(function(t){if((0,Fe.Z)(t,["Input","Select"])){var n=(0,Fe.Z)(t,["Select"])?t.props.input:t;n&&n.props.startAdornment&&(e=!0)}})),e})),z=(0,h.Z)(L,2),W=z[0],H=z[1],q=i.useState((function(){var e=!1;return l&&i.Children.forEach(l,(function(t){(0,Fe.Z)(t,["Input","Select"])&&(V(t.props,!0)||V(t.props.inputProps,!0))&&(e=!0)})),e})),K=(0,h.Z)(q,2),_=K[0],Y=K[1],U=i.useState(!1),X=(0,h.Z)(U,2),G=X[0],$=X[1];b&&G&&$(!1);var J,Q=void 0===x||b?G:x,ee=i.useMemo((function(){return{adornedStart:W,setAdornedStart:H,color:p,disabled:b,error:y,filled:_,focused:Q,fullWidth:S,hiddenLabel:k,size:j,onBlur:function(){$(!1)},onEmpty:function(){Y(!1)},onFilled:function(){Y(!0)},onFocus:function(){$(!0)},registerEffect:J,required:T,variant:I}}),[W,p,b,y,_,Q,S,k,J,T,j,I]);return(0,Z.jsx)(E.Z.Provider,{value:ee,children:(0,Z.jsx)(ze,(0,r.Z)({as:v,ownerState:F,className:(0,a.Z)(B.root,u),ref:t},A,{children:l}))})}));function Ve(e){return(0,q.Z)("MuiFormHelperText",e)}var He,qe=(0,H.Z)("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),Ke=["children","className","component","disabled","error","filled","focused","margin","required","variant"],_e=(0,u.ZP)("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.size&&t["size".concat((0,D.Z)(n.size))],n.contained&&t.contained,n.filled&&t.filled]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)({color:(n.vars||n).palette.text.secondary},n.typography.caption,(t={textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0},(0,d.Z)(t,"&.".concat(qe.disabled),{color:(n.vars||n).palette.text.disabled}),(0,d.Z)(t,"&.".concat(qe.error),{color:(n.vars||n).palette.error.main}),t),"small"===o.size&&{marginTop:4},o.contained&&{marginLeft:14,marginRight:14})})),Ye=i.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiFormHelperText"}),i=n.children,l=n.className,u=n.component,d=void 0===u?"p":u,p=(0,o.Z)(n,Ke),f=R({props:n,muiFormControl:(0,T.Z)(),states:["variant","size","disabled","error","filled","focused","required"]}),h=(0,r.Z)({},n,{component:d,contained:"filled"===f.variant||"outlined"===f.variant,variant:f.variant,size:f.size,disabled:f.disabled,error:f.error,filled:f.filled,focused:f.focused,required:f.required}),v=function(e){var t=e.classes,n=e.contained,r=e.size,o=e.disabled,i=e.error,a=e.filled,l=e.focused,u=e.required,c={root:["root",o&&"disabled",i&&"error",r&&"size".concat((0,D.Z)(r)),n&&"contained",l&&"focused",a&&"filled",u&&"required"]};return(0,s.Z)(c,Ve,t)}(h);return(0,Z.jsx)(_e,(0,r.Z)({as:d,ownerState:h,className:(0,a.Z)(v.root,l),ref:t},p,{children:" "===i?He||(He=(0,Z.jsx)("span",{className:"notranslate",children:"\u200b"})):i}))})),Ue=(n(57441),n(98301)),Xe=n(69543);var Ge=i.createContext({});function $e(e){return(0,q.Z)("MuiList",e)}(0,H.Z)("MuiList",["root","padding","dense","subheader"]);var Je=["children","className","component","dense","disablePadding","subheader"],Qe=(0,u.ZP)("ul",{name:"MuiList",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})((function(e){var t=e.ownerState;return(0,r.Z)({listStyle:"none",margin:0,padding:0,position:"relative"},!t.disablePadding&&{paddingTop:8,paddingBottom:8},t.subheader&&{paddingTop:0})})),et=i.forwardRef((function(e,t){var n=(0,c.Z)({props:e,name:"MuiList"}),l=n.children,u=n.className,d=n.component,p=void 0===d?"ul":d,f=n.dense,h=void 0!==f&&f,v=n.disablePadding,m=void 0!==v&&v,b=n.subheader,g=(0,o.Z)(n,Je),y=i.useMemo((function(){return{dense:h}}),[h]),x=(0,r.Z)({},n,{component:p,dense:h,disablePadding:m}),w=function(e){var t=e.classes,n={root:["root",!e.disablePadding&&"padding",e.dense&&"dense",e.subheader&&"subheader"]};return(0,s.Z)(n,$e,t)}(x);return(0,Z.jsx)(Ge.Provider,{value:y,children:(0,Z.jsxs)(Qe,(0,r.Z)({as:p,className:(0,a.Z)(w.root,u),ref:t,ownerState:x},g,{children:[b,l]}))})})),tt=n(57137).Z,nt=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function rt(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function ot(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function it(e,t){if(void 0===t)return!0;var n=e.innerText;return void 0===n&&(n=e.textContent),0!==(n=n.trim().toLowerCase()).length&&(t.repeating?n[0]===t.keys[0]:0===n.indexOf(t.keys.join("")))}function at(e,t,n,r,o,i){for(var a=!1,s=o(e,t,!!t&&n);s;){if(s===e.firstChild){if(a)return!1;a=!0}var l=!r&&(s.disabled||"true"===s.getAttribute("aria-disabled"));if(s.hasAttribute("tabindex")&&it(s,i)&&!l)return s.focus(),!0;s=o(e,s,n)}return!1}var st=i.forwardRef((function(e,t){var n=e.actions,a=e.autoFocus,s=void 0!==a&&a,l=e.autoFocusItem,u=void 0!==l&&l,c=e.children,d=e.className,p=e.disabledItemsFocusable,f=void 0!==p&&p,h=e.disableListWrap,v=void 0!==h&&h,m=e.onKeyDown,b=e.variant,g=void 0===b?"selectedMenu":b,y=(0,o.Z)(e,nt),x=i.useRef(null),w=i.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});(0,j.Z)((function(){s&&x.current.focus()}),[s]),i.useImperativeHandle(n,(function(){return{adjustStyleForScrollbar:function(e,t){var n=!x.current.style.width;if(e.clientHeight=c.length&&(C=-1)):C===t&&(C+=1)>=c.length&&(C=-1)}));var k=i.Children.map(c,(function(e,t){if(t===C){var n={};return u&&(n.autoFocus=!0),void 0===e.props.tabIndex&&"selectedMenu"===g&&(n.tabIndex=0),i.cloneElement(e,n)}return e}));return(0,Z.jsx)(et,(0,r.Z)({role:"menu",ref:S,className:d,onKeyDown:function(e){var t=x.current,n=e.key,r=(0,Ue.Z)(t).activeElement;if("ArrowDown"===n)e.preventDefault(),at(t,r,v,f,rt);else if("ArrowUp"===n)e.preventDefault(),at(t,r,v,f,ot);else if("Home"===n)e.preventDefault(),at(t,null,v,f,rt);else if("End"===n)e.preventDefault(),at(t,null,v,f,ot);else if(1===n.length){var o=w.current,i=n.toLowerCase(),a=performance.now();o.keys.length>0&&(a-o.lastTime>500?(o.keys=[],o.repeating=!0,o.previousKeyMatched=!0):o.repeating&&i!==o.keys[0]&&(o.repeating=!1)),o.lastTime=a,o.keys.push(i);var s=r&&!o.repeating&&it(r,o);o.previousKeyMatched&&(s||at(t,r,!1,f,rt,o))?e.preventDefault():o.previousKeyMatched=!1}m&&m(e)},tabIndex:s?0:-1},y,{children:k}))})),lt=n(83199),ut=n(17602),ct=n(13208),dt=n(88447),pt=n(35527);function ft(e){return(0,q.Z)("MuiPopover",e)}(0,H.Z)("MuiPopover",["root","paper"]);var ht=["onEntering"],vt=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"],mt=["slotProps"];function bt(e,t){var n=0;return"number"===typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function gt(e,t){var n=0;return"number"===typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function yt(e){return[e.horizontal,e.vertical].map((function(e){return"number"===typeof e?"".concat(e,"px"):e})).join(" ")}function xt(e){return"function"===typeof e?e():e}var Zt=(0,u.ZP)(dt.Z,{name:"MuiPopover",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),wt=(0,u.ZP)(pt.Z,{name:"MuiPopover",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),St=i.forwardRef((function(e,t){var n,l,u,d=(0,c.Z)({props:e,name:"MuiPopover"}),p=d.action,f=d.anchorEl,v=d.anchorOrigin,m=void 0===v?{vertical:"top",horizontal:"left"}:v,b=d.anchorPosition,g=d.anchorReference,y=void 0===g?"anchorEl":g,x=d.children,w=d.className,S=d.container,C=d.elevation,k=void 0===C?8:C,P=d.marginThreshold,R=void 0===P?16:P,E=d.open,T=d.PaperProps,D=void 0===T?{}:T,j=d.slots,N=d.slotProps,I=d.transformOrigin,A=void 0===I?{vertical:"top",horizontal:"left"}:I,F=d.TransitionComponent,B=void 0===F?ct.Z:F,L=d.transitionDuration,z=void 0===L?"auto":L,W=d.TransitionProps,V=(void 0===W?{}:W).onEntering,H=d.disableScrollLock,q=void 0!==H&&H,K=(0,o.Z)(d.TransitionProps,ht),_=(0,o.Z)(d,vt),Y=null!=(n=null==N?void 0:N.paper)?n:D,U=i.useRef(),X=(0,O.Z)(U,Y.ref),G=(0,r.Z)({},d,{anchorOrigin:m,anchorReference:y,elevation:k,marginThreshold:R,externalPaperSlotProps:Y,transformOrigin:A,TransitionComponent:B,transitionDuration:z,TransitionProps:K}),$=function(e){var t=e.classes;return(0,s.Z)({root:["root"],paper:["paper"]},ft,t)}(G),J=i.useCallback((function(){if("anchorPosition"===y)return b;var e=xt(f),t=(e&&1===e.nodeType?e:(0,Ue.Z)(U.current).body).getBoundingClientRect();return{top:t.top+bt(t,m.vertical),left:t.left+gt(t,m.horizontal)}}),[f,m.horizontal,m.vertical,b,y]),Q=i.useCallback((function(e){return{vertical:bt(e,A.vertical),horizontal:gt(e,A.horizontal)}}),[A.horizontal,A.vertical]),ee=i.useCallback((function(e){var t={width:e.offsetWidth,height:e.offsetHeight},n=Q(t);if("none"===y)return{top:null,left:null,transformOrigin:yt(n)};var r=J(),o=r.top-n.vertical,i=r.left-n.horizontal,a=o+t.height,s=i+t.width,l=(0,ut.Z)(xt(f)),u=l.innerHeight-R,c=l.innerWidth-R;if(null!==R&&ou){var p=a-u;o-=p,n.vertical+=p}if(null!==R&&ic){var v=s-c;i-=v,n.horizontal+=v}return{top:"".concat(Math.round(o),"px"),left:"".concat(Math.round(i),"px"),transformOrigin:yt(n)}}),[f,y,J,Q,R]),te=i.useState(E),ne=(0,h.Z)(te,2),re=ne[0],oe=ne[1],ie=i.useCallback((function(){var e=U.current;if(e){var t=ee(e);null!==t.top&&(e.style.top=t.top),null!==t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,oe(!0)}}),[ee]);i.useEffect((function(){return q&&window.addEventListener("scroll",ie),function(){return window.removeEventListener("scroll",ie)}}),[f,q,ie]);i.useEffect((function(){E&&ie()})),i.useImperativeHandle(p,(function(){return E?{updatePosition:function(){ie()}}:null}),[E,ie]),i.useEffect((function(){if(E){var e=(0,lt.Z)((function(){ie()})),t=(0,ut.Z)(f);return t.addEventListener("resize",e),function(){e.clear(),t.removeEventListener("resize",e)}}}),[f,E,ie]);var ae=z;"auto"!==z||B.muiSupportAuto||(ae=void 0);var se=S||(f?(0,Ue.Z)(xt(f)).body:void 0),le=null!=(l=null==j?void 0:j.root)?l:Zt,ue=null!=(u=null==j?void 0:j.paper)?u:wt,ce=(0,Xe.y)({elementType:ue,externalSlotProps:(0,r.Z)({},Y,{style:re?Y.style:(0,r.Z)({},Y.style,{opacity:0})}),additionalProps:{elevation:k,ref:X},ownerState:G,className:(0,a.Z)($.paper,null==Y?void 0:Y.className)}),de=(0,Xe.y)({elementType:le,externalSlotProps:(null==N?void 0:N.root)||{},externalForwardedProps:_,additionalProps:{ref:t,slotProps:{backdrop:{invisible:!0}},container:se,open:E},ownerState:G,className:(0,a.Z)($.root,w)}),pe=de.slotProps,fe=(0,o.Z)(de,mt);return(0,Z.jsx)(le,(0,r.Z)({},fe,!(0,M.X)(le)&&{slotProps:pe,disableScrollLock:q},{children:(0,Z.jsx)(B,(0,r.Z)({appear:!0,in:E,onEntering:function(e,t){V&&V(e,t),ie()},onExited:function(){oe(!1)},timeout:ae},K,{children:(0,Z.jsx)(ue,(0,r.Z)({},ce,{children:x}))}))}))})),Ct=n(13967);function kt(e){return(0,q.Z)("MuiMenu",e)}(0,H.Z)("MuiMenu",["root","paper","list"]);var Pt=["onEntering"],Mt=["autoFocus","children","className","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant","slots","slotProps"],Rt={vertical:"top",horizontal:"right"},Et={vertical:"top",horizontal:"left"},Tt=(0,u.ZP)(St,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiMenu",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),Dt=(0,u.ZP)(wt,{name:"MuiMenu",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),Ot=(0,u.ZP)(st,{name:"MuiMenu",slot:"List",overridesResolver:function(e,t){return t.list}})({outline:0}),jt=i.forwardRef((function(e,t){var n,l,u=(0,c.Z)({props:e,name:"MuiMenu"}),d=u.autoFocus,p=void 0===d||d,f=u.children,h=u.className,v=u.disableAutoFocusItem,m=void 0!==v&&v,b=u.MenuListProps,g=void 0===b?{}:b,y=u.onClose,x=u.open,w=u.PaperProps,S=void 0===w?{}:w,C=u.PopoverClasses,k=u.transitionDuration,P=void 0===k?"auto":k,M=u.TransitionProps,R=(void 0===M?{}:M).onEntering,E=u.variant,T=void 0===E?"selectedMenu":E,D=u.slots,O=void 0===D?{}:D,j=u.slotProps,N=void 0===j?{}:j,I=(0,o.Z)(u.TransitionProps,Pt),A=(0,o.Z)(u,Mt),F=(0,Ct.Z)(),B="rtl"===F.direction,L=(0,r.Z)({},u,{autoFocus:p,disableAutoFocusItem:m,MenuListProps:g,onEntering:R,PaperProps:S,transitionDuration:P,TransitionProps:I,variant:T}),z=function(e){var t=e.classes;return(0,s.Z)({root:["root"],paper:["paper"],list:["list"]},kt,t)}(L),W=p&&!m&&x,V=i.useRef(null),H=-1;i.Children.map(f,(function(e,t){i.isValidElement(e)&&(e.props.disabled||("selectedMenu"===T&&e.props.selected||-1===H)&&(H=t))}));var q=null!=(n=O.paper)?n:Dt,K=null!=(l=N.paper)?l:S,_=(0,Xe.y)({elementType:O.root,externalSlotProps:N.root,ownerState:L,className:[z.root,h]}),Y=(0,Xe.y)({elementType:q,externalSlotProps:K,ownerState:L,className:z.paper});return(0,Z.jsx)(Tt,(0,r.Z)({onClose:y,anchorOrigin:{vertical:"bottom",horizontal:B?"right":"left"},transformOrigin:B?Rt:Et,slots:{paper:q,root:O.root},slotProps:{root:_,paper:Y},open:x,ref:t,transitionDuration:P,TransitionProps:(0,r.Z)({onEntering:function(e,t){V.current&&V.current.adjustStyleForScrollbar(e,F),R&&R(e,t)}},I),ownerState:L},A,{classes:C,children:(0,Z.jsx)(Ot,(0,r.Z)({onKeyDown:function(e){"Tab"===e.key&&(e.preventDefault(),y&&y(e,"tabKeyDown"))},actions:V,autoFocus:p&&(-1===H||m),autoFocusItem:W,variant:T},g,{className:(0,a.Z)(z.list,g.className),children:f}))}))}));function Nt(e){return(0,q.Z)("MuiNativeSelect",e)}var It=(0,H.Z)("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),At=["className","disabled","error","IconComponent","inputRef","variant"],Ft=function(e){var t,n=e.ownerState,o=e.theme;return(0,r.Z)((t={MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":(0,r.Z)({},o.vars?{backgroundColor:"rgba(".concat(o.vars.palette.common.onBackgroundChannel," / 0.05)")}:{backgroundColor:"light"===o.palette.mode?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"}},(0,d.Z)(t,"&.".concat(It.disabled),{cursor:"default"}),(0,d.Z)(t,"&[multiple]",{height:"auto"}),(0,d.Z)(t,"&:not([multiple]) option, &:not([multiple]) optgroup",{backgroundColor:(o.vars||o).palette.background.paper}),(0,d.Z)(t,"&&&",{paddingRight:24,minWidth:16}),t),"filled"===n.variant&&{"&&&":{paddingRight:32}},"outlined"===n.variant&&{borderRadius:(o.vars||o).shape.borderRadius,"&:focus":{borderRadius:(o.vars||o).shape.borderRadius},"&&&":{paddingRight:32}})},Bt=(0,u.ZP)("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:u.FO,overridesResolver:function(e,t){var n=e.ownerState;return[t.select,t[n.variant],n.error&&t.error,(0,d.Z)({},"&.".concat(It.multiple),t.multiple)]}})(Ft),Lt=function(e){var t=e.ownerState,n=e.theme;return(0,r.Z)((0,d.Z)({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(n.vars||n).palette.action.active},"&.".concat(It.disabled),{color:(n.vars||n).palette.action.disabled}),t.open&&{transform:"rotate(180deg)"},"filled"===t.variant&&{right:7},"outlined"===t.variant&&{right:7})},zt=(0,u.ZP)("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat((0,D.Z)(n.variant))],n.open&&t.iconOpen]}})(Lt),Wt=i.forwardRef((function(e,t){var n=e.className,l=e.disabled,u=e.error,c=e.IconComponent,d=e.inputRef,p=e.variant,f=void 0===p?"standard":p,h=(0,o.Z)(e,At),v=(0,r.Z)({},e,{disabled:l,variant:f,error:u}),m=function(e){var t=e.classes,n=e.variant,r=e.disabled,o=e.multiple,i=e.open,a={select:["select",n,r&&"disabled",o&&"multiple",e.error&&"error"],icon:["icon","icon".concat((0,D.Z)(n)),i&&"iconOpen",r&&"disabled"]};return(0,s.Z)(a,Nt,t)}(v);return(0,Z.jsxs)(i.Fragment,{children:[(0,Z.jsx)(Bt,(0,r.Z)({ownerState:v,className:(0,a.Z)(m.select,n),disabled:l,ref:d||t},h)),e.multiple?null:(0,Z.jsx)(zt,{as:c,ownerState:v,className:m.icon})]})})),Vt=n(98278);function Ht(e){return(0,q.Z)("MuiSelect",e)}var qt,Kt=(0,H.Z)("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),_t=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],Yt=(0,u.ZP)("div",{name:"MuiSelect",slot:"Select",overridesResolver:function(e,t){var n=e.ownerState;return[(0,d.Z)({},"&.".concat(Kt.select),t.select),(0,d.Z)({},"&.".concat(Kt.select),t[n.variant]),(0,d.Z)({},"&.".concat(Kt.error),t.error),(0,d.Z)({},"&.".concat(Kt.multiple),t.multiple)]}})(Ft,(0,d.Z)({},"&.".concat(Kt.select),{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"})),Ut=(0,u.ZP)("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat((0,D.Z)(n.variant))],n.open&&t.iconOpen]}})(Lt),Xt=(0,u.ZP)("input",{shouldForwardProp:function(e){return(0,u.Dz)(e)&&"classes"!==e},name:"MuiSelect",slot:"NativeInput",overridesResolver:function(e,t){return t.nativeInput}})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function Gt(e,t){return"object"===typeof t&&null!==t?e===t:String(e)===String(t)}function $t(e){return null==e||"string"===typeof e&&!e.trim()}var Jt=i.forwardRef((function(e,t){var n,u=e["aria-describedby"],c=e["aria-label"],d=e.autoFocus,p=e.autoWidth,f=e.children,m=e.className,b=e.defaultOpen,g=e.defaultValue,y=e.disabled,x=e.displayEmpty,w=e.error,S=void 0!==w&&w,C=e.IconComponent,k=e.inputRef,P=e.labelId,M=e.MenuProps,R=void 0===M?{}:M,E=e.multiple,T=e.name,j=e.onBlur,N=e.onChange,I=e.onClose,A=e.onFocus,F=e.onOpen,B=e.open,L=e.readOnly,z=e.renderValue,W=e.SelectDisplayProps,H=void 0===W?{}:W,q=e.tabIndex,K=e.value,_=e.variant,Y=void 0===_?"standard":_,U=(0,o.Z)(e,_t),X=(0,Vt.Z)({controlled:K,default:g,name:"Select"}),G=(0,h.Z)(X,2),$=G[0],J=G[1],Q=(0,Vt.Z)({controlled:B,default:b,name:"Select"}),ee=(0,h.Z)(Q,2),te=ee[0],ne=ee[1],re=i.useRef(null),oe=i.useRef(null),ie=i.useState(null),ae=(0,h.Z)(ie,2),se=ae[0],le=ae[1],ue=i.useRef(null!=B).current,ce=i.useState(),de=(0,h.Z)(ce,2),pe=de[0],fe=de[1],he=(0,O.Z)(t,k),ve=i.useCallback((function(e){oe.current=e,e&&le(e)}),[]),me=null==se?void 0:se.parentNode;i.useImperativeHandle(he,(function(){return{focus:function(){oe.current.focus()},node:re.current,value:$}}),[$]),i.useEffect((function(){b&&te&&se&&!ue&&(fe(p?null:me.clientWidth),oe.current.focus())}),[se,p]),i.useEffect((function(){d&&oe.current.focus()}),[d]),i.useEffect((function(){if(P){var e=(0,Ue.Z)(oe.current).getElementById(P);if(e){var t=function(){getSelection().isCollapsed&&oe.current.focus()};return e.addEventListener("click",t),function(){e.removeEventListener("click",t)}}}}),[P]);var be,ge,ye=function(e,t){e?F&&F(t):I&&I(t),ue||(fe(p?null:me.clientWidth),ne(e))},xe=i.Children.toArray(f),Ze=function(e){return function(t){var n;if(t.currentTarget.hasAttribute("tabindex")){if(E){n=Array.isArray($)?$.slice():[];var r=$.indexOf(e.props.value);-1===r?n.push(e.props.value):n.splice(r,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),$!==n&&(J(n),N)){var o=t.nativeEvent||t,i=new o.constructor(o.type,o);Object.defineProperty(i,"target",{writable:!0,value:{value:n,name:T}}),N(i,e)}E||ye(!1,t)}}},we=null!==se&&te;delete U["aria-invalid"];var Se=[],Ce=!1;(V({value:$})||x)&&(z?be=z($):Ce=!0);var ke=xe.map((function(e){if(!i.isValidElement(e))return null;var t;if(E){if(!Array.isArray($))throw new Error((0,v.Z)(2));(t=$.some((function(t){return Gt(t,e.props.value)})))&&Ce&&Se.push(e.props.children)}else(t=Gt($,e.props.value))&&Ce&&(ge=e.props.children);return t&&!0,i.cloneElement(e,{"aria-selected":t?"true":"false",onClick:Ze(e),onKeyUp:function(t){" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})}));Ce&&(be=E?0===Se.length?null:Se.reduce((function(e,t,n){return e.push(t),n96?f:h},m=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!==typeof r&&n&&(r=e.__emotion_forwardProp),r},b=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,c.hC)(t,n,r),(0,p.L)((function(){return(0,c.My)(t,n,r)})),null},g=function e(t,n){var r,o,i=t.__emotion_real===t,l=i&&t.__emotion_base||t;void 0!==n&&(r=n.label,o=n.target);var p=m(t,n,i),f=p||v(l),h=!f("as");return function(){var g=arguments,y=i&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==r&&y.push("label:"+r+";"),null==g[0]||void 0===g[0].raw)y.push.apply(y,g);else{0,y.push(g[0][0]);for(var x=g.length,Z=1;Z0&&void 0!==arguments[0]?arguments[0]:{},t=e.themeId,n=e.defaultTheme,s=void 0===n?T:n,l=e.rootShouldForwardProp,u=void 0===l?E:l,c=e.slotShouldForwardProp,d=void 0===c?E:c,p=function(e){return(0,k.Z)((0,a.Z)({},e,{theme:D((0,a.Z)({},e,{defaultTheme:s,themeId:t}))}))};return p.__mui_systemSx=!0,function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}(e,(function(e){return e.filter((function(e){return!(null!=e&&e.__mui_systemSx)}))}));var l,c,f=n.name,h=n.slot,v=n.skipVariantsResolver,m=n.skipSx,b=n.overridesResolver,x=void 0===b?(l=(c=h)?c.charAt(0).toLowerCase()+c.slice(1):c)?function(e,t){return t[l]}:null:b,Z=(0,i.Z)(n,P),w=void 0!==v?v:h&&"Root"!==h&&"root"!==h||!1,S=m||!1;var C=E;"Root"===h||"root"===h?C=u:h?C=d:function(e){return"string"===typeof e&&e.charCodeAt(0)>96}(e)&&(C=void 0);var k=function(e,t){return g(e,t)}(e,(0,a.Z)({shouldForwardProp:C,label:undefined},Z)),T=function(n){for(var i=arguments.length,l=new Array(i>1?i-1:0),u=1;u0){var m=new Array(v).fill("");(h=[].concat((0,o.Z)(n),(0,o.Z)(m))).raw=[].concat((0,o.Z)(n.raw),(0,o.Z)(m))}var b=k.apply(void 0,[h].concat((0,o.Z)(d)));return e.muiName&&(b.muiName=e.muiName),b};return k.withConfig&&(T.withConfig=k.withConfig),T}}({themeId:N.Z,defaultTheme:j.Z,rootShouldForwardProp:I}),B=F},13967:function(e,t,n){n.d(t,{Z:function(){return a}});n(72791);var r=n(30418),o=n(36482),i=n(988);function a(){var e=(0,r.Z)(o.Z);return e[i.Z]||e}},93736:function(e,t,n){n.d(t,{Z:function(){return s}});var r=n(33073),o=n(30418);var i=n(36482),a=n(988);function s(e){return function(e){var t=e.props,n=e.name,i=e.defaultTheme,a=e.themeId,s=(0,o.Z)(i);return a&&(s=s[a]||s),(0,r.Z)({theme:s,name:n,props:t})}({props:e.props,name:e.name,defaultTheme:i.Z,themeId:a.Z})}},4999:function(e,t,n){n.d(t,{C:function(){return o},n:function(){return r}});var r=function(e){return e.scrollTop};function o(e,t){var n,r,o=e.timeout,i=e.easing,a=e.style,s=void 0===a?{}:a;return{duration:null!=(n=s.transitionDuration)?n:"number"===typeof o?o:o[t.mode]||0,easing:null!=(r=s.transitionTimingFunction)?r:"object"===typeof i?i[t.mode]:i,delay:s.transitionDelay}}},95193:function(e,t,n){var r;n.d(t,{Z:function(){return p}});var o=n(29439),i=n(72791),a=n(69120),s=n(33073),l=n(40162);function u(e,t,n,r,a){var s=i.useState((function(){return a&&n?n(e).matches:r?r(e).matches:t})),u=(0,o.Z)(s,2),c=u[0],d=u[1];return(0,l.Z)((function(){var t=!0;if(n){var r=n(e),o=function(){t&&d(r.matches)};return o(),r.addListener(o),function(){t=!1,r.removeListener(o)}}}),[e,n]),c}var c=(r||(r=n.t(i,2))).useSyncExternalStore;function d(e,t,n,r,a){var s=i.useCallback((function(){return t}),[t]),l=i.useMemo((function(){if(a&&n)return function(){return n(e).matches};if(null!==r){var t=r(e).matches;return function(){return t}}return s}),[s,e,r,a,n]),u=i.useMemo((function(){if(null===n)return[s,function(){return function(){}}];var t=n(e);return[function(){return t.matches},function(e){return t.addListener(e),function(){t.removeListener(e)}}]}),[s,n,e]),d=(0,o.Z)(u,2),p=d[0],f=d[1];return c(f,p,l)}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,a.Z)(),r="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,o=(0,s.Z)({name:"MuiUseMediaQuery",props:t,theme:n}),i=o.defaultMatches,l=void 0!==i&&i,p=o.matchMedia,f=void 0===p?r?window.matchMedia:null:p,h=o.ssrMatchMedia,v=void 0===h?null:h,m=o.noSsr,b=void 0!==m&&m;var g="function"===typeof e?e(n):e;return g=g.replace(/^@media( ?)/m,""),(void 0!==c?d:u)(g,l,f,v,b)}},14036:function(e,t,n){var r=n(31122);t.Z=r.Z},76189:function(e,t,n){n.d(t,{Z:function(){return y}});var r=n(87462),o=n(72791),i=n(63366),a=n(63733),s=n(94419),l=n(14036),u=n(93736),c=n(40724),d=n(75878),p=n(21217);function f(e){return(0,p.Z)("MuiSvgIcon",e)}(0,d.Z)("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);var h=n(80184),v=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],m=(0,c.ZP)("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"inherit"!==n.color&&t["color".concat((0,l.Z)(n.color))],t["fontSize".concat((0,l.Z)(n.fontSize))]]}})((function(e){var t,n,r,o,i,a,s,l,u,c,d,p,f,h=e.theme,v=e.ownerState;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:v.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:null==(t=h.transitions)||null==(n=t.create)?void 0:n.call(t,"fill",{duration:null==(r=h.transitions)||null==(r=r.duration)?void 0:r.shorter}),fontSize:{inherit:"inherit",small:(null==(o=h.typography)||null==(i=o.pxToRem)?void 0:i.call(o,20))||"1.25rem",medium:(null==(a=h.typography)||null==(s=a.pxToRem)?void 0:s.call(a,24))||"1.5rem",large:(null==(l=h.typography)||null==(u=l.pxToRem)?void 0:u.call(l,35))||"2.1875rem"}[v.fontSize],color:null!=(c=null==(d=(h.vars||h).palette)||null==(d=d[v.color])?void 0:d.main)?c:{action:null==(p=(h.vars||h).palette)||null==(p=p.action)?void 0:p.active,disabled:null==(f=(h.vars||h).palette)||null==(f=f.action)?void 0:f.disabled,inherit:void 0}[v.color]}})),b=o.forwardRef((function(e,t){var n=(0,u.Z)({props:e,name:"MuiSvgIcon"}),c=n.children,d=n.className,p=n.color,b=void 0===p?"inherit":p,g=n.component,y=void 0===g?"svg":g,x=n.fontSize,Z=void 0===x?"medium":x,w=n.htmlColor,S=n.inheritViewBox,C=void 0!==S&&S,k=n.titleAccess,P=n.viewBox,M=void 0===P?"0 0 24 24":P,R=(0,i.Z)(n,v),E=o.isValidElement(c)&&"svg"===c.type,T=(0,r.Z)({},n,{color:b,component:y,fontSize:Z,instanceFontSize:e.fontSize,inheritViewBox:C,viewBox:M,hasSvgAsChild:E}),D={};C||(D.viewBox=M);var O=function(e){var t=e.color,n=e.fontSize,r=e.classes,o={root:["root","inherit"!==t&&"color".concat((0,l.Z)(t)),"fontSize".concat((0,l.Z)(n))]};return(0,s.Z)(o,f,r)}(T);return(0,h.jsxs)(m,(0,r.Z)({as:y,className:(0,a.Z)(O.root,d),focusable:"false",color:w,"aria-hidden":!k||void 0,role:k?"img":void 0,ref:t},D,R,E&&c.props,{ownerState:T,children:[E?c.props.children:c,k?(0,h.jsx)("title",{children:k}):null]}))}));b.muiName="SvgIcon";var g=b;function y(e,t){function n(n,o){return(0,h.jsx)(g,(0,r.Z)({"data-testid":"".concat(t,"Icon"),ref:o},n,{children:e}))}return n.muiName=g.muiName,o.memo(o.forwardRef(n))}},83199:function(e,t,n){var r=n(82254);t.Z=r.Z},54421:function(e,t,n){n.r(t),n.d(t,{capitalize:function(){return o.Z},createChainedFunction:function(){return i},createSvgIcon:function(){return a.Z},debounce:function(){return s.Z},deprecatedPropType:function(){return l},isMuiElement:function(){return u.Z},ownerDocument:function(){return c.Z},ownerWindow:function(){return d.Z},requirePropFactory:function(){return p},setRef:function(){return f},unstable_ClassNameGenerator:function(){return Z},unstable_useEnhancedEffect:function(){return h.Z},unstable_useId:function(){return v.Z},unsupportedProp:function(){return m},useControlled:function(){return b.Z},useEventCallback:function(){return g.Z},useForkRef:function(){return y.Z},useIsFocusVisible:function(){return x.Z}});var r=n(55902),o=n(14036),i=n(78949).Z,a=n(76189),s=n(83199);var l=function(e,t){return function(){return null}},u=n(19103),c=n(98301),d=n(17602);n(87462);var p=function(e,t){return function(){return null}},f=n(62971).Z,h=n(40162),v=n(67384);var m=function(e,t,n,r,o){return null},b=n(98278),g=n(89683),y=n(42071),x=n(79771),Z={configure:function(e){r.Z.configure(e)}}},19103:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(72791);var o=function(e,t){var n,o;return r.isValidElement(e)&&-1!==t.indexOf(null!=(n=e.type.muiName)?n:null==(o=e.type)||null==(o=o._payload)||null==(o=o.value)?void 0:o.muiName)}},98301:function(e,t,n){var r=n(84913);t.Z=r.Z},17602:function(e,t,n){var r=n(65202);t.Z=r.Z},98278:function(e,t,n){var r=n(88637);t.Z=r.Z},40162:function(e,t,n){var r=n(62876);t.Z=r.Z},89683:function(e,t,n){var r=n(97054);t.Z=r.Z},42071:function(e,t,n){var r=n(6117);t.Z=r.Z},67384:function(e,t,n){var r=n(18252);t.Z=r.Z},79771:function(e,t,n){n.d(t,{Z:function(){return p}});var r,o=n(72791),i=!0,a=!1,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function l(e){e.metaKey||e.altKey||e.ctrlKey||(i=!0)}function u(){i=!1}function c(){"hidden"===this.visibilityState&&a&&(i=!0)}function d(e){var t=e.target;try{return t.matches(":focus-visible")}catch(n){}return i||function(e){var t=e.type,n=e.tagName;return!("INPUT"!==n||!s[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}var p=function(){var e=o.useCallback((function(e){var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",l,!0),t.addEventListener("mousedown",u,!0),t.addEventListener("pointerdown",u,!0),t.addEventListener("touchstart",u,!0),t.addEventListener("visibilitychange",c,!0))}),[]),t=o.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!d(e)&&(t.current=!0,!0)},onBlur:function(){return!!t.current&&(a=!0,window.clearTimeout(r),r=window.setTimeout((function(){a=!1}),100),t.current=!1,!0)},ref:e}}},11135:function(e,t,n){function r(e){return e}n.d(t,{Z:function(){return r}})},92393:function(e,t,n){n.d(t,{Z:function(){return xn}});var r=n(87462),o=n(63366),i=n(72791),a=n(62110),s=n.n(a),l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u="object"===("undefined"===typeof window?"undefined":l(window))&&"object"===("undefined"===typeof document?"undefined":l(document))&&9===document.nodeType,c=n(43144),d=n(94578),p=n(97326),f={}.constructor;function h(e){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map(h);if(e.constructor!==f)return e;var t={};for(var n in e)t[n]=h(e[n]);return t}function v(e,t,n){void 0===e&&(e="unnamed");var r=n.jss,o=h(t),i=r.plugins.onCreateRule(e,o,n);return i||(e[0],null)}var m=function(e,t){for(var n="",r=0;r<+~=|^:(),"'`\s])/g,w="undefined"!==typeof CSS&&CSS.escape,S=function(e){return w?w(e):e.replace(Z,"\\$1")},C=function(){function e(e,t,n){this.type="style",this.isProcessed=!1;var r=n.sheet,o=n.Renderer;this.key=e,this.options=n,this.style=t,r?this.renderer=r.renderer:o&&(this.renderer=new o)}return e.prototype.prop=function(e,t,n){if(void 0===t)return this.style[e];var r=!!n&&n.force;if(!r&&this.style[e]===t)return this;var o=t;n&&!1===n.process||(o=this.options.jss.plugins.onChangeValue(t,e,this));var i=null==o||!1===o,a=e in this.style;if(i&&!a&&!r)return this;var s=i&&a;if(s?delete this.style[e]:this.style[e]=o,this.renderable&&this.renderer)return s?this.renderer.removeProperty(this.renderable,e):this.renderer.setProperty(this.renderable,e,o),this;var l=this.options.sheet;return l&&l.attached,this},e}(),k=function(e){function t(t,n,r){var o;o=e.call(this,t,n,r)||this;var i=r.selector,a=r.scoped,s=r.sheet,l=r.generateId;return i?o.selectorText=i:!1!==a&&(o.id=l((0,p.Z)((0,p.Z)(o)),s),o.selectorText="."+S(o.id)),o}(0,d.Z)(t,e);var n=t.prototype;return n.applyTo=function(e){var t=this.renderer;if(t){var n=this.toJSON();for(var r in n)t.setProperty(e,r,n[r])}return this},n.toJSON=function(){var e={};for(var t in this.style){var n=this.style[t];"object"!==typeof n?e[t]=n:Array.isArray(n)&&(e[t]=b(n))}return e},n.toString=function(e){var t=this.options.sheet,n=!!t&&t.options.link?(0,r.Z)({},e,{allowEmpty:!0}):e;return x(this.selectorText,this.style,n)},(0,c.Z)(t,[{key:"selector",set:function(e){if(e!==this.selectorText){this.selectorText=e;var t=this.renderer,n=this.renderable;if(n&&t)t.setSelector(n,e)||t.replaceRule(n,this)}},get:function(){return this.selectorText}}]),t}(C),P={onCreateRule:function(e,t,n){return"@"===e[0]||n.parent&&"keyframes"===n.parent.type?null:new k(e,t,n)}},M={indent:1,children:!0},R=/@([\w-]+)/,E=function(){function e(e,t,n){this.type="conditional",this.isProcessed=!1,this.key=e;var o=e.match(R);for(var i in this.at=o?o[1]:"unknown",this.query=n.name||"@"+this.at,this.options=n,this.rules=new Q((0,r.Z)({},n,{parent:this})),t)this.rules.add(i,t[i]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.indexOf=function(e){return this.rules.indexOf(e)},t.addRule=function(e,t,n){var r=this.rules.add(e,t,n);return r?(this.options.jss.plugins.onProcessRule(r),r):null},t.replaceRule=function(e,t,n){var r=this.rules.replace(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.toString=function(e){void 0===e&&(e=M);var t=g(e).linebreak;if(null==e.indent&&(e.indent=M.indent),null==e.children&&(e.children=M.children),!1===e.children)return this.query+" {}";var n=this.rules.toString(e);return n?this.query+" {"+t+n+t+"}":""},e}(),T=/@container|@media|@supports\s+/,D={onCreateRule:function(e,t,n){return T.test(e)?new E(e,t,n):null}},O={indent:1,children:!0},j=/@keyframes\s+([\w-]+)/,N=function(){function e(e,t,n){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var o=e.match(j);o&&o[1]?this.name=o[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=n;var i=n.scoped,a=n.sheet,s=n.generateId;for(var l in this.id=!1===i?this.name:S(s(this,a)),this.rules=new Q((0,r.Z)({},n,{parent:this})),t)this.rules.add(l,t[l],(0,r.Z)({},n,{parent:this}));this.rules.process()}return e.prototype.toString=function(e){void 0===e&&(e=O);var t=g(e).linebreak;if(null==e.indent&&(e.indent=O.indent),null==e.children&&(e.children=O.children),!1===e.children)return this.at+" "+this.id+" {}";var n=this.rules.toString(e);return n&&(n=""+t+n+t),this.at+" "+this.id+" {"+n+"}"},e}(),I=/@keyframes\s+/,A=/\$([\w-]+)/g,F=function(e,t){return"string"===typeof e?e.replace(A,(function(e,n){return n in t?t[n]:e})):e},B=function(e,t,n){var r=e[t],o=F(r,n);o!==r&&(e[t]=o)},L={onCreateRule:function(e,t,n){return"string"===typeof e&&I.test(e)?new N(e,t,n):null},onProcessStyle:function(e,t,n){return"style"===t.type&&n?("animation-name"in e&&B(e,"animation-name",n.keyframes),"animation"in e&&B(e,"animation",n.keyframes),e):e},onChangeValue:function(e,t,n){var r=n.options.sheet;if(!r)return e;switch(t){case"animation":case"animation-name":return F(e,r.keyframes);default:return e}}},z=function(e){function t(){return e.apply(this,arguments)||this}return(0,d.Z)(t,e),t.prototype.toString=function(e){var t=this.options.sheet,n=!!t&&t.options.link?(0,r.Z)({},e,{allowEmpty:!0}):e;return x(this.key,this.style,n)},t}(C),W={onCreateRule:function(e,t,n){return n.parent&&"keyframes"===n.parent.type?new z(e,t,n):null}},V=function(){function e(e,t,n){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=e,this.style=t,this.options=n}return e.prototype.toString=function(e){var t=g(e).linebreak;if(Array.isArray(this.style)){for(var n="",r=0;r=this.index)t.push(e);else for(var r=0;rn)return void t.splice(r,0,e)},t.reset=function(){this.registry=[]},t.remove=function(e){var t=this.registry.indexOf(e);this.registry.splice(t,1)},t.toString=function(e){for(var t=void 0===e?{}:e,n=t.attached,r=(0,o.Z)(t,["attached"]),i=g(r).linebreak,a="",s=0;s-1?r.substr(0,o-1):r;e.style.setProperty(t,i,o>-1?"important":"")}}catch(a){return!1}return!0},de=function(e,t){try{e.attributeStyleMap?e.attributeStyleMap.delete(t):e.style.removeProperty(t)}catch(n){}},pe=function(e,t){return e.selectorText=t,e.selectorText===t},fe=le((function(){return document.querySelector("head")}));function he(e){var t=re.registry;if(t.length>0){var n=function(e,t){for(var n=0;nt.index&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e);if(n&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element};if(n=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.attached&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e),n&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element.nextSibling}}var r=e.insertionPoint;if(r&&"string"===typeof r){var o=function(e){for(var t=fe(),n=0;nn?n:t},ge=function(){function e(e){this.getPropertyValue=ue,this.setProperty=ce,this.removeProperty=de,this.setSelector=pe,this.hasInsertedRules=!1,this.cssRules=[],e&&re.add(e),this.sheet=e;var t=this.sheet?this.sheet.options:{},n=t.media,r=t.meta,o=t.element;this.element=o||function(){var e=document.createElement("style");return e.textContent="\n",e}(),this.element.setAttribute("data-jss",""),n&&this.element.setAttribute("media",n),r&&this.element.setAttribute("data-meta",r);var i=ve();i&&this.element.setAttribute("nonce",i)}var t=e.prototype;return t.attach=function(){if(!this.element.parentNode&&this.sheet){!function(e,t){var n=t.insertionPoint,r=he(t);if(!1!==r&&r.parent)r.parent.insertBefore(e,r.node);else if(n&&"number"===typeof n.nodeType){var o=n,i=o.parentNode;i&&i.insertBefore(e,o.nextSibling)}else fe().appendChild(e)}(this.element,this.sheet.options);var e=Boolean(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&e&&(this.hasInsertedRules=!1,this.deploy())}},t.detach=function(){if(this.sheet){var e=this.element.parentNode;e&&e.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent="\n")}},t.deploy=function(){var e=this.sheet;e&&(e.options.link?this.insertRules(e.rules):this.element.textContent="\n"+e.toString()+"\n")},t.insertRules=function(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.baseClasses,n=e.newClasses;e.Component;if(!n)return t;var o=(0,r.Z)({},t);return Object.keys(n).forEach((function(e){n[e]&&(o[e]="".concat(t[e]," ").concat(n[e]))})),o}var ke={set:function(e,t,n,r){var o=e.get(t);o||(o=new Map,e.set(t,o)),o.set(n,r)},get:function(e,t,n){var r=e.get(t);return r?r.get(n):void 0},delete:function(e,t,n){e.get(t).delete(n)}},Pe=ke,Me=n(29598);function Re(){var e,t=(0,Me.Z)();return null!=(e=null==t?void 0:t.$$material)?e:t}var Ee=n(20919),Te=["checked","disabled","error","focused","focusVisible","required","expanded","selected"];var De=Date.now(),Oe="fnValues"+De,je="fnStyle"+ ++De,Ne=function(){return{onCreateRule:function(e,t,n){if("function"!==typeof t)return null;var r=v(e,{},n);return r[je]=t,r},onProcessStyle:function(e,t){if(Oe in t||je in t)return e;var n={};for(var r in e){var o=e[r];"function"===typeof o&&(delete e[r],n[r]=o)}return t[Oe]=n,e},onUpdate:function(e,t,n,r){var o=t,i=o[je];i&&(o.style=i(e)||{});var a=o[Oe];if(a)for(var s in a)o.prop(s,a[s](e),r)}}},Ie="@global",Ae="@global ",Fe=function(){function e(e,t,n){for(var o in this.type="global",this.at=Ie,this.isProcessed=!1,this.key=e,this.options=n,this.rules=new Q((0,r.Z)({},n,{parent:this})),t)this.rules.add(o,t[o]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.addRule=function(e,t,n){var r=this.rules.add(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.replaceRule=function(e,t,n){var r=this.rules.replace(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.indexOf=function(e){return this.rules.indexOf(e)},t.toString=function(e){return this.rules.toString(e)},e}(),Be=function(){function e(e,t,n){this.type="global",this.at=Ie,this.isProcessed=!1,this.key=e,this.options=n;var o=e.substr(8);this.rule=n.jss.createRule(o,t,(0,r.Z)({},n,{parent:this}))}return e.prototype.toString=function(e){return this.rule?this.rule.toString(e):""},e}(),Le=/\s*,\s*/g;function ze(e,t){for(var n=e.split(Le),r="",o=0;o-1){var o=Ft[e];if(!Array.isArray(o))return vt.js+Zt(o)in t&&vt.css+o;if(!r)return!1;for(var i=0;it?1:-1:e.length-t.length};return{onProcessStyle:function(t,n){if("style"!==n.type)return t;for(var r={},o=Object.keys(t).sort(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},t=e.disableGlobal,n=void 0!==t&&t,r=e.productionPrefix,o=void 0===r?"jss":r,i=e.seed,a=void 0===i?"":i,s=""===a?"":"".concat(a,"-"),l=0,u=function(){return l+=1};return function(e,t){var r=t.options.name;if(r&&0===r.indexOf("Mui")&&!t.options.link&&!n){if(-1!==Te.indexOf(e.key))return"Mui-".concat(e.key);var i="".concat(s).concat(r,"-").concat(e.key);return t.options.theme[Ee.Z]&&""===a?"".concat(i,"-").concat(u()):i}return"".concat(s).concat(o).concat(u())}}(),an={disableGeneration:!1,generateClassName:on,jss:rn,sheetsCache:null,sheetsManager:new Map,sheetsRegistry:null},sn=i.createContext(an);var ln=-1e9;var un=n(82466),cn=n(31122),dn=["variant"];function pn(e){return 0===e.length}function fn(e){var t="function"===typeof e;return{create:function(n,i){var a;try{a=t?e(n):e}catch(c){throw c}if(!i||!n.components||!n.components[i]||!n.components[i].styleOverrides&&!n.components[i].variants)return a;var s=n.components[i].styleOverrides||{},l=n.components[i].variants||[],u=(0,r.Z)({},a);return Object.keys(s).forEach((function(e){u[e]=(0,un.Z)(u[e]||{},s[e])})),l.forEach((function(e){var t=function(e){var t=e.variant,n=(0,o.Z)(e,dn),r=t||"";return Object.keys(n).sort().forEach((function(t){r+="color"===t?pn(r)?e[t]:(0,cn.Z)(e[t]):"".concat(pn(r)?t:(0,cn.Z)(t)).concat((0,cn.Z)(e[t].toString()))})),r}(e.props);u[t]=(0,un.Z)(u[t]||{},e.style)})),u},options:{}}}var hn={},vn=["name","classNamePrefix","Component","defaultTheme"];function mn(e,t){var n=e.state,o=e.theme,i=e.stylesOptions,a=e.stylesCreator,s=e.name;if(!i.disableGeneration){var l=Pe.get(i.sheetsManager,a,o);l||(l={refs:0,staticSheet:null,dynamicStyles:null},Pe.set(i.sheetsManager,a,o,l));var u=(0,r.Z)({},a.options,i,{theme:o,flip:"boolean"===typeof i.flip?i.flip:"rtl"===o.direction});u.generateId=u.serverGenerateClassName||u.generateClassName;var c=i.sheetsRegistry;if(0===l.refs){var d;i.sheetsCache&&(d=Pe.get(i.sheetsCache,a,o));var p=a.create(o,s);d||((d=i.jss.createStyleSheet(p,(0,r.Z)({link:!1},u))).attach(),i.sheetsCache&&Pe.set(i.sheetsCache,a,o,d)),c&&c.add(d),l.staticSheet=d,l.dynamicStyles=Se(p)}if(l.dynamicStyles){var f=i.jss.createStyleSheet(l.dynamicStyles,(0,r.Z)({link:!0},u));f.update(t),f.attach(),n.dynamicSheet=f,n.classes=Ce({baseClasses:l.staticSheet.classes,newClasses:f.classes}),c&&c.add(f)}else n.classes=l.staticSheet.classes;l.refs+=1}}function bn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.name,a=t.classNamePrefix,s=t.Component,l=t.defaultTheme,u=void 0===l?hn:l,c=(0,o.Z)(t,vn),d=fn(e),p=n||a||"makeStyles";d.options={index:ln+=1,name:n,meta:p,classNamePrefix:p};return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Re()||u,o=(0,r.Z)({},i.useContext(sn),c),a=i.useRef(),l=i.useRef();!function(e,t){var n,r=i.useRef([]),o=i.useMemo((function(){return{}}),t);r.current!==o&&(r.current=o,n=e()),i.useEffect((function(){return function(){n&&n()}}),[o])}((function(){var r={name:n,state:{},stylesCreator:d,stylesOptions:o,theme:t};return mn(r,e),l.current=!1,a.current=r,function(){!function(e){var t=e.state,n=e.theme,r=e.stylesOptions,o=e.stylesCreator;if(!r.disableGeneration){var i=Pe.get(r.sheetsManager,o,n);i.refs-=1;var a=r.sheetsRegistry;0===i.refs&&(Pe.delete(r.sheetsManager,o,n),r.jss.removeStyleSheet(i.staticSheet),a&&a.remove(i.staticSheet)),t.dynamicSheet&&(r.jss.removeStyleSheet(t.dynamicSheet),a&&a.remove(t.dynamicSheet))}}(r)}}),[t,d]),i.useEffect((function(){l.current&&function(e,t){var n=e.state;n.dynamicSheet&&n.dynamicSheet.update(t)}(a.current,e),l.current=!0}));var p=function(e,t,n){var r=e.state;if(e.stylesOptions.disableGeneration)return t||{};r.cacheClasses||(r.cacheClasses={value:null,lastProp:null,lastJSS:{}});var o=!1;return r.classes!==r.cacheClasses.lastJSS&&(r.cacheClasses.lastJSS=r.classes,o=!0),t!==r.cacheClasses.lastProp&&(r.cacheClasses.lastProp=t,o=!0),o&&(r.cacheClasses.value=Ce({baseClasses:r.cacheClasses.lastJSS,newClasses:t,Component:n})),r.cacheClasses.value}(a.current,e.classes,s);return p}}var gn=["defaultTheme","withTheme","name"],yn=["classes"],xn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var a=t.defaultTheme,l=t.withTheme,u=void 0!==l&&l,c=t.name,d=(0,o.Z)(t,gn);var p=c,f=bn(e,(0,r.Z)({defaultTheme:a,Component:n,name:c||n.displayName,classNamePrefix:p},d)),h=i.forwardRef((function(e,t){var i,s=(0,o.Z)(e,yn),l=f((0,r.Z)({},n.defaultProps,e)),d=s;return("string"===typeof c||u)&&(i=Re()||a,c&&(d=function(e){var t=e.theme,n=e.name,o=e.props;if(!t||!t.components||!t.components[n]||!t.components[n].defaultProps)return o;var i,a=(0,r.Z)({},o),s=t.components[n].defaultProps;for(i in s)void 0===a[i]&&(a[i]=s[i]);return a}({theme:i,name:c,props:s})),u&&!d.theme&&(d.theme=i)),(0,nn.jsx)(n,(0,r.Z)({ref:t,classes:l},d))}));return s()(h,n),h}}},78519:function(e,t,n){n.d(t,{Z:function(){return c}});var r=n(93433),o=n(87462),i=n(63366),a=n(82466),s=n(87416),l=["sx"],u=function(e){var t,n,r={systemProps:{},otherProps:{}},o=null!=(t=null==e||null==(n=e.theme)?void 0:n.unstable_sxConfig)?t:s.Z;return Object.keys(e).forEach((function(t){o[t]?r.systemProps[t]=e[t]:r.otherProps[t]=e[t]})),r};function c(e){var t,n=e.sx,s=(0,i.Z)(e,l),c=u(s),d=c.systemProps,p=c.otherProps;return t=Array.isArray(n)?[d].concat((0,r.Z)(n)):"function"===typeof n?function(){var e=n.apply(void 0,arguments);return(0,a.P)(e)?(0,o.Z)({},d,e):d}:(0,o.Z)({},d,n),(0,o.Z)({},p,{sx:t})}},30418:function(e,t,n){var r=n(85080),o=n(69120),i=(0,r.Z)();t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(0,o.Z)(e)}},33073:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(35735);function o(e){var t=e.theme,n=e.name,o=e.props;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?(0,r.Z)(t.components[n].defaultProps,o):o}},55902:function(e,t){var n=function(e){return e},r=function(){var e=n;return{configure:function(t){e=t},generate:function(t){return e(t)},reset:function(){e=n}}}();t.Z=r},94419:function(e,t,n){function r(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r={};return Object.keys(e).forEach((function(o){r[o]=e[o].reduce((function(e,r){if(r){var o=t(r);""!==o&&e.push(o),n&&n[r]&&e.push(n[r])}return e}),[]).join(" ")})),r}n.d(t,{Z:function(){return r}})},78949:function(e,t,n){function r(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:166;function r(){for(var r=this,o=arguments.length,i=new Array(o),a=0;a2&&void 0!==arguments[2]?arguments[2]:"Mui",i=o[t];return i?"".concat(n,"-").concat(i):"".concat(r.Z.generate(e),"-").concat(t)}},75878:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(21217);function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Mui",o={};return t.forEach((function(t){o[t]=(0,r.Z)(e,t,n)})),o}},57137:function(e,t,n){function r(e){var t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}n.d(t,{Z:function(){return r}})},84913:function(e,t,n){function r(e){return e&&e.ownerDocument||document}n.d(t,{Z:function(){return r}})},65202:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(84913);function o(e){return(0,r.Z)(e).defaultView||window}},35735:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(87462);function o(e,t){var n=(0,r.Z)({},t);return Object.keys(e).forEach((function(i){if(i.toString().match(/^(components|slots)$/))n[i]=(0,r.Z)({},e[i],n[i]);else if(i.toString().match(/^(componentsProps|slotProps)$/)){var a=e[i]||{},s=t[i];n[i]={},s&&Object.keys(s)?a&&Object.keys(a)?(n[i]=(0,r.Z)({},s),Object.keys(a).forEach((function(e){n[i][e]=o(a[e],s[e])}))):n[i]=s:n[i]=a}else void 0===n[i]&&(n[i]=e[i])})),n}},62971:function(e,t,n){function r(e,t){"function"===typeof e?e(t):e&&(e.current=t)}n.d(t,{Z:function(){return r}})},88637:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(29439),o=n(72791);function i(e){var t=e.controlled,n=e.default,i=(e.name,e.state,o.useRef(void 0!==t).current),a=o.useState(n),s=(0,r.Z)(a,2),l=s[0],u=s[1];return[i?t:l,o.useCallback((function(e){i||u(e)}),[])]}},62876:function(e,t,n){var r=n(72791),o="undefined"!==typeof window?r.useLayoutEffect:r.useEffect;t.Z=o},97054:function(e,t,n){var r=n(72791),o=n(62876);t.Z=function(e){var t=r.useRef(e);return(0,o.Z)((function(){t.current=e})),r.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}},6117:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(72791),o=n(62971);function i(){for(var e=arguments.length,t=new Array(e),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};if(!e||e<=0)return[];if("string"===typeof e&&!Number.isNaN(Number(e))||"number"===typeof e)return[n["spacing-xs-".concat(String(e))]];var r=[];return t.forEach((function(t){var o=e[t];Number(o)>0&&r.push(n["spacing-".concat(t,"-").concat(String(o))])})),r}(a,u,t));var d=[];return u.forEach((function(e){var r=n[e];r&&d.push(t["grid-".concat(e,"-").concat(String(r))])})),[t.root,r&&t.container,i&&t.item,l&&t.zeroMinWidth].concat((0,j.Z)(c),["row"!==o&&t["direction-xs-".concat(String(o))],"wrap"!==s&&t["wrap-xs-".concat(String(s))]],d)}})((function(e){var t=e.ownerState;return(0,r.Z)({boxSizing:"border-box"},t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},t.item&&{margin:0},t.zeroMinWidth&&{minWidth:0},"wrap"!==t.wrap&&{flexWrap:t.wrap})}),(function(e){var t=e.theme,n=e.ownerState,r=(0,I.P$)({values:n.direction,breakpoints:t.breakpoints.values});return(0,I.k9)({theme:t},r,(function(e){var t={flexDirection:e};return 0===e.indexOf("column")&&(t["& > .".concat(W.item)]={maxWidth:"none"}),t}))}),(function(e){var t=e.theme,n=e.ownerState,r=n.container,o=n.rowSpacing,i={};if(r&&0!==o){var a,s=(0,I.P$)({values:o,breakpoints:t.breakpoints.values});"object"===typeof s&&(a=q({breakpoints:t.breakpoints.values,values:s})),i=(0,I.k9)({theme:t},s,(function(e,n){var r,o=t.spacing(e);return"0px"!==o?(0,y.Z)({marginTop:"-".concat(H(o))},"& > .".concat(W.item),{paddingTop:H(o)}):null!=(r=a)&&r.includes(n)?{}:(0,y.Z)({marginTop:0},"& > .".concat(W.item),{paddingTop:0})}))}return i}),(function(e){var t=e.theme,n=e.ownerState,r=n.container,o=n.columnSpacing,i={};if(r&&0!==o){var a,s=(0,I.P$)({values:o,breakpoints:t.breakpoints.values});"object"===typeof s&&(a=q({breakpoints:t.breakpoints.values,values:s})),i=(0,I.k9)({theme:t},s,(function(e,n){var r,o=t.spacing(e);return"0px"!==o?(0,y.Z)({width:"calc(100% + ".concat(H(o),")"),marginLeft:"-".concat(H(o))},"& > .".concat(W.item),{paddingLeft:H(o)}):null!=(r=a)&&r.includes(n)?{}:(0,y.Z)({width:"100%",marginLeft:0},"& > .".concat(W.item),{paddingLeft:0})}))}return i}),(function(e){var t,n=e.theme,o=e.ownerState;return n.breakpoints.keys.reduce((function(e,i){var a={};if(o[i]&&(t=o[i]),!t)return e;if(!0===t)a={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if("auto"===t)a={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{var s=(0,I.P$)({values:o.columns,breakpoints:n.breakpoints.values}),l="object"===typeof s?s[i]:s;if(void 0===l||null===l)return e;var u="".concat(Math.round(t/l*1e8)/1e6,"%"),c={};if(o.container&&o.item&&0!==o.columnSpacing){var d=n.spacing(o.columnSpacing);if("0px"!==d){var p="calc(".concat(u," + ").concat(H(d),")");c={flexBasis:p,maxWidth:p}}}a=(0,r.Z)({flexBasis:u,flexGrow:0,maxWidth:u},c)}return 0===n.breakpoints.values[i]?Object.assign(e,a):e[n.breakpoints.up(i)]=a,e}),{})}));var _=function(e){var t=e.classes,n=e.container,r=e.direction,o=e.item,i=e.spacing,a=e.wrap,s=e.zeroMinWidth,l=e.breakpoints,u=[];n&&(u=function(e,t){if(!e||e<=0)return[];if("string"===typeof e&&!Number.isNaN(Number(e))||"number"===typeof e)return["spacing-xs-".concat(String(e))];var n=[];return t.forEach((function(t){var r=e[t];if(Number(r)>0){var o="spacing-".concat(t,"-").concat(String(r));n.push(o)}})),n}(i,l));var c=[];l.forEach((function(t){var n=e[t];n&&c.push("grid-".concat(t,"-").concat(String(n)))}));var d={root:["root",n&&"container",o&&"item",s&&"zeroMinWidth"].concat((0,j.Z)(u),["row"!==r&&"direction-xs-".concat(String(r)),"wrap"!==a&&"wrap-xs-".concat(String(a))],c)};return(0,Z.Z)(d,L,t)},Y=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiGrid"}),s=(0,F.Z)().breakpoints,l=(0,A.Z)(n),u=l.className,c=l.columns,d=l.columnSpacing,p=l.component,f=void 0===p?"div":p,h=l.container,v=void 0!==h&&h,m=l.direction,b=void 0===m?"row":m,g=l.item,y=void 0!==g&&g,x=l.rowSpacing,Z=l.spacing,w=void 0===Z?0:Z,S=l.wrap,C=void 0===S?"wrap":S,k=l.zeroMinWidth,P=void 0!==k&&k,M=(0,o.Z)(l,V),R=x||w,T=d||w,D=i.useContext(B),O=v?c||12:D,j={},I=(0,r.Z)({},M);s.keys.forEach((function(e){null!=M[e]&&(j[e]=M[e],delete I[e])}));var L=(0,r.Z)({},l,{columns:O,container:v,direction:b,item:y,rowSpacing:R,columnSpacing:T,wrap:C,zeroMinWidth:P,spacing:w},j,{breakpoints:s.keys}),z=_(L);return(0,E.jsx)(B.Provider,{value:O,children:(0,E.jsx)(K,(0,r.Z)({ownerState:L,className:(0,N.Z)(z.root,u),as:f,ref:t},I))})})),U=Y,X=n(12065),G=n(29439),$=n(42071),J=n(89683),Q=n(79771),ee=n(30168),te=n(97326),ne=n(94578),re=n(95545);function oe(e,t){var n=Object.create(null);return e&&i.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,i.isValidElement)(e)?t(e):e}(e)})),n}function ie(e,t,n){return null!=n[t]?n[t]:e.props[t]}function ae(e,t,n){var r=oe(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,o=Object.create(null),i=[];for(var a in e)a in t?i.length&&(o[a]=i,i=[]):i.push(a);var s={};for(var l in t){if(o[l])for(r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=t.pulsate,o=void 0!==r&&r,i=t.center,a=void 0===i?l||t.pulsate:i,s=t.fakeElement,u=void 0!==s&&s;if("mousedown"===(null==e?void 0:e.type)&&y.current)y.current=!1;else{"touchstart"===(null==e?void 0:e.type)&&(y.current=!0);var c,d,p,f=u?null:w.current,h=f?f.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(a||void 0===e||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(h.width/2),d=Math.round(h.height/2);else{var v=e.touches&&e.touches.length>0?e.touches[0]:e,m=v.clientX,b=v.clientY;c=Math.round(m-h.left),d=Math.round(b-h.top)}if(a)(p=Math.sqrt((2*Math.pow(h.width,2)+Math.pow(h.height,2))/3))%2===0&&(p+=1);else{var g=2*Math.max(Math.abs((f?f.clientWidth:0)-c),c)+2,C=2*Math.max(Math.abs((f?f.clientHeight:0)-d),d)+2;p=Math.sqrt(Math.pow(g,2)+Math.pow(C,2))}null!=e&&e.touches?null===Z.current&&(Z.current=function(){S({pulsate:o,rippleX:c,rippleY:d,rippleSize:p,cb:n})},x.current=setTimeout((function(){Z.current&&(Z.current(),Z.current=null)}),80)):S({pulsate:o,rippleX:c,rippleY:d,rippleSize:p,cb:n})}}),[l,S]),k=i.useCallback((function(){C({},{pulsate:!0})}),[C]),P=i.useCallback((function(e,t){if(clearTimeout(x.current),"touchend"===(null==e?void 0:e.type)&&Z.current)return Z.current(),Z.current=null,void(x.current=setTimeout((function(){P(e,t)})));Z.current=null,m((function(e){return e.length>0?e.slice(1):e})),g.current=t}),[]);return i.useImperativeHandle(t,(function(){return{pulsate:k,start:C,stop:P}}),[k,C,P]),(0,E.jsx)(ke,(0,r.Z)({className:(0,N.Z)(xe.root,c.root,d),ref:w},p,{children:(0,E.jsx)(ue,{component:null,exit:!0,children:v})}))})),Re=Me;function Ee(e){return(0,k.Z)("MuiButtonBase",e)}var Te,De=(0,P.Z)("MuiButtonBase",["root","disabled","focusVisible"]),Oe=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],je=(0,x.ZP)("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:function(e,t){return t.root}})((Te={display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"}},(0,y.Z)(Te,"&.".concat(De.disabled),{pointerEvents:"none",cursor:"default"}),(0,y.Z)(Te,"@media print",{colorAdjust:"exact"}),Te)),Ne=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiButtonBase"}),s=n.action,l=n.centerRipple,u=void 0!==l&&l,c=n.children,d=n.className,p=n.component,f=void 0===p?"button":p,h=n.disabled,v=void 0!==h&&h,m=n.disableRipple,b=void 0!==m&&m,g=n.disableTouchRipple,y=void 0!==g&&g,x=n.focusRipple,w=void 0!==x&&x,S=n.LinkComponent,C=void 0===S?"a":S,k=n.onBlur,P=n.onClick,M=n.onContextMenu,R=n.onDragLeave,T=n.onFocus,D=n.onFocusVisible,O=n.onKeyDown,j=n.onKeyUp,I=n.onMouseDown,A=n.onMouseLeave,F=n.onMouseUp,B=n.onTouchEnd,L=n.onTouchMove,z=n.onTouchStart,W=n.tabIndex,V=void 0===W?0:W,H=n.TouchRippleProps,q=n.touchRippleRef,K=n.type,_=(0,o.Z)(n,Oe),Y=i.useRef(null),U=i.useRef(null),X=(0,$.Z)(U,q),ee=(0,Q.Z)(),te=ee.isFocusVisibleRef,ne=ee.onFocus,re=ee.onBlur,oe=ee.ref,ie=i.useState(!1),ae=(0,G.Z)(ie,2),se=ae[0],le=ae[1];v&&se&&le(!1),i.useImperativeHandle(s,(function(){return{focusVisible:function(){le(!0),Y.current.focus()}}}),[]);var ue=i.useState(!1),ce=(0,G.Z)(ue,2),de=ce[0],pe=ce[1];i.useEffect((function(){pe(!0)}),[]);var fe=de&&!b&&!v;function he(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:y;return(0,J.Z)((function(r){return t&&t(r),!n&&U.current&&U.current[e](r),!0}))}i.useEffect((function(){se&&w&&!b&&de&&U.current.pulsate()}),[b,w,se,de]);var ve=he("start",I),me=he("stop",M),be=he("stop",R),ge=he("stop",F),ye=he("stop",(function(e){se&&e.preventDefault(),A&&A(e)})),xe=he("start",z),Ze=he("stop",B),we=he("stop",L),Se=he("stop",(function(e){re(e),!1===te.current&&le(!1),k&&k(e)}),!1),Ce=(0,J.Z)((function(e){Y.current||(Y.current=e.currentTarget),ne(e),!0===te.current&&(le(!0),D&&D(e)),T&&T(e)})),ke=function(){var e=Y.current;return f&&"button"!==f&&!("A"===e.tagName&&e.href)},Pe=i.useRef(!1),Me=(0,J.Z)((function(e){w&&!Pe.current&&se&&U.current&&" "===e.key&&(Pe.current=!0,U.current.stop(e,(function(){U.current.start(e)}))),e.target===e.currentTarget&&ke()&&" "===e.key&&e.preventDefault(),O&&O(e),e.target===e.currentTarget&&ke()&&"Enter"===e.key&&!v&&(e.preventDefault(),P&&P(e))})),Te=(0,J.Z)((function(e){w&&" "===e.key&&U.current&&se&&!e.defaultPrevented&&(Pe.current=!1,U.current.stop(e,(function(){U.current.pulsate(e)}))),j&&j(e),P&&e.target===e.currentTarget&&ke()&&" "===e.key&&!e.defaultPrevented&&P(e)})),De=f;"button"===De&&(_.href||_.to)&&(De=C);var Ne={};"button"===De?(Ne.type=void 0===K?"button":K,Ne.disabled=v):(_.href||_.to||(Ne.role="button"),v&&(Ne["aria-disabled"]=v));var Ie=(0,$.Z)(t,oe,Y);var Ae=(0,r.Z)({},n,{centerRipple:u,component:f,disabled:v,disableRipple:b,disableTouchRipple:y,focusRipple:w,tabIndex:V,focusVisible:se}),Fe=function(e){var t=e.disabled,n=e.focusVisible,r=e.focusVisibleClassName,o=e.classes,i={root:["root",t&&"disabled",n&&"focusVisible"]},a=(0,Z.Z)(i,Ee,o);return n&&r&&(a.root+=" ".concat(r)),a}(Ae);return(0,E.jsxs)(je,(0,r.Z)({as:De,className:(0,N.Z)(Fe.root,d),ownerState:Ae,onBlur:Se,onClick:P,onContextMenu:me,onFocus:Ce,onKeyDown:Me,onKeyUp:Te,onMouseDown:ve,onMouseLeave:ye,onMouseUp:ge,onDragLeave:be,onTouchEnd:Ze,onTouchMove:we,onTouchStart:xe,ref:Ie,tabIndex:v?-1:V,type:K},Ne,_,{children:[c,fe?(0,E.jsx)(Re,(0,r.Z)({ref:X,center:u},H)):null]}))})),Ie=Ne,Ae=n(14036);function Fe(e){return(0,k.Z)("MuiIconButton",e)}var Be=(0,P.Z)("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),Le=["edge","children","className","color","disabled","disableFocusRipple","size"],ze=(0,x.ZP)(Ie,{name:"MuiIconButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"default"!==n.color&&t["color".concat((0,Ae.Z)(n.color))],n.edge&&t["edge".concat((0,Ae.Z)(n.edge))],t["size".concat((0,Ae.Z)(n.size))]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({textAlign:"center",flex:"0 0 auto",fontSize:t.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(t.vars||t).palette.action.active,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest})},!n.disableRipple&&{"&:hover":{backgroundColor:t.vars?"rgba(".concat(t.vars.palette.action.activeChannel," / ").concat(t.vars.palette.action.hoverOpacity,")"):(0,X.Fq)(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"start"===n.edge&&{marginLeft:"small"===n.size?-3:-12},"end"===n.edge&&{marginRight:"small"===n.size?-3:-12})}),(function(e){var t,n=e.theme,o=e.ownerState,i=null==(t=(n.vars||n).palette)?void 0:t[o.color];return(0,r.Z)({},"inherit"===o.color&&{color:"inherit"},"inherit"!==o.color&&"default"!==o.color&&(0,r.Z)({color:null==i?void 0:i.main},!o.disableRipple&&{"&:hover":(0,r.Z)({},i&&{backgroundColor:n.vars?"rgba(".concat(i.mainChannel," / ").concat(n.vars.palette.action.hoverOpacity,")"):(0,X.Fq)(i.main,n.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),"small"===o.size&&{padding:5,fontSize:n.typography.pxToRem(18)},"large"===o.size&&{padding:12,fontSize:n.typography.pxToRem(28)},(0,y.Z)({},"&.".concat(Be.disabled),{backgroundColor:"transparent",color:(n.vars||n).palette.action.disabled}))})),We=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiIconButton"}),i=n.edge,s=void 0!==i&&i,l=n.children,u=n.className,c=n.color,d=void 0===c?"default":c,p=n.disabled,f=void 0!==p&&p,h=n.disableFocusRipple,v=void 0!==h&&h,m=n.size,b=void 0===m?"medium":m,g=(0,o.Z)(n,Le),y=(0,r.Z)({},n,{edge:s,color:d,disabled:f,disableFocusRipple:v,size:b}),x=function(e){var t=e.classes,n=e.disabled,r=e.color,o=e.edge,i=e.size,a={root:["root",n&&"disabled","default"!==r&&"color".concat((0,Ae.Z)(r)),o&&"edge".concat((0,Ae.Z)(o)),"size".concat((0,Ae.Z)(i))]};return(0,Z.Z)(a,Fe,t)}(y);return(0,E.jsx)(ze,(0,r.Z)({className:(0,N.Z)(x.root,u),centerRipple:!0,focusRipple:!v,disabled:f,ref:t,ownerState:y},g,{children:l}))})),Ve=n(76189),He=(0,Ve.Z)((0,E.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),qe=(0,Ve.Z)((0,E.jsx)("path",{d:"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"}),"ArrowLeft"),Ke=(0,Ve.Z)((0,E.jsx)("path",{d:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"}),"ArrowRight"),_e=(0,Ve.Z)((0,E.jsx)("path",{d:"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"}),"Calendar"),Ye=(0,Ve.Z)((0,E.jsxs)(i.Fragment,{children:[(0,E.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,E.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Clock"),Ue=(0,Ve.Z)((0,E.jsx)("path",{d:"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"}),"DateRange"),Xe=(0,Ve.Z)((0,E.jsx)("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),"Pen"),Ge=(0,Ve.Z)((0,E.jsxs)(i.Fragment,{children:[(0,E.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,E.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Time");function $e(e){return(0,k.Z)("MuiPickersToolbar",e)}var Je=(0,P.Z)("MuiPickersToolbar",["root","content","penIconButton","penIconButtonLandscape"]),Qe=(0,x.ZP)("div",{name:"MuiPickersToolbar",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"space-between",padding:t.spacing(2,3)},n.isLandscape&&{height:"auto",maxWidth:160,padding:16,justifyContent:"flex-start",flexWrap:"wrap"})})),et=(0,x.ZP)(U,{name:"MuiPickersToolbar",slot:"Content",overridesResolver:function(e,t){return t.content}})((function(e){var t=e.ownerState;return(0,r.Z)({flex:1},!t.isLandscape&&{alignItems:"center"})})),tt=(0,x.ZP)(We,{name:"MuiPickersToolbar",slot:"PenIconButton",overridesResolver:function(e,t){return[(0,y.Z)({},"&.".concat(Je.penIconButtonLandscape),t.penIconButtonLandscape),t.penIconButton]}})({}),nt=function(e){return"clock"===e?(0,E.jsx)(Ye,{color:"inherit"}):(0,E.jsx)(_e,{color:"inherit"})},rt=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiPickersToolbar"}),r=n.children,o=n.className,i=n.getMobileKeyboardInputViewButtonText,s=n.isLandscape,l=n.isMobileKeyboardViewOpen,u=n.landscapeDirection,c=void 0===u?"column":u,d=n.toggleMobileKeyboardView,f=n.toolbarTitle,h=n.viewType,v=void 0===h?"calendar":h,m=n,b=p(),g=function(e){var t=e.classes,n={root:["root"],content:["content"],penIconButton:["penIconButton",e.isLandscape&&"penIconButtonLandscape"]};return(0,Z.Z)(n,$e,t)}(m);return(0,E.jsxs)(Qe,{ref:t,className:S(g.root,o),ownerState:m,children:[(0,E.jsx)(C.Z,{color:"text.secondary",variant:"overline",children:f}),(0,E.jsxs)(et,{container:!0,justifyContent:"space-between",className:g.content,ownerState:m,direction:s?c:"row",alignItems:s?"flex-start":"flex-end",children:[r,(0,E.jsx)(tt,{onClick:d,className:g.penIconButton,ownerState:m,color:"inherit","aria-label":i?i(l,v):b.inputModeToggleButtonAriaLabel(l,v),children:l?nt(v):(0,E.jsx)(Xe,{color:"inherit"})})]})]})})),ot=n(35735);function it(e){return(0,k.Z)("MuiButton",e)}var at=(0,P.Z)("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]);var st=i.createContext({});var lt=i.createContext(void 0),ut=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],ct=function(e){return(0,r.Z)({},"small"===e.size&&{"& > *:nth-of-type(1)":{fontSize:18}},"medium"===e.size&&{"& > *:nth-of-type(1)":{fontSize:20}},"large"===e.size&&{"& > *:nth-of-type(1)":{fontSize:22}})},dt=(0,x.ZP)(Ie,{shouldForwardProp:function(e){return(0,x.FO)(e)||"classes"===e},name:"MuiButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["".concat(n.variant).concat((0,Ae.Z)(n.color))],t["size".concat((0,Ae.Z)(n.size))],t["".concat(n.variant,"Size").concat((0,Ae.Z)(n.size))],"inherit"===n.color&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})((function(e){var t,n,o,i=e.theme,a=e.ownerState,s="light"===i.palette.mode?i.palette.grey[300]:i.palette.grey[800],l="light"===i.palette.mode?i.palette.grey.A100:i.palette.grey[700];return(0,r.Z)({},i.typography.button,(t={minWidth:64,padding:"6px 16px",borderRadius:(i.vars||i).shape.borderRadius,transition:i.transitions.create(["background-color","box-shadow","border-color","color"],{duration:i.transitions.duration.short}),"&:hover":(0,r.Z)({textDecoration:"none",backgroundColor:i.vars?"rgba(".concat(i.vars.palette.text.primaryChannel," / ").concat(i.vars.palette.action.hoverOpacity,")"):(0,X.Fq)(i.palette.text.primary,i.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"text"===a.variant&&"inherit"!==a.color&&{backgroundColor:i.vars?"rgba(".concat(i.vars.palette[a.color].mainChannel," / ").concat(i.vars.palette.action.hoverOpacity,")"):(0,X.Fq)(i.palette[a.color].main,i.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"outlined"===a.variant&&"inherit"!==a.color&&{border:"1px solid ".concat((i.vars||i).palette[a.color].main),backgroundColor:i.vars?"rgba(".concat(i.vars.palette[a.color].mainChannel," / ").concat(i.vars.palette.action.hoverOpacity,")"):(0,X.Fq)(i.palette[a.color].main,i.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"contained"===a.variant&&{backgroundColor:i.vars?i.vars.palette.Button.inheritContainedHoverBg:l,boxShadow:(i.vars||i).shadows[4],"@media (hover: none)":{boxShadow:(i.vars||i).shadows[2],backgroundColor:(i.vars||i).palette.grey[300]}},"contained"===a.variant&&"inherit"!==a.color&&{backgroundColor:(i.vars||i).palette[a.color].dark,"@media (hover: none)":{backgroundColor:(i.vars||i).palette[a.color].main}}),"&:active":(0,r.Z)({},"contained"===a.variant&&{boxShadow:(i.vars||i).shadows[8]})},(0,y.Z)(t,"&.".concat(at.focusVisible),(0,r.Z)({},"contained"===a.variant&&{boxShadow:(i.vars||i).shadows[6]})),(0,y.Z)(t,"&.".concat(at.disabled),(0,r.Z)({color:(i.vars||i).palette.action.disabled},"outlined"===a.variant&&{border:"1px solid ".concat((i.vars||i).palette.action.disabledBackground)},"contained"===a.variant&&{color:(i.vars||i).palette.action.disabled,boxShadow:(i.vars||i).shadows[0],backgroundColor:(i.vars||i).palette.action.disabledBackground})),t),"text"===a.variant&&{padding:"6px 8px"},"text"===a.variant&&"inherit"!==a.color&&{color:(i.vars||i).palette[a.color].main},"outlined"===a.variant&&{padding:"5px 15px",border:"1px solid currentColor"},"outlined"===a.variant&&"inherit"!==a.color&&{color:(i.vars||i).palette[a.color].main,border:i.vars?"1px solid rgba(".concat(i.vars.palette[a.color].mainChannel," / 0.5)"):"1px solid ".concat((0,X.Fq)(i.palette[a.color].main,.5))},"contained"===a.variant&&{color:i.vars?i.vars.palette.text.primary:null==(n=(o=i.palette).getContrastText)?void 0:n.call(o,i.palette.grey[300]),backgroundColor:i.vars?i.vars.palette.Button.inheritContainedBg:s,boxShadow:(i.vars||i).shadows[2]},"contained"===a.variant&&"inherit"!==a.color&&{color:(i.vars||i).palette[a.color].contrastText,backgroundColor:(i.vars||i).palette[a.color].main},"inherit"===a.color&&{color:"inherit",borderColor:"currentColor"},"small"===a.size&&"text"===a.variant&&{padding:"4px 5px",fontSize:i.typography.pxToRem(13)},"large"===a.size&&"text"===a.variant&&{padding:"8px 11px",fontSize:i.typography.pxToRem(15)},"small"===a.size&&"outlined"===a.variant&&{padding:"3px 9px",fontSize:i.typography.pxToRem(13)},"large"===a.size&&"outlined"===a.variant&&{padding:"7px 21px",fontSize:i.typography.pxToRem(15)},"small"===a.size&&"contained"===a.variant&&{padding:"4px 10px",fontSize:i.typography.pxToRem(13)},"large"===a.size&&"contained"===a.variant&&{padding:"8px 22px",fontSize:i.typography.pxToRem(15)},a.fullWidth&&{width:"100%"})}),(function(e){var t;return e.ownerState.disableElevation&&(t={boxShadow:"none","&:hover":{boxShadow:"none"}},(0,y.Z)(t,"&.".concat(at.focusVisible),{boxShadow:"none"}),(0,y.Z)(t,"&:active",{boxShadow:"none"}),(0,y.Z)(t,"&.".concat(at.disabled),{boxShadow:"none"}),t)})),pt=(0,x.ZP)("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.startIcon,t["iconSize".concat((0,Ae.Z)(n.size))]]}})((function(e){var t=e.ownerState;return(0,r.Z)({display:"inherit",marginRight:8,marginLeft:-4},"small"===t.size&&{marginLeft:-2},ct(t))})),ft=(0,x.ZP)("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.endIcon,t["iconSize".concat((0,Ae.Z)(n.size))]]}})((function(e){var t=e.ownerState;return(0,r.Z)({display:"inherit",marginRight:-4,marginLeft:8},"small"===t.size&&{marginRight:-2},ct(t))})),ht=i.forwardRef((function(e,t){var n=i.useContext(st),s=i.useContext(lt),l=(0,ot.Z)(n,e),u=(0,a.Z)({props:l,name:"MuiButton"}),c=u.children,d=u.color,p=void 0===d?"primary":d,f=u.component,h=void 0===f?"button":f,v=u.className,m=u.disabled,b=void 0!==m&&m,g=u.disableElevation,y=void 0!==g&&g,x=u.disableFocusRipple,w=void 0!==x&&x,S=u.endIcon,C=u.focusVisibleClassName,k=u.fullWidth,P=void 0!==k&&k,M=u.size,R=void 0===M?"medium":M,T=u.startIcon,D=u.type,O=u.variant,j=void 0===O?"text":O,I=(0,o.Z)(u,ut),A=(0,r.Z)({},u,{color:p,component:h,disabled:b,disableElevation:y,disableFocusRipple:w,fullWidth:P,size:R,type:D,variant:j}),F=function(e){var t=e.color,n=e.disableElevation,o=e.fullWidth,i=e.size,a=e.variant,s=e.classes,l={root:["root",a,"".concat(a).concat((0,Ae.Z)(t)),"size".concat((0,Ae.Z)(i)),"".concat(a,"Size").concat((0,Ae.Z)(i)),"inherit"===t&&"colorInherit",n&&"disableElevation",o&&"fullWidth"],label:["label"],startIcon:["startIcon","iconSize".concat((0,Ae.Z)(i))],endIcon:["endIcon","iconSize".concat((0,Ae.Z)(i))]},u=(0,Z.Z)(l,it,s);return(0,r.Z)({},s,u)}(A),B=T&&(0,E.jsx)(pt,{className:F.startIcon,ownerState:A,children:T}),L=S&&(0,E.jsx)(ft,{className:F.endIcon,ownerState:A,children:S}),z=s||"";return(0,E.jsxs)(dt,(0,r.Z)({ownerState:A,className:(0,N.Z)(n.className,F.root,v,z),component:h,disabled:b,focusRipple:!w,focusVisibleClassName:(0,N.Z)(F.focusVisible,C),ref:t,type:D},I,{classes:F,children:[B,c,L]}))})),vt=["align","className","selected","typographyClassName","value","variant"],mt=(0,x.ZP)(ht,{name:"MuiPickersToolbarButton",slot:"Root",overridesResolver:function(e,t){return t.root}})({padding:0,minWidth:16,textTransform:"none"}),bt=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiPickersToolbarButton"}),i=n.align,s=n.className,l=n.selected,u=n.typographyClassName,c=n.value,d=n.variant,p=(0,o.Z)(n,vt),f=function(e){var t=e.classes;return(0,Z.Z)({root:["root"]},$e,t)}(n);return(0,E.jsx)(mt,(0,r.Z)({variant:"text",ref:t,className:S(s,f.root)},p,{children:(0,E.jsx)(O,{align:i,className:u,variant:d,value:c,selected:l})}))}));function gt(e){return(0,k.Z)("MuiDateTimePickerToolbar",e)}(0,P.Z)("MuiDateTimePickerToolbar",["root","dateContainer","timeContainer","separator"]);var yt=["ampm","parsedValue","isMobileKeyboardViewOpen","onChange","openView","setOpenView","toggleMobileKeyboardView","toolbarFormat","toolbarPlaceholder","toolbarTitle","views"],xt=(0,x.ZP)(rt,{name:"MuiDateTimePickerToolbar",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme;return(0,y.Z)({paddingLeft:16,paddingRight:16,justifyContent:"space-around",position:"relative"},"& .".concat(Je.penIconButton),(0,r.Z)({position:"absolute",top:8},"rtl"===t.direction?{left:8}:{right:8}))})),Zt=(0,x.ZP)("div",{name:"MuiDateTimePickerToolbar",slot:"DateContainer",overridesResolver:function(e,t){return t.dateContainer}})({display:"flex",flexDirection:"column",alignItems:"flex-start"}),wt=(0,x.ZP)("div",{name:"MuiDateTimePickerToolbar",slot:"TimeContainer",overridesResolver:function(e,t){return t.timeContainer}})({display:"flex"}),St=(0,x.ZP)(O,{name:"MuiDateTimePickerToolbar",slot:"Separator",overridesResolver:function(e,t){return t.separator}})({margin:"0 4px 0 2px",cursor:"default"});function Ct(e){var t,n=(0,a.Z)({props:e,name:"MuiDateTimePickerToolbar"}),s=n.ampm,l=n.parsedValue,u=n.isMobileKeyboardViewOpen,d=n.openView,f=n.setOpenView,h=n.toggleMobileKeyboardView,v=n.toolbarFormat,m=n.toolbarPlaceholder,b=void 0===m?"\u2013\u2013":m,y=n.toolbarTitle,x=n.views,w=(0,o.Z)(n,yt),S=n,C=c(),k=p(),P=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],dateContainer:["dateContainer"],timeContainer:["timeContainer"],separator:["separator"]},gt,t)}(S),M=null!=y?y:k.dateTimePickerDefaultToolbarTitle,R=i.useMemo((function(){return l?v?C.formatByString(l,v):C.format(l,"shortDate"):b}),[l,v,b,C]);return(0,E.jsxs)(xt,(0,r.Z)({toolbarTitle:M,isMobileKeyboardViewOpen:u,toggleMobileKeyboardView:h,className:P.root,viewType:g(d)},w,{isLandscape:!1,ownerState:S,children:[(0,E.jsxs)(Zt,{className:P.dateContainer,ownerState:S,children:[x.includes("year")&&(0,E.jsx)(bt,{tabIndex:-1,variant:"subtitle1",onClick:function(){return f("year")},selected:"year"===d,value:l?C.format(l,"year"):"\u2013"}),x.includes("day")&&(0,E.jsx)(bt,{tabIndex:-1,variant:"h4",onClick:function(){return f("day")},selected:"day"===d,value:R})]}),(0,E.jsxs)(wt,{className:P.timeContainer,ownerState:S,children:[x.includes("hours")&&(0,E.jsx)(bt,{variant:"h3",onClick:function(){return f("hours")},selected:"hours"===d,value:l?(t=l,s?C.format(t,"hours12h"):C.format(t,"hours24h")):"--"}),x.includes("minutes")&&(0,E.jsxs)(i.Fragment,{children:[(0,E.jsx)(St,{variant:"h3",value:":",className:P.separator,ownerState:S}),(0,E.jsx)(bt,{variant:"h3",onClick:function(){return f("minutes")},selected:"minutes"===d,value:l?C.format(l,"minutes"):"--"})]}),x.includes("seconds")&&(0,E.jsxs)(i.Fragment,{children:[(0,E.jsx)(St,{variant:"h3",value:":",className:P.separator,ownerState:S}),(0,E.jsx)(bt,{variant:"h3",onClick:function(){return f("seconds")},selected:"seconds"===d,value:l?C.format(l,"seconds"):"--"})]})]})]}))}var kt=i.createContext(null),Pt=n(13208),Mt=n(35527),Rt=n(6117),Et=n(62876),Tt=n(84913);function Dt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ot(e){return e instanceof Dt(e).Element||e instanceof Element}function jt(e){return e instanceof Dt(e).HTMLElement||e instanceof HTMLElement}function Nt(e){return"undefined"!==typeof ShadowRoot&&(e instanceof Dt(e).ShadowRoot||e instanceof ShadowRoot)}var It=Math.max,At=Math.min,Ft=Math.round;function Bt(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function Lt(){return!/^((?!chrome|android).)*safari/i.test(Bt())}function zt(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),o=1,i=1;t&&jt(e)&&(o=e.offsetWidth>0&&Ft(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&Ft(r.height)/e.offsetHeight||1);var a=(Ot(e)?Dt(e):window).visualViewport,s=!Lt()&&n,l=(r.left+(s&&a?a.offsetLeft:0))/o,u=(r.top+(s&&a?a.offsetTop:0))/i,c=r.width/o,d=r.height/i;return{width:c,height:d,top:u,right:l+c,bottom:u+d,left:l,x:l,y:u}}function Wt(e){var t=Dt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Vt(e){return e?(e.nodeName||"").toLowerCase():null}function Ht(e){return((Ot(e)?e.ownerDocument:e.document)||window.document).documentElement}function qt(e){return zt(Ht(e)).left+Wt(e).scrollLeft}function Kt(e){return Dt(e).getComputedStyle(e)}function _t(e){var t=Kt(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function Yt(e,t,n){void 0===n&&(n=!1);var r=jt(t),o=jt(t)&&function(e){var t=e.getBoundingClientRect(),n=Ft(t.width)/e.offsetWidth||1,r=Ft(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),i=Ht(t),a=zt(e,o,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&(("body"!==Vt(t)||_t(i))&&(s=function(e){return e!==Dt(e)&&jt(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:Wt(e);var t}(t)),jt(t)?((l=zt(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):i&&(l.x=qt(i))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function Ut(e){var t=zt(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Xt(e){return"html"===Vt(e)?e:e.assignedSlot||e.parentNode||(Nt(e)?e.host:null)||Ht(e)}function Gt(e){return["html","body","#document"].indexOf(Vt(e))>=0?e.ownerDocument.body:jt(e)&&_t(e)?e:Gt(Xt(e))}function $t(e,t){var n;void 0===t&&(t=[]);var r=Gt(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=Dt(r),a=o?[i].concat(i.visualViewport||[],_t(r)?r:[]):r,s=t.concat(a);return o?s:s.concat($t(Xt(a)))}function Jt(e){return["table","td","th"].indexOf(Vt(e))>=0}function Qt(e){return jt(e)&&"fixed"!==Kt(e).position?e.offsetParent:null}function en(e){for(var t=Dt(e),n=Qt(e);n&&Jt(n)&&"static"===Kt(n).position;)n=Qt(n);return n&&("html"===Vt(n)||"body"===Vt(n)&&"static"===Kt(n).position)?t:n||function(e){var t=/firefox/i.test(Bt());if(/Trident/i.test(Bt())&&jt(e)&&"fixed"===Kt(e).position)return null;var n=Xt(e);for(Nt(n)&&(n=n.host);jt(n)&&["html","body"].indexOf(Vt(n))<0;){var r=Kt(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var tn="top",nn="bottom",rn="right",on="left",an="auto",sn=[tn,nn,rn,on],ln="start",un="end",cn="clippingParents",dn="viewport",pn="popper",fn="reference",hn=sn.reduce((function(e,t){return e.concat([t+"-"+ln,t+"-"+un])}),[]),vn=[].concat(sn,[an]).reduce((function(e,t){return e.concat([t,t+"-"+ln,t+"-"+un])}),[]),mn=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function bn(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function gn(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}var yn={placement:"bottom",modifiers:[],strategy:"absolute"};function xn(){for(var e=arguments.length,t=new Array(e),n=0;n=0?"x":"y"}function Pn(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?Sn(o):null,a=o?Cn(o):null,s=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(i){case tn:t={x:s,y:n.y-r.height};break;case nn:t={x:s,y:n.y+n.height};break;case rn:t={x:n.x+n.width,y:l};break;case on:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var u=i?kn(i):null;if(null!=u){var c="y"===u?"height":"width";switch(a){case ln:t[u]=t[u]-(n[c]/2-r[c]/2);break;case un:t[u]=t[u]+(n[c]/2-r[c]/2)}}return t}var Mn={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Rn(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,p=a.x,f=void 0===p?0:p,h=a.y,v=void 0===h?0:h,m="function"===typeof c?c({x:f,y:v}):{x:f,y:v};f=m.x,v=m.y;var b=a.hasOwnProperty("x"),g=a.hasOwnProperty("y"),y=on,x=tn,Z=window;if(u){var w=en(n),S="clientHeight",C="clientWidth";if(w===Dt(n)&&"static"!==Kt(w=Ht(n)).position&&"absolute"===s&&(S="scrollHeight",C="scrollWidth"),o===tn||(o===on||o===rn)&&i===un)x=nn,v-=(d&&w===Z&&Z.visualViewport?Z.visualViewport.height:w[S])-r.height,v*=l?1:-1;if(o===on||(o===tn||o===nn)&&i===un)y=rn,f-=(d&&w===Z&&Z.visualViewport?Z.visualViewport.width:w[C])-r.width,f*=l?1:-1}var k,P=Object.assign({position:s},u&&Mn),M=!0===c?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:Ft(n*o)/o||0,y:Ft(r*o)/o||0}}({x:f,y:v},Dt(n)):{x:f,y:v};return f=M.x,v=M.y,l?Object.assign({},P,((k={})[x]=g?"0":"",k[y]=b?"0":"",k.transform=(Z.devicePixelRatio||1)<=1?"translate("+f+"px, "+v+"px)":"translate3d("+f+"px, "+v+"px, 0)",k)):Object.assign({},P,((t={})[x]=g?v+"px":"",t[y]=b?f+"px":"",t.transform="",t))}var En={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=vn.reduce((function(e,n){return e[n]=function(e,t,n){var r=Sn(e),o=[on,tn].indexOf(r)>=0?-1:1,i="function"===typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[on,rn].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],l=s.x,u=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}},Tn={left:"right",right:"left",bottom:"top",top:"bottom"};function Dn(e){return e.replace(/left|right|bottom|top/g,(function(e){return Tn[e]}))}var On={start:"end",end:"start"};function jn(e){return e.replace(/start|end/g,(function(e){return On[e]}))}function Nn(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Nt(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function In(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function An(e,t,n){return t===dn?In(function(e,t){var n=Dt(e),r=Ht(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,l=0;if(o){i=o.width,a=o.height;var u=Lt();(u||!u&&"fixed"===t)&&(s=o.offsetLeft,l=o.offsetTop)}return{width:i,height:a,x:s+qt(e),y:l}}(e,n)):Ot(t)?function(e,t){var n=zt(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):In(function(e){var t,n=Ht(e),r=Wt(e),o=null==(t=e.ownerDocument)?void 0:t.body,i=It(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=It(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+qt(e),l=-r.scrollTop;return"rtl"===Kt(o||n).direction&&(s+=It(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}(Ht(e)))}function Fn(e,t,n,r){var o="clippingParents"===t?function(e){var t=$t(Xt(e)),n=["absolute","fixed"].indexOf(Kt(e).position)>=0&&jt(e)?en(e):e;return Ot(n)?t.filter((function(e){return Ot(e)&&Nn(e,n)&&"body"!==Vt(e)})):[]}(e):[].concat(t),i=[].concat(o,[n]),a=i[0],s=i.reduce((function(t,n){var o=An(e,n,r);return t.top=It(o.top,t.top),t.right=At(o.right,t.right),t.bottom=At(o.bottom,t.bottom),t.left=It(o.left,t.left),t}),An(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Bn(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ln(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function zn(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,i=n.strategy,a=void 0===i?e.strategy:i,s=n.boundary,l=void 0===s?cn:s,u=n.rootBoundary,c=void 0===u?dn:u,d=n.elementContext,p=void 0===d?pn:d,f=n.altBoundary,h=void 0!==f&&f,v=n.padding,m=void 0===v?0:v,b=Bn("number"!==typeof m?m:Ln(m,sn)),g=p===pn?fn:pn,y=e.rects.popper,x=e.elements[h?g:p],Z=Fn(Ot(x)?x:x.contextElement||Ht(e.elements.popper),l,c,a),w=zt(e.elements.reference),S=Pn({reference:w,element:y,strategy:"absolute",placement:o}),C=In(Object.assign({},y,S)),k=p===pn?C:w,P={top:Z.top-k.top+b.top,bottom:k.bottom-Z.bottom+b.bottom,left:Z.left-k.left+b.left,right:k.right-Z.right+b.right},M=e.modifiersData.offset;if(p===pn&&M){var R=M[o];Object.keys(P).forEach((function(e){var t=[rn,nn].indexOf(e)>=0?1:-1,n=[tn,nn].indexOf(e)>=0?"y":"x";P[e]+=R[n]*t}))}return P}function Wn(e,t,n){return It(e,At(t,n))}var Vn={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0!==a&&a,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,h=n.tetherOffset,v=void 0===h?0:h,m=zn(t,{boundary:l,rootBoundary:u,padding:d,altBoundary:c}),b=Sn(t.placement),g=Cn(t.placement),y=!g,x=kn(b),Z="x"===x?"y":"x",w=t.modifiersData.popperOffsets,S=t.rects.reference,C=t.rects.popper,k="function"===typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,P="number"===typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),M=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,R={x:0,y:0};if(w){if(i){var E,T="y"===x?tn:on,D="y"===x?nn:rn,O="y"===x?"height":"width",j=w[x],N=j+m[T],I=j-m[D],A=f?-C[O]/2:0,F=g===ln?S[O]:C[O],B=g===ln?-C[O]:-S[O],L=t.elements.arrow,z=f&&L?Ut(L):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},V=W[T],H=W[D],q=Wn(0,S[O],z[O]),K=y?S[O]/2-A-q-V-P.mainAxis:F-q-V-P.mainAxis,_=y?-S[O]/2+A+q+H+P.mainAxis:B+q+H+P.mainAxis,Y=t.elements.arrow&&en(t.elements.arrow),U=Y?"y"===x?Y.clientTop||0:Y.clientLeft||0:0,X=null!=(E=null==M?void 0:M[x])?E:0,G=j+_-X,$=Wn(f?At(N,j+K-X-U):N,j,f?It(I,G):I);w[x]=$,R[x]=$-j}if(s){var J,Q="x"===x?tn:on,ee="x"===x?nn:rn,te=w[Z],ne="y"===Z?"height":"width",re=te+m[Q],oe=te-m[ee],ie=-1!==[tn,on].indexOf(b),ae=null!=(J=null==M?void 0:M[Z])?J:0,se=ie?re:te-S[ne]-C[ne]-ae+P.altAxis,le=ie?te+S[ne]+C[ne]-ae-P.altAxis:oe,ue=f&&ie?function(e,t,n){var r=Wn(e,t,n);return r>n?n:r}(se,te,le):Wn(f?se:re,te,f?le:oe);w[Z]=ue,R[Z]=ue-te}t.modifiersData[r]=R}},requiresIfExists:["offset"]};var Hn={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Sn(n.placement),l=kn(s),u=[on,rn].indexOf(s)>=0?"height":"width";if(i&&a){var c=function(e,t){return Bn("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ln(e,sn))}(o.padding,n),d=Ut(i),p="y"===l?tn:on,f="y"===l?nn:rn,h=n.rects.reference[u]+n.rects.reference[l]-a[l]-n.rects.popper[u],v=a[l]-n.rects.reference[l],m=en(i),b=m?"y"===l?m.clientHeight||0:m.clientWidth||0:0,g=h/2-v/2,y=c[p],x=b-d[u]-c[f],Z=b/2-d[u]/2+g,w=Wn(y,Z,x),S=l;n.modifiersData[r]=((t={})[S]=w,t.centerOffset=w-Z,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!==typeof r||(r=t.elements.popper.querySelector(r)))&&Nn(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function qn(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Kn(e){return[tn,rn,nn,on].some((function(t){return e[t]>=0}))}var _n=Zn({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=void 0===o||o,a=r.resize,s=void 0===a||a,l=Dt(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&u.forEach((function(e){e.addEventListener("scroll",n.update,wn)})),s&&l.addEventListener("resize",n.update,wn),function(){i&&u.forEach((function(e){e.removeEventListener("scroll",n.update,wn)})),s&&l.removeEventListener("resize",n.update,wn)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=Pn({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,l=void 0===s||s,u={placement:Sn(t.placement),variation:Cn(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Rn(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Rn(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},o=t.elements[e];jt(o)&&Vt(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],o=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});jt(r)&&Vt(r)&&(Object.assign(r.style,i),Object.keys(o).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]},En,{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,l=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,h=void 0===f||f,v=n.allowedAutoPlacements,m=t.options.placement,b=Sn(m),g=l||(b===m||!h?[Dn(m)]:function(e){if(Sn(e)===an)return[];var t=Dn(e);return[jn(e),t,jn(t)]}(m)),y=[m].concat(g).reduce((function(e,n){return e.concat(Sn(n)===an?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,u=void 0===l?vn:l,c=Cn(r),d=c?s?hn:hn.filter((function(e){return Cn(e)===c})):sn,p=d.filter((function(e){return u.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,n){return t[n]=zn(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[Sn(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:h,allowedAutoPlacements:v}):n)}),[]),x=t.rects.reference,Z=t.rects.popper,w=new Map,S=!0,C=y[0],k=0;k=0,T=E?"width":"height",D=zn(t,{placement:P,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),O=E?R?rn:on:R?nn:tn;x[T]>Z[T]&&(O=Dn(O));var j=Dn(O),N=[];if(i&&N.push(D[M]<=0),s&&N.push(D[O]<=0,D[j]<=0),N.every((function(e){return e}))){C=P,S=!1;break}w.set(P,N)}if(S)for(var I=function(e){var t=y.find((function(t){var n=w.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return C=t,"break"},A=h?3:1;A>0;A--){if("break"===I(A))break}t.placement!==C&&(t.modifiersData[r]._skip=!0,t.placement=C,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},Vn,Hn,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=zn(t,{elementContext:"reference"}),s=zn(t,{altBoundary:!0}),l=qn(a,r),u=qn(s,o,i),c=Kn(l),d=Kn(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}}]}),Yn=n(96174);function Un(e){return(0,k.Z)("MuiPopper",e)}(0,P.Z)("MuiPopper",["root"]);var Xn=n(69543),Gn={disableDefaultClasses:!1},$n=i.createContext(Gn);var Jn=["anchorEl","children","direction","disablePortal","modifiers","open","placement","popperOptions","popperRef","slotProps","slots","TransitionProps","ownerState"],Qn=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition","slotProps","slots"];function er(e){return"function"===typeof e?e():e}function tr(e){return void 0!==e.nodeType}var nr=function(){return(0,Z.Z)({root:["root"]},function(e){var t=i.useContext($n).disableDefaultClasses;return function(n){return t?"":e(n)}}(Un))},rr={},or=i.forwardRef((function(e,t){var n,a=e.anchorEl,s=e.children,l=e.direction,u=e.disablePortal,c=e.modifiers,d=e.open,p=e.placement,f=e.popperOptions,h=e.popperRef,v=e.slotProps,m=void 0===v?{}:v,b=e.slots,g=void 0===b?{}:b,y=e.TransitionProps,x=(0,o.Z)(e,Jn),Z=i.useRef(null),w=(0,Rt.Z)(Z,t),S=i.useRef(null),C=(0,Rt.Z)(S,h),k=i.useRef(C);(0,Et.Z)((function(){k.current=C}),[C]),i.useImperativeHandle(h,(function(){return S.current}),[]);var P=function(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(p,l),M=i.useState(P),R=(0,G.Z)(M,2),T=R[0],D=R[1],O=i.useState(er(a)),j=(0,G.Z)(O,2),N=j[0],I=j[1];i.useEffect((function(){S.current&&S.current.forceUpdate()})),i.useEffect((function(){a&&I(er(a))}),[a]),(0,Et.Z)((function(){if(N&&d){var e=[{name:"preventOverflow",options:{altBoundary:u}},{name:"flip",options:{altBoundary:u}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:function(e){var t=e.state;D(t.placement)}}];null!=c&&(e=e.concat(c)),f&&null!=f.modifiers&&(e=e.concat(f.modifiers));var t=_n(N,Z.current,(0,r.Z)({placement:P},f,{modifiers:e}));return k.current(t),function(){t.destroy(),k.current(null)}}}),[N,u,c,d,f,P]);var A={placement:T};null!==y&&(A.TransitionProps=y);var F=nr(),B=null!=(n=g.root)?n:"div",L=(0,Xn.y)({elementType:B,externalSlotProps:m.root,externalForwardedProps:x,additionalProps:{role:"tooltip",ref:w},ownerState:e,className:F.root});return(0,E.jsx)(B,(0,r.Z)({},L,{children:"function"===typeof s?s(A):s}))})),ir=i.forwardRef((function(e,t){var n,a=e.anchorEl,s=e.children,l=e.container,u=e.direction,c=void 0===u?"ltr":u,d=e.disablePortal,p=void 0!==d&&d,f=e.keepMounted,h=void 0!==f&&f,v=e.modifiers,m=e.open,b=e.placement,g=void 0===b?"bottom":b,y=e.popperOptions,x=void 0===y?rr:y,Z=e.popperRef,w=e.style,S=e.transition,C=void 0!==S&&S,k=e.slotProps,P=void 0===k?{}:k,M=e.slots,R=void 0===M?{}:M,T=(0,o.Z)(e,Qn),D=i.useState(!0),O=(0,G.Z)(D,2),j=O[0],N=O[1];if(!h&&!m&&(!C||j))return null;if(l)n=l;else if(a){var I=er(a);n=I&&tr(I)?(0,Tt.Z)(I).body:(0,Tt.Z)(null).body}var A=m||!h||C&&!j?void 0:"none",F=C?{in:m,onEnter:function(){N(!1)},onExited:function(){N(!0)}}:void 0;return(0,E.jsx)(Yn.h,{disablePortal:p,container:n,children:(0,E.jsx)(or,(0,r.Z)({anchorEl:a,direction:c,disablePortal:p,modifiers:v,ref:t,open:C?!j:m,placement:g,popperOptions:x,popperRef:Z,slotProps:P,slots:R},T,{style:(0,r.Z)({position:"fixed",top:0,left:0,display:A},w),TransitionProps:F,children:s}))})})),ar=n(69120),sr=["anchorEl","component","components","componentsProps","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","transition","slots","slotProps"],lr=(0,x.ZP)(ir,{name:"MuiPopper",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),ur=i.forwardRef((function(e,t){var n,i=(0,ar.Z)(),s=(0,a.Z)({props:e,name:"MuiPopper"}),l=s.anchorEl,u=s.component,c=s.components,d=s.componentsProps,p=s.container,f=s.disablePortal,h=s.keepMounted,v=s.modifiers,m=s.open,b=s.placement,g=s.popperOptions,y=s.popperRef,x=s.transition,Z=s.slots,w=s.slotProps,S=(0,o.Z)(s,sr),C=null!=(n=null==Z?void 0:Z.root)?n:null==c?void 0:c.Root,k=(0,r.Z)({anchorEl:l,container:p,disablePortal:f,keepMounted:h,modifiers:v,open:m,placement:b,popperOptions:g,popperRef:y,transition:x},S);return(0,E.jsx)(lr,(0,r.Z)({as:u,direction:null==i?void 0:i.direction,slots:{root:C},slotProps:null!=w?w:d},k,{ref:t}))})),cr=n(32080),dr=n(98301);function pr(e){return(0,k.Z)("MuiDialogActions",e)}(0,P.Z)("MuiDialogActions",["root","spacing"]);var fr=["className","disableSpacing"],hr=(0,x.ZP)("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.disableSpacing&&t.spacing]}})((function(e){var t=e.ownerState;return(0,r.Z)({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!t.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})})),vr=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiDialogActions"}),i=n.className,s=n.disableSpacing,l=void 0!==s&&s,u=(0,o.Z)(n,fr),c=(0,r.Z)({},n,{disableSpacing:l}),d=function(e){var t=e.classes,n={root:["root",!e.disableSpacing&&"spacing"]};return(0,Z.Z)(n,pr,t)}(c);return(0,E.jsx)(hr,(0,r.Z)({className:(0,N.Z)(d.root,i),ownerState:c,ref:t},u))})),mr=["onAccept","onClear","onCancel","onSetToday","actions"],br=function(e){var t=e.onAccept,n=e.onClear,a=e.onCancel,s=e.onSetToday,l=e.actions,u=(0,o.Z)(e,mr),c=i.useContext(kt),d=p(),f="function"===typeof l?l(c):l;if(null==f||0===f.length)return null;var h=null==f?void 0:f.map((function(e){switch(e){case"clear":return(0,E.jsx)(ht,{onClick:n,children:d.clearButtonLabel},e);case"cancel":return(0,E.jsx)(ht,{onClick:a,children:d.cancelButtonLabel},e);case"accept":return(0,E.jsx)(ht,{onClick:t,children:d.okButtonLabel},e);case"today":return(0,E.jsx)(ht,{onClick:s,children:d.todayButtonLabel},e);default:return null}}));return(0,E.jsx)(vr,(0,r.Z)({},u,{children:h}))};function gr(e){return(0,k.Z)("MuiPickersPopper",e)}(0,P.Z)("MuiPickersPopper",["root","paper"]);function yr(e,t){return Array.isArray(t)?t.every((function(t){return-1!==e.indexOf(t)})):-1!==e.indexOf(t)}var xr=function(e,t){return function(n){"Enter"!==n.key&&" "!==n.key||(e(n),n.preventDefault(),n.stopPropagation()),t&&t(n)}},Zr=function e(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:document).activeElement;return t?t.shadowRoot?e(t.shadowRoot):t:null},wr=["onClick","onTouchStart"],Sr=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],paper:["paper"]},gr,t)},Cr=(0,x.ZP)(ur,{name:"MuiPickersPopper",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{zIndex:e.theme.zIndex.modal}})),kr=(0,x.ZP)(Mt.Z,{name:"MuiPickersPopper",slot:"Paper",overridesResolver:function(e,t){return t.paper}})((function(e){var t=e.ownerState;return(0,r.Z)({transformOrigin:"top center",outline:0},"top"===t.placement&&{transformOrigin:"bottom center"})}));function Pr(e){var t,n=(0,a.Z)({props:e,name:"MuiPickersPopper"}),s=n.anchorEl,l=n.children,u=n.containerRef,c=void 0===u?null:u,d=n.onBlur,p=n.onClose,f=n.onClear,h=n.onAccept,v=n.onCancel,m=n.onSetToday,b=n.open,g=n.PopperProps,y=n.role,x=n.TransitionComponent,Z=void 0===x?Pt.Z:x,w=n.TrapFocusProps,S=n.PaperProps,C=void 0===S?{}:S,k=n.components,P=n.componentsProps;i.useEffect((function(){function e(e){!b||"Escape"!==e.key&&"Esc"!==e.key||p()}return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[p,b]);var M=i.useRef(null);i.useEffect((function(){"tooltip"!==y&&(b?M.current=Zr(document):M.current&&M.current instanceof HTMLElement&&setTimeout((function(){M.current instanceof HTMLElement&&M.current.focus()})))}),[b,y]);var R=function(e,t){var n=i.useRef(!1),r=i.useRef(!1),o=i.useRef(null),a=i.useRef(!1);i.useEffect((function(){if(e)return document.addEventListener("mousedown",t,!0),document.addEventListener("touchstart",t,!0),function(){document.removeEventListener("mousedown",t,!0),document.removeEventListener("touchstart",t,!0),a.current=!1};function t(){a.current=!0}}),[e]);var s=(0,J.Z)((function(e){if(a.current){var i=r.current;r.current=!1;var s=(0,dr.Z)(o.current);!o.current||"clientX"in e&&function(e,t){return t.documentElement.clientWidth-1:!s.documentElement.contains(e.target)||o.current.contains(e.target))||i||t(e))}})),l=function(){r.current=!0};return i.useEffect((function(){if(e){var t=(0,dr.Z)(o.current),r=function(){n.current=!0};return t.addEventListener("touchstart",s),t.addEventListener("touchmove",r),function(){t.removeEventListener("touchstart",s),t.removeEventListener("touchmove",r)}}}),[e,s]),i.useEffect((function(){if(e){var t=(0,dr.Z)(o.current);return t.addEventListener("click",s),function(){t.removeEventListener("click",s),r.current=!1}}}),[e,s]),[o,l,l]}(b,null!=d?d:p),T=(0,G.Z)(R,3),D=T[0],O=T[1],j=T[2],N=i.useRef(null),I=(0,$.Z)(N,c),A=(0,$.Z)(I,D),F=n,B=Sr(F),L=C.onClick,z=C.onTouchStart,W=(0,o.Z)(C,wr),V=null!=(t=null==k?void 0:k.ActionBar)?t:br,H=(null==k?void 0:k.PaperContent)||i.Fragment;return(0,E.jsx)(Cr,(0,r.Z)({transition:!0,role:y,open:b,anchorEl:s,onKeyDown:function(e){"Escape"===e.key&&(e.stopPropagation(),p())},className:B.root},g,{children:function(e){var t=e.TransitionProps,n=e.placement;return(0,E.jsx)(cr.i,(0,r.Z)({open:b,disableAutoFocus:!0,disableRestoreFocus:!0,disableEnforceFocus:"tooltip"===y,isEnabled:function(){return!0}},w,{children:(0,E.jsx)(Z,(0,r.Z)({},t,{children:(0,E.jsx)(kr,(0,r.Z)({tabIndex:-1,elevation:8,ref:A,onClick:function(e){O(e),L&&L(e)},onTouchStart:function(e){j(e),z&&z(e)},ownerState:(0,r.Z)({},F,{placement:n}),className:B.paper},W,{children:(0,E.jsxs)(H,(0,r.Z)({},null==P?void 0:P.paperContent,{children:[l,(0,E.jsx)(V,(0,r.Z)({onAccept:h,onClear:f,onCancel:v,onSetToday:m,actions:[]},null==P?void 0:P.actionBar))]}))}))}))}))}}))}function Mr(e){var t=e.children,n=e.DateInputProps,o=e.KeyboardDateInputComponent,a=e.onClear,s=e.onDismiss,l=e.onCancel,u=e.onAccept,c=e.onSetToday,d=e.open,p=e.PopperProps,f=e.PaperProps,h=e.TransitionComponent,v=e.components,m=e.componentsProps,b=i.useRef(null),g=(0,$.Z)(n.inputRef,b);return(0,E.jsxs)(kt.Provider,{value:"desktop",children:[(0,E.jsx)(o,(0,r.Z)({},n,{inputRef:g})),(0,E.jsx)(Pr,{role:"dialog",open:d,anchorEl:b.current,TransitionComponent:h,PopperProps:p,PaperProps:f,onClose:s,onCancel:l,onClear:a,onAccept:u,onSetToday:c,components:v,componentsProps:m,children:t})]})}var Rr=n(98278);function Er(e){var t,n,r=e.onChange,o=e.onViewChange,a=e.openTo,s=e.view,l=e.views,u=(0,Rr.Z)({name:"Picker",state:"view",controlled:s,default:a&&yr(l,a)?a:l[0]}),c=(0,G.Z)(u,2),d=c[0],p=c[1],f=null!=(t=l[l.indexOf(d)-1])?t:null,h=null!=(n=l[l.indexOf(d)+1])?n:null,v=i.useCallback((function(e){p(e),o&&o(e)}),[p,o]),m=i.useCallback((function(){h&&v(h)}),[h,v]);return{handleChangeAndOpenNext:i.useCallback((function(e,t){var n="finish"===t,o=n&&Boolean(h)?"partial":t;r(e,o),n&&m()}),[h,r,m]),nextView:h,previousView:f,openNext:m,openView:d,setOpenView:v}}var Tr=n(67384),Dr=220,Or=36,jr={x:Dr/2,y:Dr/2},Nr=jr.x-jr.x,Ir=0-jr.y,Ar=function(e,t,n){var r=t-jr.x,o=n-jr.y,i=Math.atan2(Nr,Ir)-Math.atan2(r,o),a=i*(180/Math.PI);a=Math.round(a/e)*e,a%=360;var s=Math.floor(a/e)||0,l=Math.pow(r,2)+Math.pow(o,2);return{value:s,distance:Math.sqrt(l)}};function Fr(e){return(0,k.Z)("MuiClockPointer",e)}(0,P.Z)("MuiClockPointer",["root","thumb"]);var Br=["className","hasSelected","isInner","type","value"],Lr=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],thumb:["thumb"]},Fr,t)},zr=(0,x.ZP)("div",{name:"MuiClockPointer",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({width:2,backgroundColor:t.palette.primary.main,position:"absolute",left:"calc(50% - 1px)",bottom:"50%",transformOrigin:"center bottom 0px"},n.shouldAnimate&&{transition:t.transitions.create(["transform","height"])})})),Wr=(0,x.ZP)("div",{name:"MuiClockPointer",slot:"Thumb",overridesResolver:function(e,t){return t.thumb}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({width:4,height:4,backgroundColor:t.palette.primary.contrastText,borderRadius:"50%",position:"absolute",top:-21,left:"calc(50% - ".concat(18,"px)"),border:"".concat(16,"px solid ").concat(t.palette.primary.main),boxSizing:"content-box"},n.hasSelected&&{backgroundColor:t.palette.primary.main})}));function Vr(e){var t=(0,a.Z)({props:e,name:"MuiClockPointer"}),n=t.className,s=t.isInner,l=t.type,u=t.value,c=(0,o.Z)(t,Br),d=i.useRef(l);i.useEffect((function(){d.current=l}),[l]);var p=(0,r.Z)({},t,{shouldAnimate:d.current!==l}),f=Lr(p);return(0,E.jsx)(zr,(0,r.Z)({style:function(){var e=360/("hours"===l?12:60)*u;return"hours"===l&&u>12&&(e-=360),{height:Math.round((s?.26:.4)*Dr),transform:"rotateZ(".concat(e,"deg)")}}(),className:S(n,f.root),ownerState:p},c,{children:(0,E.jsx)(Wr,{ownerState:p,className:f.thumb})}))}function Hr(e){return(0,k.Z)("MuiClock",e)}(0,P.Z)("MuiClock",["root","clock","wrapper","squareMask","pin","amButton","pmButton"]);var qr=(0,x.ZP)("div",{name:"MuiClock",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{display:"flex",justifyContent:"center",alignItems:"center",margin:e.theme.spacing(2)}})),Kr=(0,x.ZP)("div",{name:"MuiClock",slot:"Clock",overridesResolver:function(e,t){return t.clock}})({backgroundColor:"rgba(0,0,0,.07)",borderRadius:"50%",height:220,width:220,flexShrink:0,position:"relative",pointerEvents:"none"}),_r=(0,x.ZP)("div",{name:"MuiClock",slot:"Wrapper",overridesResolver:function(e,t){return t.wrapper}})({"&:focus":{outline:"none"}}),Yr=(0,x.ZP)("div",{name:"MuiClock",slot:"SquareMask",overridesResolver:function(e,t){return t.squareMask}})((function(e){var t=e.ownerState;return(0,r.Z)({width:"100%",height:"100%",position:"absolute",pointerEvents:"auto",outline:0,touchAction:"none",userSelect:"none"},t.disabled?{}:{"@media (pointer: fine)":{cursor:"pointer",borderRadius:"50%"},"&:active":{cursor:"move"}})})),Ur=(0,x.ZP)("div",{name:"MuiClock",slot:"Pin",overridesResolver:function(e,t){return t.pin}})((function(e){return{width:6,height:6,borderRadius:"50%",backgroundColor:e.theme.palette.primary.main,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"}})),Xr=(0,x.ZP)(We,{name:"MuiClock",slot:"AmButton",overridesResolver:function(e,t){return t.amButton}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({zIndex:1,position:"absolute",bottom:n.ampmInClock?64:8,left:8},"am"===n.meridiemMode&&{backgroundColor:t.palette.primary.main,color:t.palette.primary.contrastText,"&:hover":{backgroundColor:t.palette.primary.light}})})),Gr=(0,x.ZP)(We,{name:"MuiClock",slot:"PmButton",overridesResolver:function(e,t){return t.pmButton}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({zIndex:1,position:"absolute",bottom:n.ampmInClock?64:8,right:8},"pm"===n.meridiemMode&&{backgroundColor:t.palette.primary.main,color:t.palette.primary.contrastText,"&:hover":{backgroundColor:t.palette.primary.light}})}));function $r(e){var t=(0,a.Z)({props:e,name:"MuiClock"}),n=t.ampm,r=t.ampmInClock,o=t.autoFocus,s=t.children,l=t.date,u=t.getClockLabelText,d=t.handleMeridiemChange,p=t.isTimeDisabled,f=t.meridiemMode,h=t.minutesStep,v=void 0===h?1:h,m=t.onChange,b=t.selectedId,g=t.type,y=t.value,x=t.disabled,w=t.readOnly,k=t.className,P=t,M=c(),R=i.useContext(kt),T=i.useRef(!1),D=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],clock:["clock"],wrapper:["wrapper"],squareMask:["squareMask"],pin:["pin"],amButton:["amButton"],pmButton:["pmButton"]},Hr,t)}(P),O=p(y,g),j=!n&&"hours"===g&&(y<1||y>12),N=function(e,t){x||w||p(e,g)||m(e,t)},I=function(e,t){var r=e.offsetX,o=e.offsetY;if(void 0===r){var i=e.target.getBoundingClientRect();r=e.changedTouches[0].clientX-i.left,o=e.changedTouches[0].clientY-i.top}var a="seconds"===g||"minutes"===g?function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=Ar(6*n,e,t).value;return r*n%60}(r,o,v):function(e,t,n){var r=Ar(30,e,t),o=r.value,i=r.distance,a=o||12;return n?a%=12:i0&&I(e.nativeEvent,"shallow")},ownerState:{disabled:x},className:D.squareMask}),!O&&(0,E.jsxs)(i.Fragment,{children:[(0,E.jsx)(Ur,{className:D.pin}),l&&(0,E.jsx)(Vr,{type:g,value:y,isInner:j,hasSelected:A})]}),(0,E.jsx)(_r,{"aria-activedescendant":b,"aria-label":u(g,l,M),ref:B,role:"listbox",onKeyDown:function(e){if(!T.current)switch(e.key){case"Home":N(0,"partial"),e.preventDefault();break;case"End":N("minutes"===g?59:23,"partial"),e.preventDefault();break;case"ArrowUp":N(y+F,"partial"),e.preventDefault();break;case"ArrowDown":N(y-F,"partial"),e.preventDefault()}},tabIndex:0,className:D.wrapper,children:s})]}),n&&("desktop"===R||r)&&(0,E.jsxs)(i.Fragment,{children:[(0,E.jsx)(Xr,{onClick:w?void 0:function(){return d("am")},disabled:x||null===f,ownerState:P,className:D.amButton,children:(0,E.jsx)(C.Z,{variant:"caption",children:"AM"})}),(0,E.jsx)(Gr,{disabled:x||null===f,onClick:w?void 0:function(){return d("pm")},ownerState:P,className:D.pmButton,children:(0,E.jsx)(C.Z,{variant:"caption",children:"PM"})})]})]})}function Jr(e){return(0,k.Z)("MuiClockNumber",e)}var Qr=(0,P.Z)("MuiClockNumber",["root","selected","disabled"]),eo=["className","disabled","index","inner","label","selected"],to=(0,x.ZP)("span",{name:"MuiClockNumber",slot:"Root",overridesResolver:function(e,t){return[t.root,(0,y.Z)({},"&.".concat(Qr.disabled),t.disabled),(0,y.Z)({},"&.".concat(Qr.selected),t.selected)]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)((t={height:Or,width:Or,position:"absolute",left:"calc((100% - ".concat(Or,"px) / 2)"),display:"inline-flex",justifyContent:"center",alignItems:"center",borderRadius:"50%",color:n.palette.text.primary,fontFamily:n.typography.fontFamily,"&:focused":{backgroundColor:n.palette.background.paper}},(0,y.Z)(t,"&.".concat(Qr.selected),{color:n.palette.primary.contrastText}),(0,y.Z)(t,"&.".concat(Qr.disabled),{pointerEvents:"none",color:n.palette.text.disabled}),t),o.inner&&(0,r.Z)({},n.typography.body2,{color:n.palette.text.secondary}))}));function no(e){var t=(0,a.Z)({props:e,name:"MuiClockNumber"}),n=t.className,i=t.disabled,s=t.index,l=t.inner,u=t.label,c=t.selected,d=(0,o.Z)(t,eo),p=t,f=function(e){var t=e.classes,n={root:["root",e.selected&&"selected",e.disabled&&"disabled"]};return(0,Z.Z)(n,Jr,t)}(p),h=s%12/12*Math.PI*2-Math.PI/2,v=(Dr-Or-2)/2*(l?.65:1),m=Math.round(Math.cos(h)*v),b=Math.round(Math.sin(h)*v);return(0,E.jsx)(to,(0,r.Z)({className:S(n,f.root),"aria-disabled":!!i||void 0,"aria-selected":!!c||void 0,role:"option",style:{transform:"translate(".concat(m,"px, ").concat(b+(Dr-Or)/2,"px")},ownerState:p},d,{children:u}))}var ro=function(e){for(var t=e.ampm,n=e.date,r=e.getClockNumberText,o=e.isDisabled,i=e.selectedId,a=e.utils,s=n?a.getHours(n):null,l=[],u=t?12:23,c=function(e){return null!==s&&(t?12===e?12===s||0===s:s===e||s-12===e:s===e)},d=t?1:0;d<=u;d+=1){var p=d.toString();0===d&&(p="00");var f=!t&&(0===d||d>12);p=a.formatNumber(p);var h=c(d);l.push((0,E.jsx)(no,{id:h?i:void 0,index:d,inner:f,selected:h,disabled:o(d),label:p,"aria-label":r(p)},d))}return l},oo=function(e){var t=e.utils,n=e.value,r=e.isDisabled,o=e.getClockNumberText,i=e.selectedId,a=t.formatNumber;return[[5,a("05")],[10,a("10")],[15,a("15")],[20,a("20")],[25,a("25")],[30,a("30")],[35,a("35")],[40,a("40")],[45,a("45")],[50,a("50")],[55,a("55")],[0,a("00")]].map((function(e,t){var a=(0,G.Z)(e,2),s=a[0],l=a[1],u=s===n;return(0,E.jsx)(no,{label:l,id:u?i:void 0,index:t+1,inner:!1,disabled:r(s),selected:u,"aria-label":o(l)},s)}))};function io(e){return(0,k.Z)("MuiPickersArrowSwitcher",e)}(0,P.Z)("MuiPickersArrowSwitcher",["root","spacer","button"]);var ao=["children","className","components","componentsProps","isLeftDisabled","isLeftHidden","isRightDisabled","isRightHidden","leftArrowButtonText","onLeftClick","onRightClick","rightArrowButtonText"],so=(0,x.ZP)("div",{name:"MuiPickersArrowSwitcher",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"flex"}),lo=(0,x.ZP)("div",{name:"MuiPickersArrowSwitcher",slot:"Spacer",overridesResolver:function(e,t){return t.spacer}})((function(e){return{width:e.theme.spacing(3)}})),uo=(0,x.ZP)(We,{name:"MuiPickersArrowSwitcher",slot:"Button",overridesResolver:function(e,t){return t.button}})((function(e){var t=e.ownerState;return(0,r.Z)({},t.hidden&&{visibility:"hidden"})})),co=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiPickersArrowSwitcher"}),i=n.children,s=n.className,l=n.components,u=n.componentsProps,c=n.isLeftDisabled,d=n.isLeftHidden,p=n.isRightDisabled,f=n.isRightHidden,h=n.leftArrowButtonText,v=n.onLeftClick,m=n.onRightClick,b=n.rightArrowButtonText,g=(0,o.Z)(n,ao),y="rtl"===(0,F.Z)().direction,x=(null==u?void 0:u.leftArrowButton)||{},w=(null==l?void 0:l.LeftArrowIcon)||qe,k=(null==u?void 0:u.rightArrowButton)||{},P=(null==l?void 0:l.RightArrowIcon)||Ke,M=n,R=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],spacer:["spacer"],button:["button"]},io,t)}(M);return(0,E.jsxs)(so,(0,r.Z)({ref:t,className:S(R.root,s),ownerState:M},g,{children:[(0,E.jsx)(uo,(0,r.Z)({as:null==l?void 0:l.LeftArrowButton,size:"small","aria-label":h,title:h,disabled:c,edge:"end",onClick:v},x,{className:S(R.button,x.className),ownerState:(0,r.Z)({},M,x,{hidden:d}),children:y?(0,E.jsx)(P,{}):(0,E.jsx)(w,{})})),i?(0,E.jsx)(C.Z,{variant:"subtitle1",component:"span",children:i}):(0,E.jsx)(lo,{className:R.spacer,ownerState:M}),(0,E.jsx)(uo,(0,r.Z)({as:null==l?void 0:l.RightArrowButton,size:"small","aria-label":b,title:b,edge:"start",disabled:p,onClick:m},k,{className:S(R.button,k.className),ownerState:(0,r.Z)({},M,k,{hidden:f}),children:y?(0,E.jsx)(w,{}):(0,E.jsx)(P,{})}))]}))})),po=function(e,t,n){if(n&&(e>=12?"pm":"am")!==t)return"am"===t?e-12:e+12;return e},fo=function(e,t){return 3600*t.getHours(e)+60*t.getMinutes(e)+t.getSeconds(e)},ho=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return function(n,r){return e?t.isAfter(n,r):fo(n,t)>fo(r,t)}};function vo(e,t,n){var r=c(),o=function(e,t){return e?t.getHours(e)>=12?"pm":"am":null}(e,r),a=i.useCallback((function(o){var i=null==e?null:function(e,t,n,r){var o=po(r.getHours(e),t,n);return r.setHours(e,o)}(e,o,Boolean(t),r);n(i,"partial")}),[t,e,n,r]);return{meridiemMode:o,handleMeridiemChange:a}}function mo(e){return(0,k.Z)("MuiClockPicker",e)}(0,P.Z)("MuiClockPicker",["root","arrowSwitcher"]);var bo=(0,x.ZP)("div")({overflowX:"hidden",width:320,maxHeight:358,display:"flex",flexDirection:"column",margin:"0 auto"}),go=(0,x.ZP)(bo,{name:"MuiClockPicker",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"flex",flexDirection:"column"}),yo=(0,x.ZP)(co,{name:"MuiClockPicker",slot:"ArrowSwitcher",overridesResolver:function(e,t){return t.arrowSwitcher}})({position:"absolute",right:12,top:15}),xo=function(){},Zo=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiClockPicker"}),o=n.ampm,s=void 0!==o&&o,l=n.ampmInClock,u=void 0!==l&&l,d=n.autoFocus,h=n.components,v=n.componentsProps,m=n.date,b=n.disableIgnoringDatePartForTimeValidation,g=n.getClockLabelText,y=n.getHoursClockNumberText,x=n.getMinutesClockNumberText,w=n.getSecondsClockNumberText,C=n.leftArrowButtonText,k=n.maxTime,P=n.minTime,M=n.minutesStep,R=void 0===M?1:M,T=n.rightArrowButtonText,D=n.shouldDisableTime,O=n.showViewSwitcher,j=n.onChange,N=n.view,I=n.views,A=void 0===I?["hours","minutes"]:I,F=n.openTo,B=n.onViewChange,L=n.className,z=n.disabled,W=n.readOnly;xo({leftArrowButtonText:C,rightArrowButtonText:T,getClockLabelText:g,getHoursClockNumberText:y,getMinutesClockNumberText:x,getSecondsClockNumberText:w});var V=p(),H=null!=C?C:V.openPreviousView,q=null!=T?T:V.openNextView,K=null!=g?g:V.clockLabelText,_=null!=y?y:V.hoursClockNumberText,Y=null!=x?x:V.minutesClockNumberText,U=null!=w?w:V.secondsClockNumberText,X=Er({view:N,views:A,openTo:F,onViewChange:B,onChange:j}),G=X.openView,$=X.setOpenView,J=X.nextView,Q=X.previousView,ee=X.handleChangeAndOpenNext,te=f(),ne=c(),re=i.useMemo((function(){return m||ne.setSeconds(ne.setMinutes(ne.setHours(te,0),0),0)}),[m,te,ne]),oe=vo(re,s,ee),ie=oe.meridiemMode,ae=oe.handleMeridiemChange,se=i.useCallback((function(e,t){var n=ho(b,ne),r=function(e){var t=e.start,r=e.end;return(!P||!n(P,r))&&(!k||!n(t,k))},o=function(e){return e%(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)===0&&(!D||!D(e,t))};switch(t){case"hours":var i=po(e,ie,s),a=ne.setHours(re,i);return!r({start:ne.setSeconds(ne.setMinutes(a,0),0),end:ne.setSeconds(ne.setMinutes(a,59),59)})||!o(i);case"minutes":var l=ne.setMinutes(re,e);return!r({start:ne.setSeconds(l,0),end:ne.setSeconds(l,59)})||!o(e,R);case"seconds":var u=ne.setSeconds(re,e);return!r({start:u,end:u})||!o(e);default:throw new Error("not supported")}}),[s,re,b,k,ie,P,R,D,ne]),le=(0,Tr.Z)(),ue=i.useMemo((function(){switch(G){case"hours":var e=function(e,t){var n=po(e,ie,s);ee(ne.setHours(re,n),t)};return{onChange:e,value:ne.getHours(re),children:ro({date:m,utils:ne,ampm:s,onChange:e,getClockNumberText:_,isDisabled:function(e){return z||se(e,"hours")},selectedId:le})};case"minutes":var t=ne.getMinutes(re),n=function(e,t){ee(ne.setMinutes(re,e),t)};return{value:t,onChange:n,children:oo({utils:ne,value:t,onChange:n,getClockNumberText:Y,isDisabled:function(e){return z||se(e,"minutes")},selectedId:le})};case"seconds":var r=ne.getSeconds(re),o=function(e,t){ee(ne.setSeconds(re,e),t)};return{value:r,onChange:o,children:oo({utils:ne,value:r,onChange:o,getClockNumberText:U,isDisabled:function(e){return z||se(e,"seconds")},selectedId:le})};default:throw new Error("You must provide the type for ClockView")}}),[G,ne,m,s,_,Y,U,ie,ee,re,se,le,z]),ce=n,de=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],arrowSwitcher:["arrowSwitcher"]},mo,t)}(ce);return(0,E.jsxs)(go,{ref:t,className:S(de.root,L),ownerState:ce,children:[O&&(0,E.jsx)(yo,{className:de.arrowSwitcher,leftArrowButtonText:H,rightArrowButtonText:q,components:h,componentsProps:v,onLeftClick:function(){return $(Q)},onRightClick:function(){return $(J)},isLeftDisabled:!Q,isRightDisabled:!J,ownerState:ce}),(0,E.jsx)($r,(0,r.Z)({autoFocus:d,date:m,ampmInClock:u,type:G,ampm:s,getClockLabelText:K,minutesStep:R,isTimeDisabled:se,meridiemMode:ie,handleMeridiemChange:ae,selectedId:le,disabled:z,readOnly:W},ue))]})})),wo=n(30418),So=n(40162);function Co(e){return(0,k.Z)("PrivatePickersMonth",e)}var ko=(0,P.Z)("PrivatePickersMonth",["root","selected"]),Po=["disabled","onSelect","selected","value","tabIndex","hasFocus","onFocus","onBlur"],Mo=(0,x.ZP)(C.Z,{name:"PrivatePickersMonth",slot:"Root",overridesResolver:function(e,t){return[t.root,(0,y.Z)({},"&.".concat(ko.selected),t.selected)]}})((function(e){var t=e.theme;return(0,r.Z)({flex:"1 0 33.33%",display:"flex",alignItems:"center",justifyContent:"center",color:"unset",backgroundColor:"transparent",border:0,outline:0},t.typography.subtitle1,(0,y.Z)({margin:"8px 0",height:36,borderRadius:18,cursor:"pointer","&:focus, &:hover":{backgroundColor:(0,X.Fq)(t.palette.action.active,t.palette.action.hoverOpacity)},"&:disabled":{pointerEvents:"none",color:t.palette.text.secondary}},"&.".concat(ko.selected),{color:t.palette.primary.contrastText,backgroundColor:t.palette.primary.main,"&:focus, &:hover":{backgroundColor:t.palette.primary.dark}}))})),Ro=function(){},Eo=function(e){var t=e.disabled,n=e.onSelect,a=e.selected,s=e.value,l=e.tabIndex,u=e.hasFocus,c=e.onFocus,d=void 0===c?Ro:c,p=e.onBlur,f=void 0===p?Ro:p,h=(0,o.Z)(e,Po),v=function(e){var t=e.classes,n={root:["root",e.selected&&"selected"]};return(0,Z.Z)(n,Co,t)}(e),m=function(){n(s)},b=i.useRef(null);return(0,So.Z)((function(){var e;u&&(null==(e=b.current)||e.focus())}),[u]),(0,E.jsx)(Mo,(0,r.Z)({ref:b,component:"button",type:"button",className:v.root,tabIndex:l,onClick:m,onKeyDown:xr(m),color:a?"primary":void 0,variant:a?"h5":"subtitle1",disabled:t,onFocus:function(e){return d(e,s)},onBlur:function(e){return f(e,s)}},h))};function To(e){return(0,k.Z)("MuiMonthPicker",e)}(0,P.Z)("MuiMonthPicker",["root"]);var Do=["className","date","disabled","disableFuture","disablePast","maxDate","minDate","onChange","shouldDisableMonth","readOnly","disableHighlightToday","autoFocus","onMonthFocus","hasFocus","onFocusedViewChange"];var Oo=(0,x.ZP)("div",{name:"MuiMonthPicker",slot:"Root",overridesResolver:function(e,t){return t.root}})({width:310,display:"flex",flexWrap:"wrap",alignContent:"stretch",margin:"0 4px"}),jo=i.forwardRef((function(e,t){var n=c(),s=f(),l=function(e,t){var n=c(),o=d(),i=(0,a.Z)({props:e,name:t});return(0,r.Z)({disableFuture:!1,disablePast:!1},i,{minDate:v(n,i.minDate,o.minDate),maxDate:v(n,i.maxDate,o.maxDate)})}(e,"MuiMonthPicker"),u=l.className,p=l.date,h=l.disabled,m=l.disableFuture,b=l.disablePast,g=l.maxDate,y=l.minDate,x=l.onChange,w=l.shouldDisableMonth,C=l.readOnly,k=l.disableHighlightToday,P=l.autoFocus,M=void 0!==P&&P,R=l.onMonthFocus,T=l.hasFocus,D=l.onFocusedViewChange,O=(0,o.Z)(l,Do),j=l,N=function(e){var t=e.classes;return(0,Z.Z)({root:["root"]},To,t)}(j),I=(0,wo.Z)(),A=i.useMemo((function(){return null!=p?p:n.startOfMonth(s)}),[s,n,p]),F=i.useMemo((function(){return null!=p?n.getMonth(p):k?null:n.getMonth(s)}),[s,p,n,k]),B=i.useState((function(){return F||n.getMonth(s)})),L=(0,G.Z)(B,2),z=L[0],W=L[1],V=i.useCallback((function(e){var t=n.startOfMonth(b&&n.isAfter(s,y)?s:y),r=n.startOfMonth(m&&n.isBefore(s,g)?s:g);return!!n.isBefore(e,t)||(!!n.isAfter(e,r)||!!w&&w(e))}),[m,b,g,y,s,w,n]),H=function(e){if(!C){var t=n.setMonth(A,e);x(t,"finish")}},q=(0,Rr.Z)({name:"MonthPicker",state:"hasFocus",controlled:T,default:M}),K=(0,G.Z)(q,2),_=K[0],Y=K[1],U=i.useCallback((function(e){Y(e),D&&D(e)}),[Y,D]),X=i.useCallback((function(e){V(n.setMonth(A,e))||(W(e),U(!0),R&&R(e))}),[V,n,A,U,R]);i.useEffect((function(){W((function(e){return null!==F&&e!==F?F:e}))}),[F]);var $=(0,J.Z)((function(e){var t=12;switch(e.key){case"ArrowUp":X((t+z-3)%t),e.preventDefault();break;case"ArrowDown":X((t+z+3)%t),e.preventDefault();break;case"ArrowLeft":X((t+z+("ltr"===I.direction?-1:1))%t),e.preventDefault();break;case"ArrowRight":X((t+z+("ltr"===I.direction?1:-1))%t),e.preventDefault()}})),Q=i.useCallback((function(e,t){X(t)}),[X]),ee=i.useCallback((function(){U(!1)}),[U]),te=n.getMonth(s);return(0,E.jsx)(Oo,(0,r.Z)({ref:t,className:S(N.root,u),ownerState:j,onKeyDown:$},O,{children:n.getMonthArray(A).map((function(e){var t=n.getMonth(e),r=n.format(e,"monthShort"),o=h||V(e);return(0,E.jsx)(Eo,{value:t,selected:t===F,tabIndex:t!==z||o?-1:0,hasFocus:_&&t===z,onSelect:H,onFocus:Q,onBlur:ee,disabled:o,"aria-current":te===t?"date":void 0,children:r},r)}))}))})),No=function(e){var t=e.props,n=e.value,r=e.adapter,o=r.utils.date(),i=r.utils.date(n),a=v(r.utils,t.minDate,r.defaultDates.minDate),s=v(r.utils,t.maxDate,r.defaultDates.maxDate);if(null===i)return null;switch(!0){case!r.utils.isValid(n):return"invalidDate";case Boolean(t.shouldDisableDate&&t.shouldDisableDate(i)):return"shouldDisableDate";case Boolean(t.disableFuture&&r.utils.isAfterDay(i,o)):return"disableFuture";case Boolean(t.disablePast&&r.utils.isBeforeDay(i,o)):return"disablePast";case Boolean(a&&r.utils.isBeforeDay(i,a)):return"minDate";case Boolean(s&&r.utils.isAfterDay(i,s)):return"maxDate";default:return null}},Io=function(e){var t=e.shouldDisableDate,n=e.minDate,r=e.maxDate,o=e.disableFuture,a=e.disablePast,s=u();return i.useCallback((function(e){return null!==No({adapter:s,value:e,props:{shouldDisableDate:t,minDate:n,maxDate:r,disableFuture:o,disablePast:a}})}),[s,t,n,r,o,a])},Ao=function(e){var t,n=e.date,o=e.defaultCalendarMonth,a=e.disableFuture,s=e.disablePast,l=e.disableSwitchToMonthOnDayFocus,u=void 0!==l&&l,d=e.maxDate,p=e.minDate,h=e.onMonthChange,v=e.reduceAnimations,m=e.shouldDisableDate,b=f(),g=c(),y=i.useRef(function(e,t,n){return function(o,i){switch(i.type){case"changeMonth":return(0,r.Z)({},o,{slideDirection:i.direction,currentMonth:i.newMonth,isMonthSwitchingAnimating:!e});case"finishMonthSwitchingAnimation":return(0,r.Z)({},o,{isMonthSwitchingAnimating:!1});case"changeFocusedDay":if(null!=o.focusedDay&&null!=i.focusedDay&&n.isSameDay(i.focusedDay,o.focusedDay))return o;var a=null!=i.focusedDay&&!t&&!n.isSameMonth(o.currentMonth,i.focusedDay);return(0,r.Z)({},o,{focusedDay:i.focusedDay,isMonthSwitchingAnimating:a&&!e&&!i.withoutMonthSwitchingAnimation,currentMonth:a?n.startOfMonth(i.focusedDay):o.currentMonth,slideDirection:null!=i.focusedDay&&n.isAfterDay(i.focusedDay,o.currentMonth)?"left":"right"});default:throw new Error("missing support")}}}(Boolean(v),u,g)).current,x=i.useReducer(y,{isMonthSwitchingAnimating:!1,focusedDay:n||b,currentMonth:g.startOfMonth(null!=(t=null!=n?n:o)?t:b),slideDirection:"left"}),Z=(0,G.Z)(x,2),w=Z[0],S=Z[1],C=i.useCallback((function(e){S((0,r.Z)({type:"changeMonth"},e)),h&&h(e.newMonth)}),[h]),k=i.useCallback((function(e){var t=null!=e?e:b;g.isSameMonth(t,w.currentMonth)||C({newMonth:g.startOfMonth(t),direction:g.isAfterDay(t,w.currentMonth)?"left":"right"})}),[w.currentMonth,C,b,g]),P=Io({shouldDisableDate:m,minDate:p,maxDate:d,disableFuture:a,disablePast:s}),M=i.useCallback((function(){S({type:"finishMonthSwitchingAnimation"})}),[]),R=i.useCallback((function(e,t){P(e)||S({type:"changeFocusedDay",focusedDay:e,withoutMonthSwitchingAnimation:t})}),[P]);return{calendarState:w,changeMonth:k,changeFocusedDay:R,isDateDisabled:P,onMonthSwitchingAnimationEnd:M,handleChangeMonth:C}},Fo=n(60627),Bo=function(e){return(0,k.Z)("MuiPickersFadeTransitionGroup",e)},Lo=((0,P.Z)("MuiPickersFadeTransitionGroup",["root"]),function(e){var t=e.classes;return(0,Z.Z)({root:["root"]},Bo,t)}),zo=500,Wo=(0,x.ZP)(ue,{name:"MuiPickersFadeTransitionGroup",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"block",position:"relative"});function Vo(e){var t=(0,a.Z)({props:e,name:"MuiPickersFadeTransitionGroup"}),n=t.children,r=t.className,o=t.reduceAnimations,i=t.transKey,s=Lo(t);return o?n:(0,E.jsx)(Wo,{className:S(s.root,r),children:(0,E.jsx)(Fo.Z,{appear:!1,mountOnEnter:!0,unmountOnExit:!0,timeout:{appear:zo,enter:zo/2,exit:0},children:n},i)})}function Ho(e){return(0,k.Z)("MuiPickersDay",e)}var qo=(0,P.Z)("MuiPickersDay",["root","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","today","selected","disabled"]),Ko=["autoFocus","className","day","disabled","disableHighlightToday","disableMargin","hidden","isAnimating","onClick","onDaySelect","onFocus","onBlur","onKeyDown","onMouseDown","outsideCurrentMonth","selected","showDaysOutsideCurrentMonth","children","today"],_o=function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)({},n.typography.caption,(t={width:36,height:36,borderRadius:"50%",padding:0,backgroundColor:n.palette.background.paper,color:n.palette.text.primary,"&:hover":{backgroundColor:(0,X.Fq)(n.palette.action.active,n.palette.action.hoverOpacity)},"&:focus":(0,y.Z)({backgroundColor:(0,X.Fq)(n.palette.action.active,n.palette.action.hoverOpacity)},"&.".concat(qo.selected),{willChange:"background-color",backgroundColor:n.palette.primary.dark})},(0,y.Z)(t,"&.".concat(qo.selected),{color:n.palette.primary.contrastText,backgroundColor:n.palette.primary.main,fontWeight:n.typography.fontWeightMedium,transition:n.transitions.create("background-color",{duration:n.transitions.duration.short}),"&:hover":{willChange:"background-color",backgroundColor:n.palette.primary.dark}}),(0,y.Z)(t,"&.".concat(qo.disabled),{color:n.palette.text.disabled}),t),!o.disableMargin&&{margin:"0 ".concat(2,"px")},o.outsideCurrentMonth&&o.showDaysOutsideCurrentMonth&&{color:n.palette.text.secondary},!o.disableHighlightToday&&o.today&&(0,y.Z)({},"&:not(.".concat(qo.selected,")"),{border:"1px solid ".concat(n.palette.text.secondary)}))},Yo=function(e,t){var n=e.ownerState;return[t.root,!n.disableMargin&&t.dayWithMargin,!n.disableHighlightToday&&n.today&&t.today,!n.outsideCurrentMonth&&n.showDaysOutsideCurrentMonth&&t.dayOutsideMonth,n.outsideCurrentMonth&&!n.showDaysOutsideCurrentMonth&&t.hiddenDaySpacingFiller]},Uo=(0,x.ZP)(Ie,{name:"MuiPickersDay",slot:"Root",overridesResolver:Yo})(_o),Xo=(0,x.ZP)("div",{name:"MuiPickersDay",slot:"Root",overridesResolver:Yo})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({},_o({theme:t,ownerState:n}),{opacity:0,pointerEvents:"none"})})),Go=function(){},$o=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiPickersDay"}),s=n.autoFocus,l=void 0!==s&&s,u=n.className,d=n.day,p=n.disabled,f=void 0!==p&&p,h=n.disableHighlightToday,v=void 0!==h&&h,m=n.disableMargin,b=void 0!==m&&m,g=n.isAnimating,y=n.onClick,x=n.onDaySelect,w=n.onFocus,C=void 0===w?Go:w,k=n.onBlur,P=void 0===k?Go:k,M=n.onKeyDown,R=void 0===M?Go:M,T=n.onMouseDown,D=n.outsideCurrentMonth,O=n.selected,j=void 0!==O&&O,N=n.showDaysOutsideCurrentMonth,I=void 0!==N&&N,A=n.children,F=n.today,B=void 0!==F&&F,L=(0,o.Z)(n,Ko),z=(0,r.Z)({},n,{autoFocus:l,disabled:f,disableHighlightToday:v,disableMargin:b,selected:j,showDaysOutsideCurrentMonth:I,today:B}),W=function(e){var t=e.selected,n=e.disableMargin,r=e.disableHighlightToday,o=e.today,i=e.disabled,a=e.outsideCurrentMonth,s=e.showDaysOutsideCurrentMonth,l=e.classes,u={root:["root",t&&"selected",i&&"disabled",!n&&"dayWithMargin",!r&&o&&"today",a&&s&&"dayOutsideMonth",a&&!s&&"hiddenDaySpacingFiller"],hiddenDaySpacingFiller:["hiddenDaySpacingFiller"]};return(0,Z.Z)(u,Ho,l)}(z),V=c(),H=i.useRef(null),q=(0,$.Z)(H,t);(0,Et.Z)((function(){!l||f||g||D||H.current.focus()}),[l,f,g,D]);return D&&!I?(0,E.jsx)(Xo,{className:S(W.root,W.hiddenDaySpacingFiller,u),ownerState:z,role:L.role}):(0,E.jsx)(Uo,(0,r.Z)({className:S(W.root,u),ownerState:z,ref:q,centerRipple:!0,disabled:f,tabIndex:j?0:-1,onKeyDown:function(e){return R(e,d)},onFocus:function(e){return C(e,d)},onBlur:function(e){return P(e,d)},onClick:function(e){f||x(d,"finish"),D&&e.currentTarget.focus(),y&&y(e)},onMouseDown:function(e){T&&T(e),D&&e.preventDefault()}},L,{children:A||V.format(d,"dayOfMonth")}))})),Jo=function(e,t){return e.autoFocus===t.autoFocus&&e.isAnimating===t.isAnimating&&e.today===t.today&&e.disabled===t.disabled&&e.selected===t.selected&&e.disableMargin===t.disableMargin&&e.showDaysOutsideCurrentMonth===t.showDaysOutsideCurrentMonth&&e.disableHighlightToday===t.disableHighlightToday&&e.className===t.className&&e.sx===t.sx&&e.outsideCurrentMonth===t.outsideCurrentMonth&&e.onFocus===t.onFocus&&e.onBlur===t.onBlur&&e.onDaySelect===t.onDaySelect},Qo=i.memo($o,Jo);function ei(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var ti=n(18875),ni=n(88852),ri=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.remove(r):"string"===typeof n.className?n.className=ei(n.className,r):n.setAttribute("class",ei(n.className&&n.className.baseVal||"",r)));var n,r}))},oi=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o *":{position:"absolute",top:0,right:0,left:0}},(0,y.Z)(t,"& .".concat(si["slideEnter-left"]),{willChange:"transform",transform:"translate(100%)",zIndex:1}),(0,y.Z)(t,"& .".concat(si["slideEnter-right"]),{willChange:"transform",transform:"translate(-100%)",zIndex:1}),(0,y.Z)(t,"& .".concat(si.slideEnterActive),{transform:"translate(0%)",transition:n}),(0,y.Z)(t,"& .".concat(si.slideExit),{transform:"translate(0%)"}),(0,y.Z)(t,"& .".concat(si["slideExitActiveLeft-left"]),{willChange:"transform",transform:"translate(-100%)",transition:n,zIndex:0}),(0,y.Z)(t,"& .".concat(si["slideExitActiveLeft-right"]),{willChange:"transform",transform:"translate(100%)",transition:n,zIndex:0}),t})),ci=function(e){return(0,k.Z)("MuiDayPicker",e)},di=((0,P.Z)("MuiDayPicker",["header","weekDayLabel","loadingContainer","slideTransition","monthContainer","weekContainer"]),function(e){return e.charAt(0).toUpperCase()}),pi=(0,x.ZP)("div",{name:"MuiDayPicker",slot:"Header",overridesResolver:function(e,t){return t.header}})({display:"flex",justifyContent:"center",alignItems:"center"}),fi=(0,x.ZP)(C.Z,{name:"MuiDayPicker",slot:"WeekDayLabel",overridesResolver:function(e,t){return t.weekDayLabel}})((function(e){return{width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:e.theme.palette.text.secondary}})),hi=(0,x.ZP)("div",{name:"MuiDayPicker",slot:"LoadingContainer",overridesResolver:function(e,t){return t.loadingContainer}})({display:"flex",justifyContent:"center",alignItems:"center",minHeight:240}),vi=(0,x.ZP)((function(e){var t=e.children,n=e.className,a=e.reduceAnimations,s=e.slideDirection,l=e.transKey,u=(0,o.Z)(e,li),c=function(e){var t=e.classes;return(0,Z.Z)({root:["root"]},ai,t)}(e);if(a)return(0,E.jsx)("div",{className:S(c.root,n),children:t});var d={exit:si.slideExit,enterActive:si.slideEnterActive,enter:si["slideEnter-".concat(s)],exitActive:si["slideExitActiveLeft-".concat(s)]};return(0,E.jsx)(ui,{className:S(c.root,n),childFactory:function(e){return i.cloneElement(e,{classNames:d})},role:"presentation",children:(0,E.jsx)(ii,(0,r.Z)({mountOnEnter:!0,unmountOnExit:!0,timeout:350,classNames:d},u,{children:t}),l)})}),{name:"MuiDayPicker",slot:"SlideTransition",overridesResolver:function(e,t){return t.slideTransition}})({minHeight:240}),mi=(0,x.ZP)("div",{name:"MuiDayPicker",slot:"MonthContainer",overridesResolver:function(e,t){return t.monthContainer}})({overflow:"hidden"}),bi=(0,x.ZP)("div",{name:"MuiDayPicker",slot:"WeekContainer",overridesResolver:function(e,t){return t.weekContainer}})({margin:"".concat(2,"px 0"),display:"flex",justifyContent:"center"});function gi(e){var t=f(),n=c(),o=(0,a.Z)({props:e,name:"MuiDayPicker"}),s=function(e){var t=e.classes;return(0,Z.Z)({header:["header"],weekDayLabel:["weekDayLabel"],loadingContainer:["loadingContainer"],slideTransition:["slideTransition"],monthContainer:["monthContainer"],weekContainer:["weekContainer"]},ci,t)}(o),l=o.onFocusedDayChange,u=o.className,d=o.currentMonth,p=o.selectedDays,v=o.disabled,m=o.disableHighlightToday,b=o.focusedDay,g=o.isMonthSwitchingAnimating,y=o.loading,x=o.onSelectedDaysChange,w=o.onMonthSwitchingAnimationEnd,C=o.readOnly,k=o.reduceAnimations,P=o.renderDay,M=o.renderLoading,R=void 0===M?function(){return(0,E.jsx)("span",{children:"..."})}:M,T=o.showDaysOutsideCurrentMonth,D=o.slideDirection,O=o.TransitionProps,j=o.disablePast,N=o.disableFuture,I=o.minDate,A=o.maxDate,B=o.shouldDisableDate,L=o.dayOfWeekFormatter,z=void 0===L?di:L,W=o.hasFocus,V=o.onFocusedViewChange,H=o.gridLabelId,q=Io({shouldDisableDate:B,minDate:I,maxDate:A,disablePast:j,disableFuture:N}),K=i.useState((function(){return b||t})),_=(0,G.Z)(K,2),Y=_[0],U=_[1],X=i.useCallback((function(e){V&&V(e)}),[V]),$=i.useCallback((function(e){C||x(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"finish")}),[x,C]),J=i.useCallback((function(e){q(e)||(l(e),U(e),X(!0))}),[q,l,X]),Q=(0,F.Z)();function ee(e,t){switch(e.key){case"ArrowUp":J(n.addDays(t,-7)),e.preventDefault();break;case"ArrowDown":J(n.addDays(t,7)),e.preventDefault();break;case"ArrowLeft":var r=n.addDays(t,"ltr"===Q.direction?-1:1),o="ltr"===Q.direction?n.getPreviousMonth(t):n.getNextMonth(t),i=h({utils:n,date:r,minDate:"ltr"===Q.direction?n.startOfMonth(o):r,maxDate:"ltr"===Q.direction?r:n.endOfMonth(o),isDateDisabled:q});J(i||r),e.preventDefault();break;case"ArrowRight":var a=n.addDays(t,"ltr"===Q.direction?1:-1),s="ltr"===Q.direction?n.getNextMonth(t):n.getPreviousMonth(t),l=h({utils:n,date:a,minDate:"ltr"===Q.direction?a:n.startOfMonth(s),maxDate:"ltr"===Q.direction?n.endOfMonth(s):a,isDateDisabled:q});J(l||a),e.preventDefault();break;case"Home":J(n.startOfWeek(t)),e.preventDefault();break;case"End":J(n.endOfWeek(t)),e.preventDefault();break;case"PageUp":J(n.getNextMonth(t)),e.preventDefault();break;case"PageDown":J(n.getPreviousMonth(t)),e.preventDefault()}}function te(e,t){J(t)}function ne(e,t){W&&n.isSameDay(Y,t)&&X(!1)}var re=n.getMonth(d),oe=p.filter((function(e){return!!e})).map((function(e){return n.startOfDay(e)})),ie=re,ae=i.useMemo((function(){return i.createRef()}),[ie]),se=n.startOfWeek(t),le=i.useMemo((function(){var e=n.startOfMonth(d),t=n.endOfMonth(d);return q(Y)||n.isAfterDay(Y,t)||n.isBeforeDay(Y,e)?h({utils:n,date:Y,minDate:e,maxDate:t,disablePast:j,disableFuture:N,isDateDisabled:q}):Y}),[d,N,j,Y,q,n]);return(0,E.jsxs)("div",{role:"grid","aria-labelledby":H,children:[(0,E.jsx)(pi,{role:"row",className:s.header,children:n.getWeekdays().map((function(e,t){var r;return(0,E.jsx)(fi,{variant:"caption",role:"columnheader","aria-label":n.format(n.addDays(se,t),"weekday"),className:s.weekDayLabel,children:null!=(r=null==z?void 0:z(e))?r:e},e+t.toString())}))}),y?(0,E.jsx)(hi,{className:s.loadingContainer,children:R()}):(0,E.jsx)(vi,(0,r.Z)({transKey:ie,onExited:w,reduceAnimations:k,slideDirection:D,className:S(u,s.slideTransition)},O,{nodeRef:ae,children:(0,E.jsx)(mi,{ref:ae,role:"rowgroup",className:s.monthContainer,children:n.getWeekArray(d).map((function(e){return(0,E.jsx)(bi,{role:"row",className:s.weekContainer,children:e.map((function(e){var o=null!==le&&n.isSameDay(e,le),a=oe.some((function(t){return n.isSameDay(t,e)})),s=n.isSameDay(e,t),l={key:null==e?void 0:e.toString(),day:e,isAnimating:g,disabled:v||q(e),autoFocus:W&&o,today:s,outsideCurrentMonth:n.getMonth(e)!==re,selected:a,disableHighlightToday:m,showDaysOutsideCurrentMonth:T,onKeyDown:ee,onFocus:te,onBlur:ne,onDaySelect:$,tabIndex:o?0:-1,role:"gridcell","aria-selected":a};return s&&(l["aria-current"]="date"),P?P(e,oe,l):(0,i.createElement)(Qo,(0,r.Z)({},l,{key:l.key}))}))},"week-".concat(e[0]))}))})}))]})}var yi=function(e){return(0,k.Z)("MuiPickersCalendarHeader",e)},xi=((0,P.Z)("MuiPickersCalendarHeader",["root","labelContainer","label","switchViewButton","switchViewIcon"]),(0,x.ZP)("div",{name:"MuiPickersCalendarHeader",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"flex",alignItems:"center",marginTop:16,marginBottom:8,paddingLeft:24,paddingRight:12,maxHeight:30,minHeight:30})),Zi=(0,x.ZP)("div",{name:"MuiPickersCalendarHeader",slot:"LabelContainer",overridesResolver:function(e,t){return t.labelContainer}})((function(e){var t=e.theme;return(0,r.Z)({display:"flex",maxHeight:30,overflow:"hidden",alignItems:"center",cursor:"pointer",marginRight:"auto"},t.typography.body1,{fontWeight:t.typography.fontWeightMedium})})),wi=(0,x.ZP)("div",{name:"MuiPickersCalendarHeader",slot:"Label",overridesResolver:function(e,t){return t.label}})({marginRight:6}),Si=(0,x.ZP)(We,{name:"MuiPickersCalendarHeader",slot:"SwitchViewButton",overridesResolver:function(e,t){return t.switchViewButton}})({marginRight:"auto"}),Ci=(0,x.ZP)(He,{name:"MuiPickersCalendarHeader",slot:"SwitchViewIcon",overridesResolver:function(e,t){return t.switchViewIcon}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({willChange:"transform",transition:t.transitions.create("transform"),transform:"rotate(0deg)"},"year"===n.openView&&{transform:"rotate(180deg)"})})),ki=function(){};function Pi(e){var t=(0,a.Z)({props:e,name:"MuiPickersCalendarHeader"}),n=t.components,o=void 0===n?{}:n,s=t.componentsProps,l=void 0===s?{}:s,u=t.currentMonth,d=t.disabled,f=t.disableFuture,h=t.disablePast,v=t.getViewSwitchingButtonText,m=t.leftArrowButtonText,b=t.maxDate,g=t.minDate,y=t.onMonthChange,x=t.onViewChange,w=t.openView,S=t.reduceAnimations,C=t.rightArrowButtonText,k=t.views,P=t.labelId;ki({leftArrowButtonText:m,rightArrowButtonText:C,getViewSwitchingButtonText:v});var M=p(),R=null!=m?m:M.previousMonth,T=null!=C?C:M.nextMonth,D=null!=v?v:M.calendarViewSwitchingButtonAriaLabel,O=c(),j=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],labelContainer:["labelContainer"],label:["label"],switchViewButton:["switchViewButton"],switchViewIcon:["switchViewIcon"]},yi,t)}(t),N=l.switchViewButton||{},I=function(e,t){var n=t.disableFuture,r=t.maxDate,o=c();return i.useMemo((function(){var t=o.date(),i=o.startOfMonth(n&&o.isBefore(t,r)?t:r);return!o.isAfter(i,e)}),[n,r,e,o])}(u,{disableFuture:f,maxDate:b}),A=function(e,t){var n=t.disablePast,r=t.minDate,o=c();return i.useMemo((function(){var t=o.date(),i=o.startOfMonth(n&&o.isAfter(t,r)?t:r);return!o.isBefore(i,e)}),[n,r,e,o])}(u,{disablePast:h,minDate:g});if(1===k.length&&"year"===k[0])return null;var F=t;return(0,E.jsxs)(xi,{ownerState:F,className:j.root,children:[(0,E.jsxs)(Zi,{role:"presentation",onClick:function(){if(1!==k.length&&x&&!d)if(2===k.length)x(k.find((function(e){return e!==w}))||k[0]);else{var e=0!==k.indexOf(w)?0:1;x(k[e])}},ownerState:F,"aria-live":"polite",className:j.labelContainer,children:[(0,E.jsx)(Vo,{reduceAnimations:S,transKey:O.format(u,"monthAndYear"),children:(0,E.jsx)(wi,{id:P,ownerState:F,className:j.label,children:O.format(u,"monthAndYear")})}),k.length>1&&!d&&(0,E.jsx)(Si,(0,r.Z)({size:"small",as:o.SwitchViewButton,"aria-label":D(w),className:j.switchViewButton},N,{children:(0,E.jsx)(Ci,{as:o.SwitchViewIcon,ownerState:F,className:j.switchViewIcon})}))]}),(0,E.jsx)(Fo.Z,{in:"day"===w,children:(0,E.jsx)(co,{leftArrowButtonText:R,rightArrowButtonText:T,components:o,componentsProps:l,onLeftClick:function(){return y(O.getPreviousMonth(u),"right")},onRightClick:function(){return y(O.getNextMonth(u),"left")},isLeftDisabled:A,isRightDisabled:I})})]})}var Mi=n(88637);function Ri(e){return(0,k.Z)("PrivatePickersYear",e)}var Ei=(0,P.Z)("PrivatePickersYear",["root","modeDesktop","modeMobile","yearButton","selected","disabled"]),Ti=["autoFocus","className","children","disabled","onClick","onKeyDown","value","tabIndex","onFocus","onBlur"],Di=(0,x.ZP)("div",{name:"PrivatePickersYear",slot:"Root",overridesResolver:function(e,t){return[t.root,(0,y.Z)({},"&.".concat(Ei.modeDesktop),t.modeDesktop),(0,y.Z)({},"&.".concat(Ei.modeMobile),t.modeMobile)]}})((function(e){var t=e.ownerState;return(0,r.Z)({flexBasis:"33.3%",display:"flex",alignItems:"center",justifyContent:"center"},"desktop"===(null==t?void 0:t.wrapperVariant)&&{flexBasis:"25%"})})),Oi=(0,x.ZP)("button",{name:"PrivatePickersYear",slot:"Button",overridesResolver:function(e,t){return[t.button,(0,y.Z)({},"&.".concat(Ei.disabled),t.disabled),(0,y.Z)({},"&.".concat(Ei.selected),t.selected)]}})((function(e){var t,n=e.theme;return(0,r.Z)({color:"unset",backgroundColor:"transparent",border:0,outline:0},n.typography.subtitle1,(t={margin:"8px 0",height:36,width:72,borderRadius:18,cursor:"pointer","&:focus, &:hover":{backgroundColor:(0,X.Fq)(n.palette.action.active,n.palette.action.hoverOpacity)}},(0,y.Z)(t,"&.".concat(Ei.disabled),{color:n.palette.text.secondary}),(0,y.Z)(t,"&.".concat(Ei.selected),{color:n.palette.primary.contrastText,backgroundColor:n.palette.primary.main,"&:focus, &:hover":{backgroundColor:n.palette.primary.dark}}),t))})),ji=function(){},Ni=i.forwardRef((function(e,t){var n=e.autoFocus,a=e.className,s=e.children,l=e.disabled,u=e.onClick,c=e.onKeyDown,d=e.value,p=e.tabIndex,f=e.onFocus,h=void 0===f?ji:f,v=e.onBlur,m=void 0===v?ji:v,b=(0,o.Z)(e,Ti),g=i.useRef(null),y=(0,$.Z)(g,t),x=i.useContext(kt),w=(0,r.Z)({},e,{wrapperVariant:x}),C=function(e){var t=e.wrapperVariant,n=e.disabled,r=e.selected,o=e.classes,i={root:["root",t&&"mode".concat((0,Ae.Z)(t))],yearButton:["yearButton",n&&"disabled",r&&"selected"]};return(0,Z.Z)(i,Ri,o)}(w);return i.useEffect((function(){n&&g.current.focus()}),[n]),(0,E.jsx)(Di,{className:S(C.root,a),ownerState:w,children:(0,E.jsx)(Oi,(0,r.Z)({ref:y,disabled:l,type:"button",tabIndex:l?-1:p,onClick:function(e){return u(e,d)},onKeyDown:function(e){return c(e,d)},onFocus:function(e){return h(e,d)},onBlur:function(e){return m(e,d)},className:C.yearButton,ownerState:w},b,{children:s}))})}));function Ii(e){return(0,k.Z)("MuiYearPicker",e)}(0,P.Z)("MuiYearPicker",["root"]);var Ai=(0,x.ZP)("div",{name:"MuiYearPicker",slot:"Root",overridesResolver:function(e,t){return t.root}})({display:"flex",flexDirection:"row",flexWrap:"wrap",overflowY:"auto",height:"100%",padding:"0 4px",maxHeight:"304px"}),Fi=i.forwardRef((function(e,t){var n=f(),o=(0,F.Z)(),s=c(),l=function(e,t){var n=c(),o=d(),i=(0,a.Z)({props:e,name:t});return(0,r.Z)({disablePast:!1,disableFuture:!1},i,{minDate:v(n,i.minDate,o.minDate),maxDate:v(n,i.maxDate,o.maxDate)})}(e,"MuiYearPicker"),u=l.autoFocus,p=l.className,h=l.date,m=l.disabled,b=l.disableFuture,g=l.disablePast,y=l.maxDate,x=l.minDate,w=l.onChange,C=l.readOnly,k=l.shouldDisableYear,P=l.disableHighlightToday,M=l.onYearFocus,R=l.hasFocus,T=l.onFocusedViewChange,D=l,O=function(e){var t=e.classes;return(0,Z.Z)({root:["root"]},Ii,t)}(D),j=i.useMemo((function(){return null!=h?h:s.startOfYear(n)}),[n,s,h]),N=i.useMemo((function(){return null!=h?s.getYear(h):P?null:s.getYear(n)}),[n,h,s,P]),I=i.useContext(kt),A=i.useRef(null),B=i.useState((function(){return N||s.getYear(n)})),L=(0,G.Z)(B,2),z=L[0],W=L[1],V=(0,Mi.Z)({name:"YearPicker",state:"hasFocus",controlled:R,default:u}),H=(0,G.Z)(V,2),q=H[0],K=H[1],_=i.useCallback((function(e){K(e),T&&T(e)}),[K,T]),Y=i.useCallback((function(e){return!(!g||!s.isBeforeYear(e,n))||(!(!b||!s.isAfterYear(e,n))||(!(!x||!s.isBeforeYear(e,x))||(!(!y||!s.isAfterYear(e,y))||!(!k||!k(e)))))}),[b,g,y,x,n,k,s]),U=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"finish";if(!C){var r=s.setYear(j,t);w(r,n)}},X=i.useCallback((function(e){Y(s.setYear(j,e))||(W(e),_(!0),null==M||M(e))}),[Y,s,j,_,M]);i.useEffect((function(){W((function(e){return null!==N&&e!==N?N:e}))}),[N]);var J="desktop"===I?4:3,Q=i.useCallback((function(e,t){switch(e.key){case"ArrowUp":X(t-J),e.preventDefault();break;case"ArrowDown":X(t+J),e.preventDefault();break;case"ArrowLeft":X(t+("ltr"===o.direction?-1:1)),e.preventDefault();break;case"ArrowRight":X(t+("ltr"===o.direction?1:-1)),e.preventDefault()}}),[X,o.direction,J]),ee=i.useCallback((function(e,t){X(t)}),[X]),te=i.useCallback((function(e,t){z===t&&_(!1)}),[z,_]),ne=s.getYear(n),re=i.useRef(null),oe=(0,$.Z)(t,re);return i.useEffect((function(){if(!u&&null!==re.current){var e=re.current.querySelector('[tabindex="0"]');if(e){var t=e.offsetHeight,n=e.offsetTop,r=re.current.clientHeight,o=re.current.scrollTop,i=n+t;t>r||n1&&(o=t,i=n),n=Math.max(i,n),t=Math.max(t,o)}return t};if(!0===e.mask&&u&&!d){var g=b(i),y=v(i.substr(g))[0];g=i.indexOf(y,g),i="".concat(i.substr(0,g)).concat(i.substr(g+1))}var x=e.format(i);null==a||l.selectionStart!==i.length||d||(u?x=a(x):""===v(x.slice(-1))&&(x=x.slice(0,-1)));var Z=o?o(x):x;return s===Z?n():e.onChange(Z),function(){var t=b(x);if(null!=e.mask&&(u||c&&!p))for(;x[t]&&""===v(x[t]);)t+=1;l.selectionStart=l.selectionEnd=t+(p?1+h:0)}}})),(0,i.useEffect)((function(){var e=function(e){"Delete"===e.code&&(l.current=!0)},t=function(e){"Delete"===e.code&&(l.current=!1)};return document.addEventListener("keydown",e),document.addEventListener("keyup",t),function(){document.removeEventListener("keydown",e),document.removeEventListener("keyup",t)}}),[]),{value:null!=r.current?r.current[0]:s,onChange:function(t){var o=t.target.value;r.current=[o,t.target,o.length>s.length,l.current,s===e.format(o)],n()}}},_i=function(e,t,n){var r=e.date(t);return null===t?"":e.isValid(r)?e.formatByString(r,n):""},Yi="_",Ui="2019-11-21T22:30:00.000",Xi="2019-01-01T09:00:00.000";function Gi(e,t,n,r){if(!e)return!1;var o=r.formatByString(r.date(Xi),t).replace(n,Yi),i=r.formatByString(r.date(Ui),t).replace(n,"_"),a=i===o&&e===i;return!a&&r.lib,a}var $i=function(e){var t=e.acceptRegex,n=void 0===t?/[\d]/gi:t,o=e.disabled,a=e.disableMaskedInput,s=e.ignoreInvalidInputs,l=e.inputFormat,u=e.inputProps,d=e.label,p=e.mask,f=e.onChange,h=e.rawValue,v=e.readOnly,m=e.rifmFormatter,b=e.TextFieldProps,g=e.validationError,y=c(),x=y.getFormatHelperText(l),Z=i.useMemo((function(){if(a)return{shouldUseMaskedInput:!1,maskToUse:""};var e=function(e,t,n,r){if(e)return e;var o=r.formatByString(r.date(Xi),t).replace(n,Yi);return o===r.formatByString(r.date(Ui),t).replace(n,"_")?o:""}(p,l,n,y);return{shouldUseMaskedInput:Gi(e,l,n,y),maskToUse:e}}),[n,a,l,p,y]),w=Z.shouldUseMaskedInput,S=Z.maskToUse,C=i.useMemo((function(){return w&&S?function(e,t){return function(n){var r=0;return n.split("").map((function(o,i){if(t.lastIndex=0,r>e.length-1)return"";var a=e[r],s=e[r+1],l=t.test(o)?o:"",u=a===Yi?l:a+l;return r+=u.length,i===n.length-1&&s&&s!==Yi?u?u+s:"":u})).join("")}}(S,n):function(e){return e}}),[n,S,w]),k=null===h?null:y.date(h),P=i.useState(k),M=(0,G.Z)(P,2),R=M[0],E=M[1],T=i.useState(_i(y,h,l)),D=(0,G.Z)(T,2),O=D[0],j=D[1],N=i.useRef(),I=i.useRef(y.locale),A=i.useRef(l);i.useEffect((function(){var e=h!==N.current,t=y.locale!==I.current,n=l!==A.current;if(N.current=h,I.current=y.locale,A.current=l,e||t||n){var r=null===h?null:y.date(h),o=null===h||y.isValid(r),i=null===R&&null===r;if(null!==R&&null!==r){var a=y.isEqual(R,r);if(a)i=!0;else{var s=Math.abs(y.getDiff(R,r));i=0===s?a:s<1e3}}if(t||n||o&&!i){var u=_i(y,h,l);E(r),j(u)}}}),[y,h,l,R]);var F=function(e){var t=""===e||e===p?"":e;j(t);var n=null===t?null:y.parse(t,l);s&&!y.isValid(n)||(E(n),f(n,t||void 0))},B=Ki({value:O,onChange:F,format:m||C}),L=w?B:{value:O,onChange:function(e){F(e.currentTarget.value)}};return(0,r.Z)({label:d,disabled:o,error:g,inputProps:(0,r.Z)({},L,{disabled:o,placeholder:x,readOnly:v,type:w?"tel":"text"},u)},b)},Ji=["className","components","disableOpenPicker","getOpenDialogAriaText","InputAdornmentProps","InputProps","inputRef","openPicker","OpenPickerButtonProps","renderInput"],Qi=i.forwardRef((function(e,t){var n=e.className,i=e.components,a=void 0===i?{}:i,s=e.disableOpenPicker,l=e.getOpenDialogAriaText,u=e.InputAdornmentProps,d=e.InputProps,f=e.inputRef,h=e.openPicker,v=e.OpenPickerButtonProps,m=e.renderInput,b=(0,o.Z)(e,Ji),g=p(),x=null!=l?l:g.openDatePickerDialogue,Z=c(),w=$i(b),S=(null==u?void 0:u.position)||"end",C=a.OpenPickerIcon||_e;return m((0,r.Z)({ref:t,inputRef:f,className:n},w,{InputProps:(0,r.Z)({},d,(0,y.Z)({},"".concat(S,"Adornment"),s?void 0:(0,E.jsx)(qi.Z,(0,r.Z)({position:S},u,{children:(0,E.jsx)(We,(0,r.Z)({edge:S,disabled:b.disabled||b.readOnly,"aria-label":x(b.rawValue,Z)},v,{onClick:h,children:(0,E.jsx)(C,{})}))}))))}))}));function ea(){return"undefined"===typeof window?"portrait":window.screen&&window.screen.orientation&&window.screen.orientation.angle?90===Math.abs(window.screen.orientation.angle)?"landscape":"portrait":window.orientation&&90===Math.abs(Number(window.orientation))?"landscape":"portrait"}function ta(e){return(0,k.Z)("MuiCalendarOrClockPicker",e)}(0,P.Z)("MuiCalendarOrClockPicker",["root","mobileKeyboardInputView"]);var na=["autoFocus","className","parsedValue","DateInputProps","isMobileKeyboardViewOpen","onDateChange","onViewChange","openTo","orientation","showToolbar","toggleMobileKeyboardView","ToolbarComponent","toolbarFormat","toolbarPlaceholder","toolbarTitle","views","dateRangeIcon","timeIcon","hideTabs","classes"],ra=(0,x.ZP)("div",{name:"MuiCalendarOrClockPicker",slot:"MobileKeyboardInputView",overridesResolver:function(e,t){return t.mobileKeyboardInputView}})({padding:"16px 24px"}),oa=(0,x.ZP)("div",{name:"MuiCalendarOrClockPicker",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.ownerState;return(0,r.Z)({display:"flex",flexDirection:"column"},t.isLandscape&&{flexDirection:"row"})})),ia={fullWidth:!0},aa=function(e){return"year"===e||"month"===e||"day"===e},sa=function(e){return"hours"===e||"minutes"===e||"seconds"===e};function la(e){var t,n,s=(0,a.Z)({props:e,name:"MuiCalendarOrClockPicker"}),l=s.autoFocus,u=s.parsedValue,c=s.DateInputProps,d=s.isMobileKeyboardViewOpen,p=s.onDateChange,f=s.onViewChange,h=s.openTo,v=s.orientation,m=s.showToolbar,b=s.toggleMobileKeyboardView,g=s.ToolbarComponent,y=void 0===g?function(){return null}:g,x=s.toolbarFormat,w=s.toolbarPlaceholder,S=s.toolbarTitle,C=s.views,k=s.dateRangeIcon,P=s.timeIcon,M=s.hideTabs,R=(0,o.Z)(s,na),T=null==(t=R.components)?void 0:t.Tabs,D=function(e,t){var n=i.useState(ea),r=(0,G.Z)(n,2),o=r[0],a=r[1];return(0,Et.Z)((function(){var e=function(){a(ea())};return window.addEventListener("orientationchange",e),function(){window.removeEventListener("orientationchange",e)}}),[]),!yr(e,["hours","minutes","seconds"])&&"landscape"===(t||o)}(C,v),O=i.useContext(kt),j=function(e){var t=e.classes;return(0,Z.Z)({root:["root"],mobileKeyboardInputView:["mobileKeyboardInputView"]},ta,t)}(s),N=null!=m?m:"desktop"!==O,I=!M&&"undefined"!==typeof window&&window.innerHeight>667,A=i.useCallback((function(e,t){p(e,O,t)}),[p,O]);var F=Er({view:void 0,views:C,openTo:h,onChange:A,onViewChange:i.useCallback((function(e){d&&b(),f&&f(e)}),[d,f,b])}),B=F.openView,L=F.setOpenView,z=F.handleChangeAndOpenNext,W=function(e){var t=e.autoFocus,n=e.openView,r=i.useState(t?n:null),o=(0,G.Z)(r,2),a=o[0],s=o[1];return{focusedView:a,setFocusedView:i.useCallback((function(e){return function(t){s(t?e:function(t){return e===t?null:t})}}),[])}}({autoFocus:l,openView:B}),V=W.focusedView,H=W.setFocusedView;return(0,E.jsxs)(oa,{ownerState:{isLandscape:D},className:j.root,children:[N&&(0,E.jsx)(y,(0,r.Z)({},R,{views:C,isLandscape:D,parsedValue:u,onChange:A,setOpenView:L,openView:B,toolbarTitle:S,toolbarFormat:x,toolbarPlaceholder:w,isMobileKeyboardViewOpen:d,toggleMobileKeyboardView:b})),I&&!!T&&(0,E.jsx)(T,(0,r.Z)({dateRangeIcon:k,timeIcon:P,view:B,onChange:L},null==(n=R.componentsProps)?void 0:n.tabs)),(0,E.jsx)(bo,{children:d?(0,E.jsx)(ra,{className:j.mobileKeyboardInputView,children:(0,E.jsx)(Qi,(0,r.Z)({},c,{ignoreInvalidInputs:!0,disableOpenPicker:!0,TextFieldProps:ia}))}):(0,E.jsxs)(i.Fragment,{children:[aa(B)&&(0,E.jsx)(Hi,(0,r.Z)({autoFocus:l,date:u,onViewChange:L,onChange:z,view:B,views:C.filter(aa),focusedView:V,onFocusedViewChange:H},R)),sa(B)&&(0,E.jsx)(Zo,(0,r.Z)({},R,{autoFocus:l,date:u,view:B,views:C.filter(sa),onChange:z,onViewChange:L,showViewSwitcher:"desktop"===O}))]})})]})}var ua=function(e){var t=e.adapter,n=e.value,r=e.props,o=r.minTime,i=r.maxTime,a=r.minutesStep,s=r.shouldDisableTime,l=r.disableIgnoringDatePartForTimeValidation,u=t.utils.date(n),c=ho(l,t.utils);if(null===n)return null;switch(!0){case!t.utils.isValid(n):return"invalidDate";case Boolean(o&&c(o,u)):return"minTime";case Boolean(i&&c(u,i)):return"maxTime";case Boolean(s&&s(t.utils.getHours(u),"hours")):return"shouldDisableTime-hours";case Boolean(s&&s(t.utils.getMinutes(u),"minutes")):return"shouldDisableTime-minutes";case Boolean(s&&s(t.utils.getSeconds(u),"seconds")):return"shouldDisableTime-seconds";case Boolean(a&&t.utils.getMinutes(u)%a!==0):return"minutesStep";default:return null}},ca=["minDate","maxDate","disableFuture","shouldDisableDate","disablePast"],da=function(e){var t=e.props,n=e.value,r=e.adapter,i=t.minDate,a=t.maxDate,s=t.disableFuture,l=t.shouldDisableDate,u=t.disablePast,c=(0,o.Z)(t,ca),d=No({adapter:r,value:n,props:{minDate:i,maxDate:a,disableFuture:s,shouldDisableDate:l,disablePast:u}});return null!==d?d:ua({adapter:r,value:n,props:c})},pa=function(e,t){return e===t};function fa(e){return function(e,t,n){var r=e.value,o=e.onError,a=u(),s=i.useRef(null),l=t({adapter:a,value:r,props:e});return i.useEffect((function(){o&&!n(l,s.current)&&o(l,r),s.current=l}),[n,o,s,l,r]),l}(e,da,pa)}var ha=function(e,t){var n=e.onAccept,o=e.onChange,a=e.value,s=e.closeOnSelect,l=c(),u=function(e){var t=e.open,n=e.onOpen,r=e.onClose,o=i.useRef("boolean"===typeof t).current,a=i.useState(!1),s=(0,G.Z)(a,2),l=s[0],u=s[1];return i.useEffect((function(){if(o){if("boolean"!==typeof t)throw new Error("You must not mix controlling and uncontrolled mode for `open` prop");u(t)}}),[o,t]),{isOpen:l,setIsOpen:i.useCallback((function(e){o||u(e),e&&n&&n(),!e&&r&&r()}),[o,n,r])}}(e),d=u.isOpen,p=u.setIsOpen,f=i.useMemo((function(){return t.parseInput(l,a)}),[t,l,a]),h=i.useState(f),v=(0,G.Z)(h,2),m=v[0],b=v[1],g=i.useState((function(){return{committed:f,draft:f,resetFallback:f}})),y=(0,G.Z)(g,2),x=y[0],Z=y[1],w=i.useCallback((function(e){Z((function(t){switch(e.action){case"setAll":case"acceptAndClose":return{draft:e.value,committed:e.value,resetFallback:e.value};case"setCommitted":return(0,r.Z)({},t,{draft:e.value,committed:e.value});case"setDraft":return(0,r.Z)({},t,{draft:e.value});default:return t}})),(e.forceOnChangeCall||!e.skipOnChangeCall&&!t.areValuesEqual(l,x.committed,e.value))&&o(e.value),"acceptAndClose"===e.action&&(p(!1),n&&!t.areValuesEqual(l,x.resetFallback,e.value)&&n(e.value))}),[n,o,p,x,l,t]);i.useEffect((function(){l.isValid(f)&&b(f)}),[l,f]),i.useEffect((function(){d&&w({action:"setAll",value:f,skipOnChangeCall:!0})}),[d]),t.areValuesEqual(l,x.committed,f)||w({action:"setCommitted",value:f,skipOnChangeCall:!0});var S=i.useMemo((function(){return{open:d,onClear:function(){w({value:t.emptyValue,action:"acceptAndClose",forceOnChangeCall:!t.areValuesEqual(l,a,t.emptyValue)})},onAccept:function(){w({value:x.draft,action:"acceptAndClose",forceOnChangeCall:!t.areValuesEqual(l,a,f)})},onDismiss:function(){w({value:x.committed,action:"acceptAndClose"})},onCancel:function(){w({value:x.resetFallback,action:"acceptAndClose"})},onSetToday:function(){w({value:t.getTodayValue(l),action:"acceptAndClose"})}}}),[w,d,l,x,t,a,f]),C=i.useState(!1),k=(0,G.Z)(C,2),P=k[0],M=k[1],R=i.useMemo((function(){return{parsedValue:x.draft,isMobileKeyboardViewOpen:P,toggleMobileKeyboardView:function(){return M(!P)},onDateChange:function(e,t){switch(arguments.length>2&&void 0!==arguments[2]?arguments[2]:"partial"){case"shallow":return w({action:"setDraft",value:e,skipOnChangeCall:!0});case"partial":return w({action:"setDraft",value:e});case"finish":return w((null!=s?s:"desktop"===t)?{value:e,action:"acceptAndClose"}:{value:e,action:"setCommitted"});default:throw new Error("MUI: Invalid selectionState passed to `onDateChange`")}}}}),[w,P,x.draft,s]),E=i.useCallback((function(e,n){var r=t.valueReducer?t.valueReducer(l,m,e):e;o(r,n)}),[o,t,m,l]),T={pickerProps:R,inputProps:i.useMemo((function(){return{onChange:E,open:d,rawValue:a,openPicker:function(){return p(!0)}}}),[E,d,a,p]),wrapperProps:S};return i.useDebugValue(T,(function(){return{MuiPickerState:{dateState:x,other:T}}})),T};function va(e){return(0,k.Z)("MuiTab",e)}var ma,ba=(0,P.Z)("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),ga=["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"],ya=(0,x.ZP)(Ie,{name:"MuiTab",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.label&&n.icon&&t.labelIcon,t["textColor".concat((0,Ae.Z)(n.textColor))],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped]}})((function(e){var t,n,o,i=e.theme,a=e.ownerState;return(0,r.Z)({},i.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},a.label&&{flexDirection:"top"===a.iconPosition||"bottom"===a.iconPosition?"column":"row"},{lineHeight:1.25},a.icon&&a.label&&(0,y.Z)({minHeight:72,paddingTop:9,paddingBottom:9},"& > .".concat(ba.iconWrapper),(0,r.Z)({},"top"===a.iconPosition&&{marginBottom:6},"bottom"===a.iconPosition&&{marginTop:6},"start"===a.iconPosition&&{marginRight:i.spacing(1)},"end"===a.iconPosition&&{marginLeft:i.spacing(1)})),"inherit"===a.textColor&&(t={color:"inherit",opacity:.6},(0,y.Z)(t,"&.".concat(ba.selected),{opacity:1}),(0,y.Z)(t,"&.".concat(ba.disabled),{opacity:(i.vars||i).palette.action.disabledOpacity}),t),"primary"===a.textColor&&(n={color:(i.vars||i).palette.text.secondary},(0,y.Z)(n,"&.".concat(ba.selected),{color:(i.vars||i).palette.primary.main}),(0,y.Z)(n,"&.".concat(ba.disabled),{color:(i.vars||i).palette.text.disabled}),n),"secondary"===a.textColor&&(o={color:(i.vars||i).palette.text.secondary},(0,y.Z)(o,"&.".concat(ba.selected),{color:(i.vars||i).palette.secondary.main}),(0,y.Z)(o,"&.".concat(ba.disabled),{color:(i.vars||i).palette.text.disabled}),o),a.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},a.wrapped&&{fontSize:i.typography.pxToRem(12)})})),xa=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiTab"}),s=n.className,l=n.disabled,u=void 0!==l&&l,c=n.disableFocusRipple,d=void 0!==c&&c,p=n.fullWidth,f=n.icon,h=n.iconPosition,v=void 0===h?"top":h,m=n.indicator,b=n.label,g=n.onChange,y=n.onClick,x=n.onFocus,w=n.selected,S=n.selectionFollowsFocus,C=n.textColor,k=void 0===C?"inherit":C,P=n.value,M=n.wrapped,R=void 0!==M&&M,T=(0,o.Z)(n,ga),D=(0,r.Z)({},n,{disabled:u,disableFocusRipple:d,selected:w,icon:!!f,iconPosition:v,label:!!b,fullWidth:p,textColor:k,wrapped:R}),O=function(e){var t=e.classes,n=e.textColor,r=e.fullWidth,o=e.wrapped,i=e.icon,a=e.label,s=e.selected,l=e.disabled,u={root:["root",i&&a&&"labelIcon","textColor".concat((0,Ae.Z)(n)),r&&"fullWidth",o&&"wrapped",s&&"selected",l&&"disabled"],iconWrapper:["iconWrapper"]};return(0,Z.Z)(u,va,t)}(D),j=f&&b&&i.isValidElement(f)?i.cloneElement(f,{className:(0,N.Z)(O.iconWrapper,f.props.className)}):f;return(0,E.jsxs)(ya,(0,r.Z)({focusRipple:!d,className:(0,N.Z)(O.root,s),ref:t,role:"tab","aria-selected":w,disabled:u,onClick:function(e){!w&&g&&g(e,P),y&&y(e)},onFocus:function(e){S&&!w&&g&&g(e,P),x&&x(e)},ownerState:D,tabIndex:w?0:-1},T,{children:["top"===v||"start"===v?(0,E.jsxs)(i.Fragment,{children:[j,b]}):(0,E.jsxs)(i.Fragment,{children:[b,j]}),m]}))})),Za=(n(57441),n(83199));function wa(){if(ma)return ma;var e=document.createElement("div"),t=document.createElement("div");return t.style.width="10px",t.style.height="1px",e.appendChild(t),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),ma="reverse",e.scrollLeft>0?ma="default":(e.scrollLeft=1,0===e.scrollLeft&&(ma="negative")),document.body.removeChild(e),ma}function Sa(e,t){var n=e.scrollLeft;if("rtl"!==t)return n;switch(wa()){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n;default:return n}}function Ca(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}var ka=n(17602),Pa=["onChange"],Ma={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};var Ra=(0,Ve.Z)((0,E.jsx)("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),Ea=(0,Ve.Z)((0,E.jsx)("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function Ta(e){return(0,k.Z)("MuiTabScrollButton",e)}var Da=(0,P.Z)("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),Oa=["className","slots","slotProps","direction","orientation","disabled"],ja=(0,x.ZP)(Ie,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.orientation&&t[n.orientation]]}})((function(e){var t=e.ownerState;return(0,r.Z)((0,y.Z)({width:40,flexShrink:0,opacity:.8},"&.".concat(Da.disabled),{opacity:0}),"vertical"===t.orientation&&{width:"100%",height:40,"& svg":{transform:"rotate(".concat(t.isRtl?-90:90,"deg)")}})})),Na=i.forwardRef((function(e,t){var n,i,s=(0,a.Z)({props:e,name:"MuiTabScrollButton"}),l=s.className,u=s.slots,c=void 0===u?{}:u,d=s.slotProps,p=void 0===d?{}:d,f=s.direction,h=(0,o.Z)(s,Oa),v="rtl"===(0,F.Z)().direction,m=(0,r.Z)({isRtl:v},s),b=function(e){var t=e.classes,n={root:["root",e.orientation,e.disabled&&"disabled"]};return(0,Z.Z)(n,Ta,t)}(m),g=null!=(n=c.StartScrollButtonIcon)?n:Ra,y=null!=(i=c.EndScrollButtonIcon)?i:Ea,x=(0,Xn.y)({elementType:g,externalSlotProps:p.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m}),w=(0,Xn.y)({elementType:y,externalSlotProps:p.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m});return(0,E.jsx)(ja,(0,r.Z)({component:"div",className:(0,N.Z)(b.root,l),ref:t,role:null,ownerState:m,tabIndex:null},h,{children:"left"===f?(0,E.jsx)(g,(0,r.Z)({},x)):(0,E.jsx)(y,(0,r.Z)({},w))}))}));function Ia(e){return(0,k.Z)("MuiTabs",e)}var Aa=(0,P.Z)("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),Fa=["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"],Ba=function(e,t){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:e.firstChild},La=function(e,t){return e===t?e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:e.lastChild},za=function(e,t,n){for(var r=!1,o=n(e,t);o;){if(o===e.firstChild){if(r)return;r=!0}var i=o.disabled||"true"===o.getAttribute("aria-disabled");if(o.hasAttribute("tabindex")&&!i)return void o.focus();o=n(e,o)}},Wa=(0,x.ZP)("div",{name:"MuiTabs",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[(0,y.Z)({},"& .".concat(Aa.scrollButtons),t.scrollButtons),(0,y.Z)({},"& .".concat(Aa.scrollButtons),n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile),t.root,n.vertical&&t.vertical]}})((function(e){var t=e.ownerState,n=e.theme;return(0,r.Z)({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},t.vertical&&{flexDirection:"column"},t.scrollButtonsHideMobile&&(0,y.Z)({},"& .".concat(Aa.scrollButtons),(0,y.Z)({},n.breakpoints.down("sm"),{display:"none"})))})),Va=(0,x.ZP)("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:function(e,t){var n=e.ownerState;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})((function(e){var t=e.ownerState;return(0,r.Z)({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},t.fixed&&{overflowX:"hidden",width:"100%"},t.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},t.scrollableX&&{overflowX:"auto",overflowY:"hidden"},t.scrollableY&&{overflowY:"auto",overflowX:"hidden"})})),Ha=(0,x.ZP)("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:function(e,t){var n=e.ownerState;return[t.flexContainer,n.vertical&&t.flexContainerVertical,n.centered&&t.centered]}})((function(e){var t=e.ownerState;return(0,r.Z)({display:"flex"},t.vertical&&{flexDirection:"column"},t.centered&&{justifyContent:"center"})})),qa=(0,x.ZP)("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:function(e,t){return t.indicator}})((function(e){var t=e.ownerState,n=e.theme;return(0,r.Z)({position:"absolute",height:2,bottom:0,width:"100%",transition:n.transitions.create()},"primary"===t.indicatorColor&&{backgroundColor:(n.vars||n).palette.primary.main},"secondary"===t.indicatorColor&&{backgroundColor:(n.vars||n).palette.secondary.main},t.vertical&&{height:"100%",width:2,right:0})})),Ka=(0,x.ZP)((function(e){var t=e.onChange,n=(0,o.Z)(e,Pa),a=i.useRef(),s=i.useRef(null),l=function(){a.current=s.current.offsetHeight-s.current.clientHeight};return(0,So.Z)((function(){var e=(0,Za.Z)((function(){var e=a.current;l(),e!==a.current&&t(a.current)})),n=(0,ka.Z)(s.current);return n.addEventListener("resize",e),function(){e.clear(),n.removeEventListener("resize",e)}}),[t]),i.useEffect((function(){l(),t(a.current)}),[t]),(0,E.jsx)("div",(0,r.Z)({style:Ma,ref:s},n))}))({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),_a={},Ya=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiTabs"}),s=(0,F.Z)(),l="rtl"===s.direction,u=n["aria-label"],c=n["aria-labelledby"],d=n.action,p=n.centered,f=void 0!==p&&p,h=n.children,v=n.className,m=n.component,b=void 0===m?"div":m,g=n.allowScrollButtonsMobile,x=void 0!==g&&g,w=n.indicatorColor,S=void 0===w?"primary":w,C=n.onChange,k=n.orientation,P=void 0===k?"horizontal":k,M=n.ScrollButtonComponent,R=void 0===M?Na:M,T=n.scrollButtons,D=void 0===T?"auto":T,O=n.selectionFollowsFocus,j=n.slots,I=void 0===j?{}:j,A=n.slotProps,B=void 0===A?{}:A,L=n.TabIndicatorProps,z=void 0===L?{}:L,W=n.TabScrollButtonProps,V=void 0===W?{}:W,H=n.textColor,q=void 0===H?"primary":H,K=n.value,_=n.variant,Y=void 0===_?"standard":_,U=n.visibleScrollbar,X=void 0!==U&&U,$=(0,o.Z)(n,Fa),Q="scrollable"===Y,ee="vertical"===P,te=ee?"scrollTop":"scrollLeft",ne=ee?"top":"left",re=ee?"bottom":"right",oe=ee?"clientHeight":"clientWidth",ie=ee?"height":"width",ae=(0,r.Z)({},n,{component:b,allowScrollButtonsMobile:x,indicatorColor:S,orientation:P,vertical:ee,scrollButtons:D,textColor:q,variant:Y,visibleScrollbar:X,fixed:!Q,hideScrollbar:Q&&!X,scrollableX:Q&&!ee,scrollableY:Q&&ee,centered:f&&!Q,scrollButtonsHideMobile:!x}),se=function(e){var t=e.vertical,n=e.fixed,r=e.hideScrollbar,o=e.scrollableX,i=e.scrollableY,a=e.centered,s=e.scrollButtonsHideMobile,l=e.classes,u={root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",r&&"hideScrollbar",o&&"scrollableX",i&&"scrollableY"],flexContainer:["flexContainer",t&&"flexContainerVertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",s&&"scrollButtonsHideMobile"],scrollableX:[o&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]};return(0,Z.Z)(u,Ia,l)}(ae),le=(0,Xn.y)({elementType:I.StartScrollButtonIcon,externalSlotProps:B.startScrollButtonIcon,ownerState:ae}),ue=(0,Xn.y)({elementType:I.EndScrollButtonIcon,externalSlotProps:B.endScrollButtonIcon,ownerState:ae});var ce=i.useState(!1),de=(0,G.Z)(ce,2),pe=de[0],fe=de[1],he=i.useState(_a),ve=(0,G.Z)(he,2),me=ve[0],be=ve[1],ge=i.useState(!1),ye=(0,G.Z)(ge,2),xe=ye[0],Ze=ye[1],we=i.useState(!1),Se=(0,G.Z)(we,2),Ce=Se[0],ke=Se[1],Pe=i.useState(!1),Me=(0,G.Z)(Pe,2),Re=Me[0],Ee=Me[1],Te=i.useState({overflow:"hidden",scrollbarWidth:0}),De=(0,G.Z)(Te,2),Oe=De[0],je=De[1],Ne=new Map,Ie=i.useRef(null),Ae=i.useRef(null),Fe=function(){var e,t,n=Ie.current;if(n){var r=n.getBoundingClientRect();e={clientWidth:n.clientWidth,scrollLeft:n.scrollLeft,scrollTop:n.scrollTop,scrollLeftNormalized:Sa(n,s.direction),scrollWidth:n.scrollWidth,top:r.top,bottom:r.bottom,left:r.left,right:r.right}}if(n&&!1!==K){var o=Ae.current.children;if(o.length>0){var i=o[Ne.get(K)];0,t=i?i.getBoundingClientRect():null}}return{tabsMeta:e,tabMeta:t}},Be=(0,J.Z)((function(){var e,t,n=Fe(),r=n.tabsMeta,o=n.tabMeta,i=0;if(ee)t="top",o&&r&&(i=o.top-r.top+r.scrollTop);else if(t=l?"right":"left",o&&r){var a=l?r.scrollLeftNormalized+r.clientWidth-r.scrollWidth:r.scrollLeft;i=(l?-1:1)*(o[t]-r[t]+a)}var s=(e={},(0,y.Z)(e,t,i),(0,y.Z)(e,ie,o?o[ie]:0),e);if(isNaN(me[t])||isNaN(me[ie]))be(s);else{var u=Math.abs(me[t]-s[t]),c=Math.abs(me[ie]-s[ie]);(u>=1||c>=1)&&be(s)}})),Le=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).animation;void 0===t||t?function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},i=r.ease,a=void 0===i?Ca:i,s=r.duration,l=void 0===s?300:s,u=null,c=t[e],d=!1,p=function(){d=!0};c===n?o(new Error("Element already at target position")):requestAnimationFrame((function r(i){if(d)o(new Error("Animation cancelled"));else{null===u&&(u=i);var s=Math.min(1,(i-u)/l);t[e]=a(s)*(n-c)+c,s>=1?requestAnimationFrame((function(){o(null)})):requestAnimationFrame(r)}}))}(te,Ie.current,e,{duration:s.transitions.duration.standard}):Ie.current[te]=e},ze=function(e){var t=Ie.current[te];ee?t+=e:(t+=e*(l?-1:1),t*=l&&"reverse"===wa()?-1:1),Le(t)},We=function(){for(var e=Ie.current[oe],t=0,n=Array.from(Ae.current.children),r=0;re){0===r&&(t=e);break}t+=o[oe]}return t},Ve=function(){ze(-1*We())},He=function(){ze(We())},qe=i.useCallback((function(e){je({overflow:null,scrollbarWidth:e})}),[]),Ke=(0,J.Z)((function(e){var t=Fe(),n=t.tabsMeta,r=t.tabMeta;if(r&&n)if(r[ne]n[re]){var i=n[te]+(r[re]-n[re]);Le(i,{animation:e})}})),_e=(0,J.Z)((function(){Q&&!1!==D&&Ee(!Re)}));i.useEffect((function(){var e,t=(0,Za.Z)((function(){Ie.current&&Be()})),n=(0,ka.Z)(Ie.current);return n.addEventListener("resize",t),"undefined"!==typeof ResizeObserver&&(e=new ResizeObserver(t),Array.from(Ae.current.children).forEach((function(t){e.observe(t)}))),function(){t.clear(),n.removeEventListener("resize",t),e&&e.disconnect()}}),[Be]),i.useEffect((function(){var e=Array.from(Ae.current.children),t=e.length;if("undefined"!==typeof IntersectionObserver&&t>0&&Q&&!1!==D){var n=e[0],r=e[t-1],o={root:Ie.current,threshold:.99},i=new IntersectionObserver((function(e){Ze(!e[0].isIntersecting)}),o);i.observe(n);var a=new IntersectionObserver((function(e){ke(!e[0].isIntersecting)}),o);return a.observe(r),function(){i.disconnect(),a.disconnect()}}}),[Q,D,Re,null==h?void 0:h.length]),i.useEffect((function(){fe(!0)}),[]),i.useEffect((function(){Be()})),i.useEffect((function(){Ke(_a!==me)}),[Ke,me]),i.useImperativeHandle(d,(function(){return{updateIndicator:Be,updateScrollButtons:_e}}),[Be,_e]);var Ye=(0,E.jsx)(qa,(0,r.Z)({},z,{className:(0,N.Z)(se.indicator,z.className),ownerState:ae,style:(0,r.Z)({},me,z.style)})),Ue=0,Xe=i.Children.map(h,(function(e){if(!i.isValidElement(e))return null;var t=void 0===e.props.value?Ue:e.props.value;Ne.set(t,Ue);var n=t===K;return Ue+=1,i.cloneElement(e,(0,r.Z)({fullWidth:"fullWidth"===Y,indicator:n&&!pe&&Ye,selected:n,selectionFollowsFocus:O,onChange:C,textColor:q,value:t},1!==Ue||!1!==K||e.props.tabIndex?{}:{tabIndex:0}))})),Ge=function(){var e={};e.scrollbarSizeListener=Q?(0,E.jsx)(Ka,{onChange:qe,className:(0,N.Z)(se.scrollableX,se.hideScrollbar)}):null;var t=Q&&("auto"===D&&(xe||Ce)||!0===D);return e.scrollButtonStart=t?(0,E.jsx)(R,(0,r.Z)({slots:{StartScrollButtonIcon:I.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:le},orientation:P,direction:l?"right":"left",onClick:Ve,disabled:!xe},V,{className:(0,N.Z)(se.scrollButtons,V.className)})):null,e.scrollButtonEnd=t?(0,E.jsx)(R,(0,r.Z)({slots:{EndScrollButtonIcon:I.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:ue},orientation:P,direction:l?"left":"right",onClick:He,disabled:!Ce},V,{className:(0,N.Z)(se.scrollButtons,V.className)})):null,e}();return(0,E.jsxs)(Wa,(0,r.Z)({className:(0,N.Z)(se.root,v),ownerState:ae,ref:t,as:b},$,{children:[Ge.scrollButtonStart,Ge.scrollbarSizeListener,(0,E.jsxs)(Va,{className:se.scroller,ownerState:ae,style:(0,y.Z)({overflow:Oe.overflow},ee?"margin".concat(l?"Left":"Right"):"marginBottom",X?void 0:-Oe.scrollbarWidth),ref:Ie,children:[(0,E.jsx)(Ha,{"aria-label":u,"aria-labelledby":c,"aria-orientation":"vertical"===P?"vertical":null,className:se.flexContainer,ownerState:ae,onKeyDown:function(e){var t=Ae.current,n=(0,dr.Z)(t).activeElement;if("tab"===n.getAttribute("role")){var r="horizontal"===P?"ArrowLeft":"ArrowUp",o="horizontal"===P?"ArrowRight":"ArrowDown";switch("horizontal"===P&&l&&(r="ArrowRight",o="ArrowLeft"),e.key){case r:e.preventDefault(),za(t,n,La);break;case o:e.preventDefault(),za(t,n,Ba);break;case"Home":e.preventDefault(),za(t,null,Ba);break;case"End":e.preventDefault(),za(t,null,La)}}},ref:Ae,role:"tablist",children:Xe}),pe&&Ye]}),Ge.scrollButtonEnd]}))})),Ua=Ya;function Xa(e){return(0,k.Z)("MuiDateTimePickerTabs",e)}(0,P.Z)("MuiDateTimePickerTabs",["root"]);var Ga=(0,x.ZP)(Ua,{name:"MuiDateTimePickerTabs",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){var t=e.ownerState,n=e.theme;return(0,r.Z)({boxShadow:"0 -1px 0 0 inset ".concat(n.palette.divider)},"desktop"===t.wrapperVariant&&(0,y.Z)({order:1,boxShadow:"0 1px 0 0 inset ".concat(n.palette.divider)},"& .".concat(Aa.indicator),{bottom:"auto",top:0}))})),$a=function(e){var t,n=(0,a.Z)({props:e,name:"MuiDateTimePickerTabs"}),o=n.dateRangeIcon,s=void 0===o?(0,E.jsx)(Ue,{}):o,l=n.onChange,u=n.timeIcon,c=void 0===u?(0,E.jsx)(Ge,{}):u,d=n.view,f=p(),h=i.useContext(kt),v=(0,r.Z)({},n,{wrapperVariant:h}),m=function(e){var t=e.classes;return(0,Z.Z)({root:["root"]},Xa,t)}(v);return(0,E.jsxs)(Ga,{ownerState:v,variant:"fullWidth",value:(t=d,["day","month","year"].includes(t)?"date":"time"),onChange:function(e,t){l("date"===t?"day":"hours")},className:m.root,children:[(0,E.jsx)(xa,{value:"date","aria-label":f.dateTableLabel,icon:(0,E.jsx)(i.Fragment,{children:s})}),(0,E.jsx)(xa,{value:"time","aria-label":f.timeTableLabel,icon:(0,E.jsx)(i.Fragment,{children:c})})]})},Ja=["onChange","PaperProps","PopperProps","ToolbarComponent","TransitionComponent","value","components","componentsProps","hideTabs"],Qa=i.forwardRef((function(e,t){var n=m(e,"MuiDesktopDateTimePicker"),a=null!==fa(n),s=ha(n,b),l=s.pickerProps,u=s.inputProps,c=s.wrapperProps,d=n.PaperProps,p=n.PopperProps,f=n.ToolbarComponent,h=void 0===f?Ct:f,v=n.TransitionComponent,g=n.components,y=n.componentsProps,x=n.hideTabs,Z=void 0===x||x,w=(0,o.Z)(n,Ja),S=i.useMemo((function(){return(0,r.Z)({Tabs:$a},g)}),[g]),C=(0,r.Z)({},u,w,{components:S,componentsProps:y,ref:t,validationError:a});return(0,E.jsx)(Mr,(0,r.Z)({},c,{DateInputProps:C,KeyboardDateInputComponent:Qi,PopperProps:p,PaperProps:d,TransitionComponent:v,components:S,componentsProps:y,children:(0,E.jsx)(la,(0,r.Z)({},l,{autoFocus:!0,toolbarTitle:n.label||n.toolbarTitle,ToolbarComponent:h,DateInputProps:C,components:S,componentsProps:y,hideTabs:Z},w))}))}));function es(e){return(0,k.Z)("MuiDialogContent",e)}(0,P.Z)("MuiDialogContent",["root","dividers"]);var ts=(0,P.Z)("MuiDialogTitle",["root"]),ns=["className","dividers"],rs=(0,x.ZP)("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.dividers&&t.dividers]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},n.dividers?{padding:"16px 24px",borderTop:"1px solid ".concat((t.vars||t).palette.divider),borderBottom:"1px solid ".concat((t.vars||t).palette.divider)}:(0,y.Z)({},".".concat(ts.root," + &"),{paddingTop:0}))})),os=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiDialogContent"}),i=n.className,s=n.dividers,l=void 0!==s&&s,u=(0,o.Z)(n,ns),c=(0,r.Z)({},n,{dividers:l}),d=function(e){var t=e.classes,n={root:["root",e.dividers&&"dividers"]};return(0,Z.Z)(n,es,t)}(c);return(0,E.jsx)(rs,(0,r.Z)({className:(0,N.Z)(d.root,i),ownerState:c,ref:t},u))})),is=n(18252),as=n(88447);function ss(e){return(0,k.Z)("MuiDialog",e)}var ls=(0,P.Z)("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]);var us,cs=i.createContext({}),ds=n(52739),ps=["aria-describedby","aria-labelledby","BackdropComponent","BackdropProps","children","className","disableEscapeKeyDown","fullScreen","fullWidth","maxWidth","onBackdropClick","onClose","open","PaperComponent","PaperProps","scroll","TransitionComponent","transitionDuration","TransitionProps"],fs=(0,x.ZP)(ds.Z,{name:"MuiDialog",slot:"Backdrop",overrides:function(e,t){return t.backdrop}})({zIndex:-1}),hs=(0,x.ZP)(as.Z,{name:"MuiDialog",slot:"Root",overridesResolver:function(e,t){return t.root}})({"@media print":{position:"absolute !important"}}),vs=(0,x.ZP)("div",{name:"MuiDialog",slot:"Container",overridesResolver:function(e,t){var n=e.ownerState;return[t.container,t["scroll".concat((0,Ae.Z)(n.scroll))]]}})((function(e){var t=e.ownerState;return(0,r.Z)({height:"100%","@media print":{height:"auto"},outline:0},"paper"===t.scroll&&{display:"flex",justifyContent:"center",alignItems:"center"},"body"===t.scroll&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&:after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})})),ms=(0,x.ZP)(Mt.Z,{name:"MuiDialog",slot:"Paper",overridesResolver:function(e,t){var n=e.ownerState;return[t.paper,t["scrollPaper".concat((0,Ae.Z)(n.scroll))],t["paperWidth".concat((0,Ae.Z)(String(n.maxWidth)))],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},"paper"===n.scroll&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},"body"===n.scroll&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!n.maxWidth&&{maxWidth:"calc(100% - 64px)"},"xs"===n.maxWidth&&(0,y.Z)({maxWidth:"px"===t.breakpoints.unit?Math.max(t.breakpoints.values.xs,444):"max(".concat(t.breakpoints.values.xs).concat(t.breakpoints.unit,", 444px)")},"&.".concat(ls.paperScrollBody),(0,y.Z)({},t.breakpoints.down(Math.max(t.breakpoints.values.xs,444)+64),{maxWidth:"calc(100% - 64px)"})),n.maxWidth&&"xs"!==n.maxWidth&&(0,y.Z)({maxWidth:"".concat(t.breakpoints.values[n.maxWidth]).concat(t.breakpoints.unit)},"&.".concat(ls.paperScrollBody),(0,y.Z)({},t.breakpoints.down(t.breakpoints.values[n.maxWidth]+64),{maxWidth:"calc(100% - 64px)"})),n.fullWidth&&{width:"calc(100% - 64px)"},n.fullScreen&&(0,y.Z)({margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0},"&.".concat(ls.paperScrollBody),{margin:0,maxWidth:"100%"}))})),bs=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiDialog"}),s=(0,F.Z)(),l={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},u=n["aria-describedby"],c=n["aria-labelledby"],d=n.BackdropComponent,p=n.BackdropProps,f=n.children,h=n.className,v=n.disableEscapeKeyDown,m=void 0!==v&&v,b=n.fullScreen,g=void 0!==b&&b,y=n.fullWidth,x=void 0!==y&&y,w=n.maxWidth,S=void 0===w?"sm":w,C=n.onBackdropClick,k=n.onClose,P=n.open,M=n.PaperComponent,R=void 0===M?Mt.Z:M,T=n.PaperProps,D=void 0===T?{}:T,O=n.scroll,j=void 0===O?"paper":O,I=n.TransitionComponent,A=void 0===I?Fo.Z:I,B=n.transitionDuration,L=void 0===B?l:B,z=n.TransitionProps,W=(0,o.Z)(n,ps),V=(0,r.Z)({},n,{disableEscapeKeyDown:m,fullScreen:g,fullWidth:x,maxWidth:S,scroll:j}),H=function(e){var t=e.classes,n=e.scroll,r=e.maxWidth,o=e.fullWidth,i=e.fullScreen,a={root:["root"],container:["container","scroll".concat((0,Ae.Z)(n))],paper:["paper","paperScroll".concat((0,Ae.Z)(n)),"paperWidth".concat((0,Ae.Z)(String(r))),o&&"paperFullWidth",i&&"paperFullScreen"]};return(0,Z.Z)(a,ss,t)}(V),q=i.useRef(),K=(0,is.Z)(c),_=i.useMemo((function(){return{titleId:K}}),[K]);return(0,E.jsx)(hs,(0,r.Z)({className:(0,N.Z)(H.root,h),closeAfterTransition:!0,components:{Backdrop:fs},componentsProps:{backdrop:(0,r.Z)({transitionDuration:L,as:d},p)},disableEscapeKeyDown:m,onClose:k,open:P,ref:t,onClick:function(e){q.current&&(q.current=null,C&&C(e),k&&k(e,"backdropClick"))},ownerState:V},W,{children:(0,E.jsx)(A,(0,r.Z)({appear:!0,in:P,timeout:L,role:"presentation"},z,{children:(0,E.jsx)(vs,{className:(0,N.Z)(H.container),onMouseDown:function(e){q.current=e.target===e.currentTarget},ownerState:V,children:(0,E.jsx)(ms,(0,r.Z)({as:R,elevation:24,role:"dialog","aria-describedby":u,"aria-labelledby":K},D,{className:(0,N.Z)(H.paper,D.className),ownerState:V,children:(0,E.jsx)(cs.Provider,{value:_,children:f})}))})}))}))})),gs=(0,x.ZP)(bs)((us={},(0,y.Z)(us,"& .".concat(ls.container),{outline:0}),(0,y.Z)(us,"& .".concat(ls.paper),{outline:0,minWidth:320}),us)),ys=(0,x.ZP)(os)({"&:first-of-type":{padding:0}}),xs=function(e){var t,n=e.children,o=e.DialogProps,i=void 0===o?{}:o,a=e.onAccept,s=e.onClear,l=e.onDismiss,u=e.onCancel,c=e.onSetToday,d=e.open,p=e.components,f=e.componentsProps,h=null!=(t=null==p?void 0:p.ActionBar)?t:br;return(0,E.jsxs)(gs,(0,r.Z)({open:d,onClose:l},i,{children:[(0,E.jsx)(ys,{children:n}),(0,E.jsx)(h,(0,r.Z)({onAccept:a,onClear:s,onCancel:u,onSetToday:c,actions:["cancel","accept"]},null==f?void 0:f.actionBar))]}))},Zs=["children","DateInputProps","DialogProps","onAccept","onClear","onDismiss","onCancel","onSetToday","open","PureDateInputComponent","components","componentsProps"];function ws(e){var t=e.children,n=e.DateInputProps,i=e.DialogProps,a=e.onAccept,s=e.onClear,l=e.onDismiss,u=e.onCancel,c=e.onSetToday,d=e.open,p=e.PureDateInputComponent,f=e.components,h=e.componentsProps,v=(0,o.Z)(e,Zs);return(0,E.jsxs)(kt.Provider,{value:"mobile",children:[(0,E.jsx)(p,(0,r.Z)({components:f},v,n)),(0,E.jsx)(xs,{DialogProps:i,onAccept:a,onClear:s,onDismiss:l,onCancel:u,onSetToday:c,open:d,components:f,componentsProps:h,children:t})]})}var Ss=i.forwardRef((function(e,t){var n=e.disabled,o=e.getOpenDialogAriaText,a=e.inputFormat,s=e.InputProps,l=e.inputRef,u=e.label,d=e.openPicker,f=e.rawValue,h=e.renderInput,v=e.TextFieldProps,m=void 0===v?{}:v,b=e.validationError,g=e.className,y=p(),x=null!=o?o:y.openDatePickerDialogue,Z=c(),w=i.useMemo((function(){return(0,r.Z)({},s,{readOnly:!0})}),[s]),S=_i(Z,f,a),C=(0,J.Z)((function(e){e.stopPropagation(),d()}));return h((0,r.Z)({label:u,disabled:n,ref:t,inputRef:l,error:b,InputProps:w,className:g},!e.readOnly&&!e.disabled&&{onClick:C},{inputProps:(0,r.Z)({disabled:n,readOnly:!0,"aria-readonly":!0,"aria-label":x(f,Z),value:S},!e.readOnly&&{onClick:C},{onKeyDown:xr(d)})},m))})),Cs=["ToolbarComponent","value","onChange","components","componentsProps","hideTabs"],ks=i.forwardRef((function(e,t){var n=m(e,"MuiMobileDateTimePicker"),a=null!==fa(n),s=ha(n,b),l=s.pickerProps,u=s.inputProps,c=s.wrapperProps,d=n.ToolbarComponent,p=void 0===d?Ct:d,f=n.components,h=n.componentsProps,v=n.hideTabs,g=void 0!==v&&v,y=(0,o.Z)(n,Cs),x=i.useMemo((function(){return(0,r.Z)({Tabs:$a},f)}),[f]),Z=(0,r.Z)({},u,y,{components:x,componentsProps:h,ref:t,validationError:a});return(0,E.jsx)(ws,(0,r.Z)({},y,c,{DateInputProps:Z,PureDateInputComponent:Ss,components:x,componentsProps:h,children:(0,E.jsx)(la,(0,r.Z)({},l,{autoFocus:!0,toolbarTitle:n.label||n.toolbarTitle,ToolbarComponent:p,DateInputProps:Z,components:x,componentsProps:h,hideTabs:g},y))}))})),Ps=["desktopModeMediaQuery","DialogProps","PopperProps","TransitionComponent"],Ms=i.forwardRef((function(e,t){var n=(0,a.Z)({props:e,name:"MuiDateTimePicker"}),i=n.desktopModeMediaQuery,l=void 0===i?"@media (pointer: fine)":i,u=n.DialogProps,c=n.PopperProps,d=n.TransitionComponent,p=(0,o.Z)(n,Ps);return(0,s.Z)(l,{defaultMatches:!0})?(0,E.jsx)(Qa,(0,r.Z)({ref:t,PopperProps:c,TransitionComponent:d},p)):(0,E.jsx)(ks,(0,r.Z)({ref:t,DialogProps:u},p))}))},36571:function(e,t,n){n.d(t,{_:function(){return d},y:function(){return c}});var r,o=n(87462),i=n(72791),a=n(93736),s={previousMonth:"Previous month",nextMonth:"Next month",openPreviousView:"open previous view",openNextView:"open next view",calendarViewSwitchingButtonAriaLabel:function(e){return"year"===e?"year view is open, switch to calendar view":"calendar view is open, switch to year view"},inputModeToggleButtonAriaLabel:function(e,t){return e?"text input view is open, go to ".concat(t," view"):"".concat(t," view is open, go to text input view")},start:"Start",end:"End",cancelButtonLabel:"Cancel",clearButtonLabel:"Clear",okButtonLabel:"OK",todayButtonLabel:"Today",datePickerDefaultToolbarTitle:"Select date",dateTimePickerDefaultToolbarTitle:"Select date & time",timePickerDefaultToolbarTitle:"Select time",dateRangePickerDefaultToolbarTitle:"Select date range",clockLabelText:function(e,t,n){return"Select ".concat(e,". ").concat(null===t?"No time selected":"Selected time is ".concat(n.format(t,"fullTime")))},hoursClockNumberText:function(e){return"".concat(e," hours")},minutesClockNumberText:function(e){return"".concat(e," minutes")},secondsClockNumberText:function(e){return"".concat(e," seconds")},openDatePickerDialogue:function(e,t){return e&&t.isValid(t.date(e))?"Choose date, selected date is ".concat(t.format(t.date(e),"fullDate")):"Choose date"},openTimePickerDialogue:function(e,t){return e&&t.isValid(t.date(e))?"Choose time, selected time is ".concat(t.format(t.date(e),"fullTime")):"Choose time"},timeTableLabel:"pick time",dateTableLabel:"pick date"},l=s,u=(r=s,(0,o.Z)({},r),n(80184)),c=i.createContext(null);function d(e){var t=(0,a.Z)({props:e,name:"MuiLocalizationProvider"}),n=t.children,r=t.dateAdapter,s=t.dateFormats,d=t.dateLibInstance,p=t.locale,f=t.adapterLocale,h=t.localeText;var v=i.useMemo((function(){return new r({locale:null!=f?f:p,formats:s,instance:d})}),[r,p,f,s,d]),m=i.useMemo((function(){return{minDate:v.date("1900-01-01T00:00:00.000"),maxDate:v.date("2099-12-31T00:00:00.000")}}),[v]),b=i.useMemo((function(){return{utils:v,defaultDates:m,localeText:(0,o.Z)({},l,null!=h?h:{})}}),[m,v,h]);return(0,u.jsx)(c.Provider,{value:b,children:n})}},18875:function(e,t,n){n.d(t,{ZP:function(){return b}});var r=n(63366),o=n(94578),i=n(72791),a=n(54164),s=!1,l=n(95545),u=n(88852),c="unmounted",d="exited",p="entering",f="entered",h="exiting",v=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o=d,r.appearStatus=p):o=f:o=t.unmountOnExit||t.mountOnEnter?c:d,r.state={status:o},r.nextCallback=null,r}(0,o.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===c?{status:d}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==p&&n!==f&&(t=p):n!==p&&n!==f||(t=h)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===p){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this);n&&(0,u.Q)(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===d&&this.setState({status:c})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[a.findDOMNode(this),r],i=o[0],l=o[1],u=this.getTimeouts(),c=r?u.appear:u.enter;!e&&!n||s?this.safeSetState({status:f},(function(){t.props.onEntered(i)})):(this.props.onEnter(i,l),this.safeSetState({status:p},(function(){t.props.onEntering(i,l),t.onTransitionEnd(c,(function(){t.safeSetState({status:f},(function(){t.props.onEntered(i,l)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:a.findDOMNode(this);t&&!s?(this.props.onExit(r),this.safeSetState({status:h},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:d},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:d},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:a.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],s=o[1];this.props.addEndListener(i,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===c)return null;var t=this.props,n=t.children,o=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,r.Z)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return i.createElement(l.Z.Provider,{value:null},"function"===typeof n?n(e,o):i.cloneElement(i.Children.only(n),o))},t}(i.Component);function m(){}v.contextType=l.Z,v.propTypes={},v.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:m,onEntering:m,onEntered:m,onExit:m,onExiting:m,onExited:m},v.UNMOUNTED=c,v.EXITED=d,v.ENTERING=p,v.ENTERED=f,v.EXITING=h;var b=v},95545:function(e,t,n){var r=n(72791);t.Z=r.createContext(null)},88852:function(e,t,n){n.d(t,{Q:function(){return r}});var r=function(e){return e.scrollTop}}}]); -//# sourceMappingURL=2631.e93b9518.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2631.e93b9518.chunk.js.LICENSE.txt b/portal-ui/build/static/js/2631.e93b9518.chunk.js.LICENSE.txt deleted file mode 100644 index 0b7fad349..000000000 --- a/portal-ui/build/static/js/2631.e93b9518.chunk.js.LICENSE.txt +++ /dev/null @@ -1,7 +0,0 @@ -/** - * A better abstraction over CSS. - * - * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present - * @website https://github.com/cssinjs/jss - * @license MIT - */ diff --git a/portal-ui/build/static/js/2631.e93b9518.chunk.js.map b/portal-ui/build/static/js/2631.e93b9518.chunk.js.map deleted file mode 100644 index 988306a6b..000000000 --- a/portal-ui/build/static/js/2631.e93b9518.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2631.e93b9518.chunk.js","mappings":"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","sources":["../node_modules/@date-io/luxon/build/index.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@mui/base/FocusTrap/FocusTrap.js","../node_modules/@mui/base/Portal/Portal.js","../node_modules/@mui/base/utils/extractEventHandlers.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/base/utils/omitEventHandlers.js","../node_modules/@mui/base/utils/useSlotProps.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/base/utils/mergeSlotProps.js","../node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/icons-material/Schedule.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@mui/base/unstable_useModal/ModalManager.js","../node_modules/@mui/base/unstable_useModal/useModal.js","../node_modules/@mui/material/Modal/modalClasses.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/useMediaQuery/useMediaQuery.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/styles/createStyles/createStyles.js","../node_modules/is-in-browser/dist/module.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@mui/styles/mergeClasses/mergeClasses.js","../node_modules/@mui/styles/makeStyles/multiKeyStore.js","../node_modules/@mui/styles/useTheme/index.js","../node_modules/@mui/styles/createGenerateClassName/createGenerateClassName.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@mui/styles/StylesProvider/StylesProvider.js","../node_modules/@mui/styles/jssPreset/jssPreset.js","../node_modules/@mui/styles/makeStyles/indexCounter.js","../node_modules/@mui/styles/propsToClassKey/propsToClassKey.js","../node_modules/@mui/styles/getStylesCreator/getStylesCreator.js","../node_modules/@mui/styles/getStylesCreator/noopTheme.js","../node_modules/@mui/styles/makeStyles/makeStyles.js","../node_modules/@mui/styles/withStyles/withStyles.js","../node_modules/@mui/styles/getThemeProps/getThemeProps.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/getScrollbarSize.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","../node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","../node_modules/@mui/x-date-pickers/DateTimePicker/shared.js","../node_modules/@mui/x-date-pickers/node_modules/clsx/dist/clsx.m.js","../node_modules/@mui/x-date-pickers/internals/components/pickersToolbarTextClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarText.js","../node_modules/@mui/material/Grid/GridContext.js","../node_modules/@mui/material/Grid/gridClasses.js","../node_modules/@mui/material/Grid/Grid.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/@mui/x-date-pickers/internals/components/icons/index.js","../node_modules/@mui/x-date-pickers/internals/components/pickersToolbarClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarButton.js","../node_modules/@mui/x-date-pickers/DateTimePicker/dateTimePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerToolbar.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/WrapperVariantContext.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@mui/base/Popper/popperClasses.js","../node_modules/@mui/base/utils/ClassNameConfigurator.js","../node_modules/@mui/base/Popper/Popper.js","../node_modules/@mui/material/Popper/Popper.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","../node_modules/@mui/x-date-pickers/internals/components/pickersPopperClasses.js","../node_modules/@mui/x-date-pickers/internals/utils/utils.js","../node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/DesktopWrapper.js","../node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","../node_modules/@mui/x-date-pickers/ClockPicker/shared.js","../node_modules/@mui/x-date-pickers/ClockPicker/clockPointerClasses.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPointer.js","../node_modules/@mui/x-date-pickers/ClockPicker/clockClasses.js","../node_modules/@mui/x-date-pickers/ClockPicker/Clock.js","../node_modules/@mui/x-date-pickers/ClockPicker/clockNumberClasses.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumber.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumbers.js","../node_modules/@mui/x-date-pickers/internals/components/pickersArrowSwitcherClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher.js","../node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","../node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","../node_modules/@mui/x-date-pickers/ClockPicker/clockPickerClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","../node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPicker.js","../node_modules/@mui/x-date-pickers/internals/utils/warning.js","../node_modules/@mui/x-date-pickers/MonthPicker/pickersMonthClasses.js","../node_modules/@mui/x-date-pickers/MonthPicker/PickersMonth.js","../node_modules/@mui/x-date-pickers/MonthPicker/monthPickerClasses.js","../node_modules/@mui/x-date-pickers/MonthPicker/MonthPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useDateValidation.js","../node_modules/@mui/x-date-pickers/CalendarPicker/useCalendarState.js","../node_modules/@mui/x-date-pickers/CalendarPicker/pickersFadeTransitionGroupClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersFadeTransitionGroup.js","../node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","../node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@mui/x-date-pickers/CalendarPicker/pickersSlideTransitionClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersSlideTransition.js","../node_modules/@mui/x-date-pickers/CalendarPicker/dayPickerClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/DayPicker.js","../node_modules/@mui/x-date-pickers/CalendarPicker/pickersCalendarHeaderClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersCalendarHeader.js","../node_modules/@mui/x-date-pickers/YearPicker/pickersYearClasses.js","../node_modules/@mui/x-date-pickers/YearPicker/PickersYear.js","../node_modules/@mui/x-date-pickers/YearPicker/yearPickerClasses.js","../node_modules/@mui/x-date-pickers/YearPicker/YearPicker.js","../node_modules/@mui/x-date-pickers/internals/utils/defaultReduceAnimations.js","../node_modules/@mui/x-date-pickers/CalendarPicker/calendarPickerClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/CalendarPicker.js","../node_modules/rifm/dist/rifm.esm.js","../node_modules/@mui/x-date-pickers/internals/utils/text-field-helper.js","../node_modules/@mui/x-date-pickers/internals/hooks/useMaskedInput.js","../node_modules/@mui/x-date-pickers/internals/components/KeyboardDateInput.js","../node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","../node_modules/@mui/x-date-pickers/internals/components/CalendarOrClockPicker/calendarOrClockPickerClasses.js","../node_modules/@mui/x-date-pickers/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js","../node_modules/@mui/x-date-pickers/internals/components/CalendarOrClockPicker/useFocusManagement.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useTimeValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useDateTimeValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePickerState.js","../node_modules/@mui/material/Tab/tabClasses.js","../node_modules/@mui/utils/esm/scrollLeft.js","../node_modules/@mui/material/Tab/Tab.js","../node_modules/@mui/material/internal/animate.js","../node_modules/@mui/material/Tabs/ScrollbarSize.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../node_modules/@mui/material/Tabs/tabsClasses.js","../node_modules/@mui/material/Tabs/Tabs.js","../node_modules/@mui/x-date-pickers/DateTimePicker/dateTimePickerTabsClasses.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerTabs.js","../node_modules/@mui/x-date-pickers/DesktopDateTimePicker/DesktopDateTimePicker.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/MobileWrapper.js","../node_modules/@mui/x-date-pickers/internals/components/PureDateInput.js","../node_modules/@mui/x-date-pickers/MobileDateTimePicker/MobileDateTimePicker.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePicker.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js"],"sourcesContent":["import { DateTime, Settings, Info } from 'luxon';\n\nconst defaultFormats = {\n dayOfMonth: \"d\",\n fullDate: \"DD\",\n fullDateWithWeekday: \"DDDD\",\n fullDateTime: \"ff\",\n fullDateTime12h: \"DD, hh:mm a\",\n fullDateTime24h: \"DD, T\",\n fullTime: \"t\",\n fullTime12h: \"hh:mm a\",\n fullTime24h: \"HH:mm\",\n hours12h: \"hh\",\n hours24h: \"HH\",\n keyboardDate: \"D\",\n keyboardDateTime: \"D t\",\n keyboardDateTime12h: \"D hh:mm a\",\n keyboardDateTime24h: \"D T\",\n minutes: \"mm\",\n seconds: \"ss\",\n month: \"LLLL\",\n monthAndDate: \"MMMM d\",\n monthAndYear: \"LLLL yyyy\",\n monthShort: \"MMM\",\n weekday: \"cccc\",\n weekdayShort: \"ccc\",\n normalDate: \"d MMMM\",\n normalDateWithWeekday: \"EEE, MMM d\",\n shortDate: \"MMM d\",\n year: \"yyyy\",\n};\nclass LuxonUtils {\n constructor({ locale, formats, } = {}) {\n this.lib = \"luxon\";\n this.date = (value) => {\n if (typeof value === \"undefined\") {\n return DateTime.local();\n }\n if (value === null) {\n return null;\n }\n if (typeof value === \"string\") {\n return DateTime.fromJSDate(new Date(value), { locale: this.locale });\n }\n if (DateTime.isDateTime(value)) {\n return value;\n }\n return DateTime.fromJSDate(value, { locale: this.locale });\n };\n this.toJsDate = (value) => {\n return value.toJSDate();\n };\n this.parseISO = (isoString) => {\n return DateTime.fromISO(isoString);\n };\n this.toISO = (value) => {\n return value.toISO({ format: \"extended\" });\n };\n this.parse = (value, formatString) => {\n if (value === \"\") {\n return null;\n }\n return DateTime.fromFormat(value, formatString, { locale: this.locale });\n };\n /* istanbul ignore next */\n this.is12HourCycleInCurrentLocale = () => {\n var _a, _b;\n if (typeof Intl === \"undefined\" || typeof Intl.DateTimeFormat === \"undefined\") {\n return true; // Luxon defaults to en-US if Intl not found\n }\n return Boolean((_b = (_a = new Intl.DateTimeFormat(this.locale, { hour: \"numeric\" })) === null || _a === void 0 ? void 0 : _a.resolvedOptions()) === null || _b === void 0 ? void 0 : _b.hour12);\n };\n this.getFormatHelperText = (format) => {\n // Unfortunately there is no way for luxon to retrieve readable formats from localized format\n return \"\";\n };\n /* istanbul ignore next */\n this.getCurrentLocaleCode = () => {\n return this.locale || Settings.defaultLocale;\n };\n this.addSeconds = (date, count) => {\n return date.plus({ seconds: count });\n };\n this.addMinutes = (date, count) => {\n return date.plus({ minutes: count });\n };\n this.addHours = (date, count) => {\n return date.plus({ hours: count });\n };\n this.addDays = (date, count) => {\n return date.plus({ days: count });\n };\n this.addWeeks = (date, count) => {\n return date.plus({ weeks: count });\n };\n this.addMonths = (date, count) => {\n return date.plus({ months: count });\n };\n this.addYears = (date, count) => {\n return date.plus({ years: count });\n };\n this.isValid = (value) => {\n var _a, _b;\n if (DateTime.isDateTime(value)) {\n return value.isValid;\n }\n if (value === null) {\n return false;\n }\n return (_b = (_a = this.date(value)) === null || _a === void 0 ? void 0 : _a.isValid) !== null && _b !== void 0 ? _b : false;\n };\n this.isEqual = (value, comparing) => {\n var _a, _b;\n if (value === null && comparing === null) {\n return true;\n }\n // make sure that null will not be passed to this.date\n if (value === null || comparing === null) {\n return false;\n }\n if (!this.date(comparing)) {\n /* istanbul ignore next */\n return false;\n }\n return (_b = (_a = this.date(value)) === null || _a === void 0 ? void 0 : _a.equals(this.date(comparing))) !== null && _b !== void 0 ? _b : false;\n };\n this.isSameDay = (date, comparing) => {\n return date.hasSame(comparing, \"day\");\n };\n this.isSameMonth = (date, comparing) => {\n return date.hasSame(comparing, \"month\");\n };\n this.isSameYear = (date, comparing) => {\n return date.hasSame(comparing, \"year\");\n };\n this.isSameHour = (date, comparing) => {\n return date.hasSame(comparing, \"hour\");\n };\n this.isAfter = (value, comparing) => {\n return value > comparing;\n };\n this.isBefore = (value, comparing) => {\n return value < comparing;\n };\n this.isBeforeDay = (value, comparing) => {\n const diff = value.diff(comparing.startOf(\"day\"), \"days\").toObject();\n return diff.days < 0;\n };\n this.isAfterDay = (value, comparing) => {\n const diff = value.diff(comparing.endOf(\"day\"), \"days\").toObject();\n return diff.days > 0;\n };\n this.isBeforeMonth = (value, comparing) => {\n const diff = value.diff(comparing.startOf(\"month\"), \"months\").toObject();\n return diff.months < 0;\n };\n this.isAfterMonth = (value, comparing) => {\n const diff = value.diff(comparing.startOf(\"month\"), \"months\").toObject();\n return diff.months > 0;\n };\n this.isBeforeYear = (value, comparing) => {\n const diff = value.diff(comparing.startOf(\"year\"), \"years\").toObject();\n return diff.years < 0;\n };\n this.isAfterYear = (value, comparing) => {\n const diff = value.diff(comparing.endOf(\"year\"), \"years\").toObject();\n return diff.years > 0;\n };\n this.getDiff = (value, comparing, unit) => {\n if (typeof comparing === \"string\") {\n comparing = DateTime.fromJSDate(new Date(comparing));\n }\n if (!comparing.isValid) {\n return 0;\n }\n if (unit) {\n return Math.floor(value.diff(comparing).as(unit));\n }\n return value.diff(comparing).as(\"millisecond\");\n };\n this.startOfDay = (value) => {\n return value.startOf(\"day\");\n };\n this.endOfDay = (value) => {\n return value.endOf(\"day\");\n };\n this.format = (date, formatKey) => {\n return this.formatByString(date, this.formats[formatKey]);\n };\n this.formatByString = (date, format) => {\n return date.setLocale(this.locale).toFormat(format);\n };\n this.formatNumber = (numberToFormat) => {\n return numberToFormat;\n };\n this.getHours = (value) => {\n return value.get(\"hour\");\n };\n this.setHours = (value, count) => {\n return value.set({ hour: count });\n };\n this.getMinutes = (value) => {\n return value.get(\"minute\");\n };\n this.setMinutes = (value, count) => {\n return value.set({ minute: count });\n };\n this.getSeconds = (value) => {\n return value.get(\"second\");\n };\n this.setSeconds = (value, count) => {\n return value.set({ second: count });\n };\n this.getMonth = (value) => {\n // See https://github.com/moment/luxon/blob/master/docs/moment.md#major-functional-differences\n return value.get(\"month\") - 1;\n };\n this.getDaysInMonth = (value) => {\n return value.daysInMonth;\n };\n this.setMonth = (value, count) => {\n return value.set({ month: count + 1 });\n };\n this.getYear = (value) => {\n return value.get(\"year\");\n };\n this.setYear = (value, year) => {\n return value.set({ year });\n };\n this.getDate = (value) => {\n return value.get(\"day\");\n };\n this.setDate = (value, day) => {\n return value.set({ day });\n };\n this.mergeDateAndTime = (date, time) => {\n return date.set({\n second: time.second,\n hour: time.hour,\n minute: time.minute,\n });\n };\n this.startOfYear = (value) => {\n return value.startOf(\"year\");\n };\n this.endOfYear = (value) => {\n return value.endOf(\"year\");\n };\n this.startOfMonth = (value) => {\n return value.startOf(\"month\");\n };\n this.endOfMonth = (value) => {\n return value.endOf(\"month\");\n };\n this.startOfWeek = (value) => {\n return value.startOf(\"week\");\n };\n this.endOfWeek = (value) => {\n return value.endOf(\"week\");\n };\n this.getNextMonth = (value) => {\n return value.plus({ months: 1 });\n };\n this.getPreviousMonth = (value) => {\n return value.minus({ months: 1 });\n };\n this.getMonthArray = (date) => {\n const firstMonth = date.startOf(\"year\");\n const monthArray = [firstMonth];\n while (monthArray.length < 12) {\n const prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n this.getWeekdays = () => {\n return Info.weekdaysFormat(\"short\", { locale: this.locale });\n };\n this.getWeekArray = (date) => {\n const { days } = date\n .endOf(\"month\")\n .endOf(\"week\")\n .diff(date.startOf(\"month\").startOf(\"week\"), \"days\")\n .toObject();\n const weeks = [];\n new Array(Math.round(days))\n .fill(0)\n .map((_, i) => i)\n .map((day) => date.startOf(\"month\").startOf(\"week\").plus({ days: day }))\n .forEach((v, i) => {\n if (i === 0 || (i % 7 === 0 && i > 6)) {\n weeks.push([v]);\n return;\n }\n weeks[weeks.length - 1].push(v);\n });\n return weeks;\n };\n this.getYearRange = (start, end) => {\n const startDate = start.startOf(\"year\");\n const endDate = end.endOf(\"year\");\n let current = startDate;\n const years = [];\n while (current < endDate) {\n years.push(current);\n current = current.plus({ year: 1 });\n }\n return years;\n };\n this.getMeridiemText = (ampm) => {\n return Info.meridiems({ locale: this.locale }).find((v) => v.toLowerCase() === ampm.toLowerCase());\n };\n this.isNull = (date) => {\n return date === null;\n };\n this.isWithinRange = (date, [start, end]) => {\n return (date.equals(start) ||\n date.equals(end) ||\n (this.isAfter(date, start) && this.isBefore(date, end)));\n };\n this.locale = locale || \"en-US\";\n this.formats = Object.assign({}, defaultFormats, formats);\n }\n}\n\nexport { LuxonUtils as default };\n","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","'use client';\n\n/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n// Inspired by https://github.com/focus-trap/tabbable\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n }\n\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome,

,